AI搜索 MCP最佳實踐

背景

那些 LLM 不知道的事

嘗試直接詢問LLM“今天天氣如何”時,會發現LLM無法回答——它既不知道“今天”是哪天,也無法獲取地理位置信息。這揭示了LLM的局限:缺乏與外部工具和實時數據的交互能力

為解決這一問題,MCP(Model Context Protocol)應運而生。通過標準化協議,MCP使LLM能夠自主調用工具(如天氣API、地理位置服務),并解耦Agent與Tools的開發,顯著降低維護和迭代成本。

當 LLM 學會用工具

- “讓 LLM 自己學會用工具,來解答用戶問題。”

上面這句話中,出現了三個角色,“用戶”、“工具”、“LLM”,以及隱藏的第四個角色——將這一切粘合起來的“主控程序”。

關于四者的交互流程,下圖供以參考:

MCP 干嘛來了

- 沒有 MCP,我要怎么做

按照 Agent+FunctionCall 的模式,我設計了工具 schema,走通了 LLM 的服務調用,終于讓 LLM 學會了用工具。但隨著工具越來越多、工具調用與 LLM 耦合地越來越深,不管是維護還是迭代,都會消耗大量的精力。

那么,問題來了:

  • 能不能實現 Agent 與 Tools 的解耦?
  • 能不能能統一不同 Tools 的調用協議,讓模型快速接入?
  • 能不能實現 Tools 的共享?

- 有了 MCP,我會怎么做

現在有了 MCP,一切都好起來了:

  • Agent 和 Tools,我可以分開維護了。
  • 再多的 Tools,我用"list_tools"+"call_tool"就解決了。
  • 我可以分享自己的 Tools,也可以快速接入別人的 Tools了。

近距離看看 MCP

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.

MCP 架構中的角色主要有以下幾種:

  • MCP Hosts: 相當于上文提到的“主控程序”,比如 Claude Desktop、IDE 等。
  • MCP Clients: 服務調用的客戶端,通常會被集成到 Host 中執行 list_tools、call_tool 等操作。
  • MCP Servers: 服務調用的服務端,通常在此定義 tools、prompts、resources 等。
  • Local Data Sources: 本地數據。
  • Remote Services: 遠端服務。

ps:寫了個 mcp demo,就想讓 LLM 告訴我,今天天氣到底如何?

mcp = FastMCP("Demo")@mcp.tool(name="get_current_time",description="獲取當前時間",
)
def get_current_time():"""獲取當前時間并進行格式化展示:return:"""now = datetime.datetime.now()formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")return formatted_time@mcp.tool(name="get_location",description="獲取當前地點",
)
def get_location():"""獲取當前地點:return:"""try:response = requests.get("http://ip-api.com/json/")data = response.json()if data["status"] == "success":location_info = {"country": data.get("country", ""),"region": data.get("regionName", ""),"city": data.get("city", "")}return json.dumps(location_info, ensure_ascii=False)else:return json.dumps({"error": "無法獲取地理位置"}, ensure_ascii=False)except Exception as e:return json.dumps({"error": str(e)}, ensure_ascii=False)

AI 搜索怎么玩 MCP

場景一:文件解析與總結

描述:通過阿里云AI搜索開放平臺集成MCP,快速調用文件解析工具,降低開發門檻。

1. 前置準備:

1.1 注冊阿里云 AI 搜索開放平臺,獲取 API 密鑰。

1.2 VSCODE 配置 Cline 工具,集成阿里云 MCP 服務器。

    1.3. Cline 配置 LLM 接口

    API Provider 選擇 OpenAI Compatible

    Base URL設為 https://dashscope.aliyuncs.com/compatible-mode/v1

      1.4 安裝 UV,管理 Python 環境

      curl -LsSf https://astral.sh/uv/install.sh | sh

      或者

      pip install uv

      2. Cline 配置 MCP Server

      2.1. 下載 alibabacloud-opensearch-mcp-server

      2.2. 配置mcp server

      {"mcpServers": {"aisearch-mcp-server": {"command": "uv","args": ["--directory","/path/to/aisearch-mcp-server","run","aisearch-mcp-server"],"env": {"AISEARCH_API_KEY": "<AISEARCH_API_KEY>","AISEARCH_ENDPOINT": "<AISEARCH_ENDPOINT>"}}}
      }

      3. 任務演示

      4. 業務價值

      • 降低接入成本:通過阿里云標準化接口快速集成搜索服務。
      • 靈活擴展:支持以AI搜索為核心豐富的模型服務,可滿足多樣化的業務需求,加速產品迭代

      立即體驗:阿里云AI搜索開放平臺

      場景二:向量檢索及排序

      描述:結合OpenSearch向量檢索版,支持動態擴展與精準查詢,優化成本。

      1. 前置準備

      (新增)開通 Opensearch向量檢索版,構建一張向量表。

      (其他)同場景一

      2. Cline 配置 MCP Server

      2.2. 下載 alibabacloud-opensearch-mcp-server

      2.2. 配置 mcp server

      {"mcpServers": {"aisearch-mcp-server": {"command": "uv","args": ["--directory","/path/to/aisearch-mcp-server","run","aisearch-mcp-server"],"env": {"AISEARCH_API_KEY": "<AISEARCH_API_KEY>","AISEARCH_ENDPOINT": "<AISEARCH_ENDPOINT>"}},"opensearch-vector-mcp-server": {"command": "uv","args": ["--directory","/path/to/opensearch-vector-mcp-server","run","opensearch-vector-mcp-server"],"env": {"OPENSEARCH_VECTOR_ENDPOINT": "http://ha-cn-***.public.ha.aliyuncs.com","OPENSEARCH_VECTOR_USERNAME": "<username>","OPENSEARCH_VECTOR_PASSWORD": "<password>","OPENSEARCH_VECTOR_INSTANCE_ID": "ha-cn-***","OPENSEARCH_VECTOR_INDEX_NAME": "<Optional: index in vector table>","AISEARCH_API_KEY": "<Optional: AISEARCH_API_KEY for embedding>","AISEARCH_ENDPOINT": "<Optional: AISEARCH_ENDPOINT for embedding>"}}}
      }

      3. 任務演示

      4. 業務價值

      • 精準檢索:結合阿里云向量數據庫,支持動態擴展和無縫集成。
      • 成本優化:按需付費模式,降低向量檢索的計算成本。

      立即體驗:阿里云OpenSearch向量檢索

      場景三:Elasticsearch 智能檢索

      描述:集成阿里云ES服務,實現高效實時數據分析與容災保障。

      1. 前置準備

      (新增)開通 Elasticsearch,創建一份索引并寫入測試數據

      (其他)同場景一

      2. Cline 配置 MCP Server

      2.2. 參考 elasticsearch-mcp-server

      2.2. 配置mcp server

      {"mcpServers": {"elasticsearch-mcp-server": {"command": "npx","args": ["-y","@elastic/mcp-server-elasticsearch"],"env": {"ES_URL": "http://es-cn-***.public.elasticsearch.aliyuncs.com:9200","ES_USERNAME": "<USERNAME>","ES_PASSWORD": "<PASSWORD>"}}}
      }

      3. 任務演示

      4. 業務價值

      • 實時分析:支持全文搜索、復雜查詢及實時數據分析。
      • 高可靠性:阿里云 ElasticSearch 提供多副本容災,保障數據安全。

      立即體驗:阿里云Elasticsearch

      為什么選擇阿里云 MCP 解決方案?

      選擇阿里云 MCP 解決方案的核心原因在于其通過標準化協議與全生命周期服務,顯著降低工具鏈集成復雜度并加速AI應用落地。阿里云 MCP 以協議驅動替代傳統硬編碼模式,實現跨平臺工具調用:

      • AI搜索開放平臺:提供豐富的 AI 搜索組件化服務服務,調用多模態數據解析、大語言模型、效果測評等數十個服務,實現智能搜索、檢索增強生成(RAG)、多模態搜索等場景的搭建,例如:智能客服、對話式搜索、圖譜增強、個性化推薦等。
      • OpenSearch:內置了各行業的查詢語義理解、機器學習排序算法等能力,并充分開放了文本向量檢索引擎能力,助力開發者快速搭建智能搜索服務。通過 AI 搜索開放平臺,用戶可以靈活調用多模態數據解析、文檔切分、文本向量、大模型文本生成等組件化服務,滿足多種搜索場景需求,例如:電商、內容資訊、游戲、金融等多種行業場景。
      • 阿里云 Elasticsearch:可以快速地、近乎于準實時地存儲、查詢和分析超大數據集,廣泛應用于實時日志處理、信息檢索、數據的多維查詢和統計分析等場景,如:智能客服、企業內部知識庫、電商導購、數據服務等。

      通過 MCP 協議,可快速調用阿里云 OpenSearch 、ElasticSearch 等工具,幫助企業快速集成工具鏈、降低開發復雜度、提升業務效率。

      更多資訊

      • 探索更多案例:點擊查看阿里云 AI Searach 指南
      • 免費試用
        • AI搜索開放平臺(免費開通)
        • Elasticsearch?(免費試用)
        • OpenSearch(免費試用)

      本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
      如若轉載,請注明出處:http://www.pswp.cn/diannao/89884.shtml
      繁體地址,請注明出處:http://hk.pswp.cn/diannao/89884.shtml
      英文地址,請注明出處:http://en.pswp.cn/diannao/89884.shtml

      如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

      相關文章

      JVM 簡介與作用

      &#x1f680; JVM 簡介與作用 &#x1f4da; 深入理解 Java 虛擬機的核心概念與重要作用 &#x1f4d6; 目錄 &#x1f914; 什么是 Java 虛擬機&#xff08;JVM&#xff09;&#x1f310; JVM 在 Java 生態中的核心地位&#x1f500; JVM 跨平臺原理剖析&#x1f4dd; 總結 …

      ? OpenAudio S1:影視級文本轉語音與語音克隆Mac整合包

      ? OpenAudio S1&#xff1a;影視級文本轉語音與語音克隆Mac整合包 &#x1f680; OpenAudio S1 簡介 OpenAudio S1 是由 Fish Audio 開發的 Fish Speech 系列的最新一代人工智能語音生成模型。該模型旨在大幅提升 AI 語音生成的技術水平&#xff0c;為用戶提供更加自然、富有表…

      spring加載外部properties文件屬性時,讀取到userName變量值和properties文件的值不一致

      問題 使用spring DI注入外部properties文件屬性時&#xff0c;讀取到userName變量值和properties文件的值不一致。 bean屬性注入&#xff1a; <!--加載配置文件--> <context:property-placeholder location"classpath:*.properties"/><bean id"…

      黑馬點評系列問題之基礎篇p7 06初識redis無法在虛擬機查到圖形化界面存進去的鍵

      問題描述 在RESP中輸入了一些鍵(name,age等這些) 但是在圖形化界面里面輸入的&#xff0c;在非圖形化界面就找不到&#xff0c;在非圖形化界面里輸入的&#xff0c;在圖形化界面里就可以查到。 原因分析及解決 經過多次實驗&#xff0c;發現是因為在添加鍵名的時候&#xff0…

      在VMware虛擬機中安裝Windows 98時,Explorer提示“該程序執行了非法操作,即將關閉”的解決辦法

      在使用iso文件&#xff08;MD5: 0E496B5DCC519F550AAF0BCFBB4A11EA&#xff09;安裝Windows98時&#xff0c;遇到此提示。 雖然原因未知&#xff0c;也無需深入探究&#xff0c;但是根據網友在 https://www.bilibili.com/opus/435866522585702782 中給出的相似經驗&#xff…

      在瀏覽器中使用SQLite(官方sqlite3.wasm)

      有人可能會問&#xff1a;既然瀏覽器里又內置得IndexedDB&#xff0c;而且在IndexedDB里存數據&#xff0c;關了瀏覽器數據也不會丟&#xff0c;為什么還要在瀏覽器里用SQLite? 實際上&#xff0c;當 IndexedDB 內的數據量增多&#xff0c;數據和數據之間的關系變得復雜&…

      數據結構(Java)--位運算

      前言 本文為本小白學習數據結構的筆記&#xff0c;將以算法題為導向&#xff0c;向大家更清晰的介紹數據結構相關知識&#xff08;算法題都出自B站馬士兵教育——左老師的課程&#xff0c;講的很好&#xff0c;對于想入門刷題的人很有幫助&#xff09; 為什么要使用為位運算 位…

      秋招Day14 - Redis - 應用

      Redis如何實現異步消息隊列&#xff1f; List配合LPUSH和RPOP。 另外就是用 Redis 的 Pub/Sub 來實現簡單的消息廣播和訂閱。 但是這兩種方式都是不可靠的&#xff0c;因為沒有 ACK 機制所以不能保證訂閱者一定能收到消息&#xff0c;也不支持消息持久化。 Redis如何實現延時…

      因果語言模型、自回歸語言模型、僅解碼器語言模型都是同一類模型

      因果語言模型、自回歸語言模型、僅解碼器語言模型都是同一類模型 flyfish 因果語言模型&#xff08;causal Language Models&#xff09; 自回歸語言模型&#xff08;autoregressive language models&#xff09; 僅解碼器語言模型&#xff08;decoder-only language models&am…

      jvm架構原理剖析篇

      簡單題&#xff08;5道&#xff09; 考查內容&#xff1a;JVM運行時數據區域 題干&#xff1a;Java虛擬機棧的主要作用是&#xff1f; A. 存儲對象實例 B. 存儲方法調用和局部變量 C. 存儲靜態字段 D. 存儲字節碼指令 正確答案&#xff1a;B 解析&#xff1a;虛擬機棧用于存儲方…

      智鏈萬物:人工智能驅動的產業智能化革命

      當生成式AI在藝術與創意領域掀起風暴&#xff0c;大型語言模型重塑信息交互方式時&#xff0c;一場更為基礎、影響更為深遠的變革&#xff0c;正在全球實體經濟的根基處悄然發生并加速推進——這就是產業智能化。它并非簡單的“機器換人”&#xff0c;而是人工智能&#xff08;…

      python中上下文管理器 與 try finally有什么區別

      目錄 主要區別代碼對比何時使用哪種方式 主要區別 語法簡潔性 上下文管理器使用 with 語句&#xff0c;語法更簡潔優雅try-finally 需要顯式編寫異常處理代碼&#xff0c;更冗長 代碼復用性 上下文管理器可以封裝為類或函數&#xff0c;便于在多處復用try-finally 通常需要在每…

      人體屬性識別+跌倒檢測:兒童行為監測與安全升級

      智慧幼兒園的AI智能檢測盒應用實踐 背景&#xff1a;傳統園區管理的三大痛點 傳統幼兒園管理長期面臨三大核心挑戰&#xff1a;一是安全監控依賴人工巡查&#xff0c;存在視覺盲區與響應延遲&#xff0c;如某連鎖幼兒園曾因人工巡查疏漏&#xff0c;導致3起兒童跌倒事故未能及…

      【ESP32-IDF筆記】09-UART配置和使用

      環境配置 Visual Studio Code &#xff1a;版本1.98.2 ESP32&#xff1a;ESP32-S3 ESP-IDF&#xff1a;V5.4 支持型號&#xff1a;ESP32、ESP32-C2、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-H2、ESP32-P4、 ESP32-S2、ESP32-S3 簡介 通用異步接收器/發送器 (UART) …

      在 .NET Core 和 React 中使用 WebSockets 和 SignalR 進行實時數據傳輸

      對于需要即時更新和通知的應用程序來說&#xff0c;實時數據傳輸至關重要。在 .NET Core 中&#xff0c;WebSocket 和 SignalR 提供了強大的工具來實現客戶端和服務器之間的實時通信。在本指南中&#xff0c;我們將探討如何在 .NET Core 應用程序中使用 WebSocket 和 SignalR 實…

      第八十六篇 大數據排序算法:從廚房整理到分布式排序的智慧

      目錄一、基礎排序算法&#xff1a;生活場景中的計算智慧1.1 冒泡排序&#xff1a;圖書館的書籍整理1.2 插入排序&#xff1a;廚房調料的整理藝術二、高效排序算法&#xff1a;大數據處理的利器2.1 快速排序&#xff1a;音樂APP的智能歌單2.2 歸并排序&#xff1a;學校成績單的合…

      開源 | V3.1.1慧知開源重卡運營充電樁平臺 - 重卡運營充電樁平臺管理解決方案;企業級完整代碼 多租戶、模擬器、多運營商、多小程序;

      【開源免費版】推薦一套企業級開源充電樁平臺&#xff1a;完整代碼包含多租戶、硬件模擬器、多運營商、多小程序&#xff0c;汽車 電動自行車、云快充協議&#xff1b;——(慧哥)慧知開源充電樁平臺&#xff1b;https://liwenhui.blog.csdn.net/article/details/148242725?spm…

      ONLYOFFICE 協作空間 企業版使用秘籍-8.使用虛擬數據房間,處理機密文檔更安全

      在當今快節奏的社會中&#xff0c;信息已成為極其關鍵的資源&#xff0c;因此&#xff0c;保護敏感數據至關重要。ONLYOFFICE 協作空間中的虛擬數據房間&#xff08;VDR&#xff09;提供了一個安全便捷的工作空間&#xff0c;確保文檔受到嚴密保護的同時&#xff0c;也能實現輕…

      系統架構設計師論文分享-論軟件架構復用

      我的軟考歷程 摘要 2023年2月&#xff0c;我所在的公司通過了研發紗線MES系統的立項&#xff0c;該項目為國內紗線工廠提供SAAS服務&#xff0c;旨在提升紗線工廠的數字化和智能化水平。我在該項目中擔任架構設計師&#xff0c;負責該項目的架構設計工作。本文結合我在該項目…

      虛擬主機與獨立服務器如何選擇

      在搭建和維護網站時&#xff0c;選擇合適的服務器套餐至關重要。虛擬主機和獨立服務器是兩種常見的選擇&#xff0c;它們各有優缺點&#xff0c;適用于不同需求的用戶。本文將深入探討這兩種服務器類型的特點&#xff0c;以幫助您為您的網站選擇最合適的服務器解決方案。虛擬主…