偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

那么多的MCP server,如何構(gòu)建自己的MCP client?

原創(chuàng)
人工智能
如果說 OpenAI 插件像是瀏覽器中的擴(kuò)展程序——在特定環(huán)境中實用但受限,那么 MCP 就像是開放的 Web 本身,帶來了無限的連接與組合可能。插件雖有價值,卻難以擺脫平臺鎖定和接口限制,而 MCP 所代表的,是一種真正去中心化、跨平臺、可互操作的工具使用協(xié)議。

現(xiàn)在,每個人都癡迷于大模型的能力,從GPT-5的謠言, 到Claude 3 性能, 以及Gemini的多模態(tài)演示。但事實是,模型并不是人工智能的全部,但Agent可能是。Agent的定義可能不是它們知道什么,而是由它們能做什么來定義。

要在這個世界上行動,Agent需要工具。為了明智地使用工具,它需要結(jié)構(gòu)。為了在模型、團(tuán)隊、設(shè)備和領(lǐng)域之間擴(kuò)展這個結(jié)構(gòu),它需要一個協(xié)議。那就是 MCP(Model Context Protocol) 。

MCP發(fā)展迅猛,MCP server 如雨后春筍。那么多的MCP server,如何構(gòu)建一個自己的MCP client呢?

MCP-Use是一個看似簡單的 Python 庫,它使用開放的MCP將任何 LLM 連接到任何外部工具。本文嘗試探討 MCP-Use 的工作原理、解決的問題以及如何構(gòu)建能夠思考和行動的Agent,并給出了一些真實的例子。如果想要賦予LLM 與真實世界的交互能力,MCP-Use或許是一種靈活的方法。

1.MCP-Use解決的問題

現(xiàn)在每一個主要的 LLM API(OpenAI、 Anthropic、 DeepSeek等)都為我們提供了精彩的文本生成。但是,根據(jù)這些知識采取行動仍然是有限的。我們經(jīng)常被困在構(gòu)建定制的集成、與 api 作斗爭或依賴于特定于供應(yīng)商的平臺,如 ChatGPT 插件、 Cursor IDE 或 Claude Desktop。這就是模型上下文協(xié)議 (MCP) 的用武之地。

受語言服務(wù)器協(xié)議 (Language Server Protocol,LSP) 的啟發(fā),MCP 旨在讓 LLM 以標(biāo)準(zhǔn)化的、有狀態(tài)的方式發(fā)現(xiàn)和調(diào)用外部工具。工具通過服務(wù)器公開,每個服務(wù)器聲明它可以做什么 (函數(shù)、參數(shù)、返回類型)。它是開放的、與模型無關(guān)的、可擴(kuò)展的,一個用于AI工具的羅賽塔石碑(有幸今年在大英博物館看到了它)。

但 MCP 本身只是一個協(xié)議。要使用它,需要一種將模型連接到工具服務(wù)器的方法。這正是 MCP-Use 所做的,可能需要 6 行 Python 代碼就能用工具啟動一個功能齊全的 AI Agent。

2.MCP-Use 的作用

MCP-Use 是一個用作 MCP 客戶端的 Python 庫,它將任何 LLM(通過 LangChain)連接到各種 MCP 服務(wù)器(如瀏覽器、文件系統(tǒng)、API、3D 渲染器等),使 Agent 能夠智能地動態(tài)使用這些工具。具體來說,MCP-Use 首先從服務(wù)器中發(fā)現(xiàn)可用的工具,并將其轉(zhuǎn)換為 LLM 可調(diào)用的函數(shù)。然后,它通過 HTTP 或本地 I/O 處理所有 JSON-RPC 消息傳遞,確保高效的數(shù)據(jù)交換。

此外,MCP-Use 還管理會話、工具調(diào)用、響應(yīng)和內(nèi)存,提供了一個干凈的抽象層,使得開發(fā)者無需擔(dān)心底層協(xié)議的具體實現(xiàn)細(xì)節(jié),從而能夠?qū)W⒂跇?gòu)建優(yōu)秀的 Agent。這一抽象不僅簡化了開發(fā)流程,還提高了代碼的可維護(hù)性和靈活性。

MCP-Use 的核心理念可以概括為:Agent + Tools + Any LLM。這是一種輕量級的開源方法,允許開發(fā)者構(gòu)建能夠使用工具的 Agent,而不會被鎖定在單一平臺或插件生態(tài)系統(tǒng)中。通過 MCP-Use,開發(fā)者可以在不同的環(huán)境和工具之間自由切換,充分利用各種資源,同時保持系統(tǒng)的高度靈活性和擴(kuò)展性。

3. MCP-Use 的架構(gòu)

MCP-Use 位于AI系統(tǒng)的中間,解釋工具模式、路由調(diào)用,并允許模型使用諸如本機(jī)功能之類的工具。

+----------------+        +----------------+        +------------------+
  |     Any LLM    |  <-->  |    MCP-Agent   |  <-->  |   MCP Servers    |
  |  (Claude, GPT) |        |  (MCP-Use lib) |        |  (Browser, APIs) |
  +----------------+        +----------------+        +------------------+

MCP-Use 是一個圍繞兩個關(guān)鍵組件構(gòu)建的模塊化架構(gòu): MCPClient 和 MCPAgent。一個管理工具連接,另一個管理Agent智能。二者一起讓LLM 驅(qū)動的Agent查找、調(diào)用和協(xié)調(diào)工具,所有這些都通過MCP完成。

3.1 MCPClient: 通往工具的橋梁

MCPClient是與外部世界的連接器。當(dāng)在 JSON 配置中定義工具時 (例如瀏覽器,文件服務(wù)器,API 包裝器) ,MCPClient啟動 MCP 服務(wù)器 (本地通過 CLI ,或通過 HTTP/SSE 遠(yuǎn)程連接),讀取這些服務(wù)器公開的工具定義 (例如,search_web、read_file、render_scene),維護(hù)與每個服務(wù)器的活動會話,處理消息傳遞 (JSON-RPC 2.0)、錯誤處理、重試和超時。

基本上,MCPClient 確保每個工具都是可用的、可理解的和可調(diào)用的,無論它在哪里運行。

3.2 MCPAgent: 思考層

MCPAgent 位于所選擇的 LLM 和工具之間,它將每個工具轉(zhuǎn)換為 LLM 可以 “看到” 和使用的函數(shù) (就像 OpenAI 的函數(shù)調(diào)用),維護(hù)會話內(nèi)存 (可選) ,跟蹤 LLM 所說的和所做的,處理決策循環(huán)。

LLM 被問到一個問題,MCPAgent 會思考應(yīng)該調(diào)用一個工具 ,例如search_web(query="MCP-Use Python")。MCPAgent 通過 MCPClient 運行該工具,并將結(jié)果返回給 LLM。循環(huán)繼續(xù),直到生成最終答案。MCP-Use 包裝了所有這些代碼。只需要傳入模型和配置,然后調(diào)用 agent.run (“your query”)

完整流程如下:

[Your Prompt] ─? MCPAgent
                   ├── Memory & Prompt Engineering
                   ├── Function Calling Interface
                   ▼
               [LLM thinks...]
                   ├── Chooses a tool
                   ▼
            Calls MCPClient.run_tool()
                   ├── Sends JSON-RPC request
                   ▼
             MCP Server Executes Tool (e.g. browser)
                   └── Returns result to MCPClient
                            ↓
               MCPAgent feeds result back to LLM
                            ↓
             LLM finishes task → Final response returned

MCPClient處理連接性和功能發(fā)現(xiàn),MCPAgent處理 LLM 智能和工具使用編排。我們可以一次連接多個 MCP 服務(wù)器,Agent將根據(jù)需要智能地處理它們。

4. MCP-Use應(yīng)用入門

假設(shè)構(gòu)建一個基于 LLM 的助手,它可以瀏覽 web 或與本地文件交互,而無需編寫大量的樣板文件或安裝龐大的框架。對于 MCP-Use而言,這只需要 6 行 Python 代碼。

4.1 環(huán)境準(zhǔn)備

確保使用的是 Python 3.11 + 。 安裝MCP-Use和 LLM 工匠 ,這里使用 OpenAI) :

pip install mcp-use langchain-openai

如果計劃運行諸如瀏覽器自動化之類的工具,那么還需要 Node.js (用于通過 npx 啟動@playwright/mcp 工具)。

4.2 創(chuàng)建工具配置文件

將其保存為 mcp-config.json:

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

這定義了一個 MCP 服務(wù)器,一個使用 Playwright 的瀏覽器工具。

4.3 添加 API 密鑰

在同一個文件夾中創(chuàng)建.env 文件:

OPENAI_API_KEY=your_openai_key_here

然后,在 Python 中使用 dotenv 加載它:

pip install python-dotenv

4.4 編寫Agent (僅6 行代理)

from dotenv import load_dotenv
from mcp_use import MCPAgent, MCPClient
from langchain_openai import ChatOpenAI
load_dotenv()
client = MCPClient.from_config_file("mcp-config.json")
agent = MCPAgent(LLM=ChatOpenAI(model="gpt-4"), client=client)
print(await agent.run("Search for best sushi places in Tokyo"))

運行此腳本時,它啟動瀏覽器 MCP 服務(wù)器,LLM 選擇調(diào)用 search_web 或 click_link等,調(diào)用該工具并返回結(jié)果,我們將得到最終的答復(fù)。LLM 決定調(diào)用什么工具并動態(tài)地使用它。

5. 使用 mcp 的生態(tài)系統(tǒng)

MCP-Use 并不僅僅是一個對某個模型或框架的簡單封裝工具,它通過 MCP 協(xié)議的強(qiáng)大能力,在 LLM 與各類外部工具之間構(gòu)建起一個真正開放的接口。這意味著你將擁有前所未有的自由度,可以根據(jù)需求靈活構(gòu)建和擴(kuò)展應(yīng)用。

借助 MCP-Use,任何支持函數(shù)調(diào)用的基于對話的 LLM 都可以輕松集成。這涵蓋了當(dāng)前絕大多數(shù)前沿的主流大模型。以下是一些兼容模型的部分示例列表:

Supported Models        | Provider            | Notes
GPT-4 / GPT-3.5 Turbo   | OpenAI              | Best-in-class reasoning
Claude v2 / v3          | Anthropic           | Very strong tool usage
LLaMA 3 (via Ollama)    | Meta (local)        | Needs LangChain wrapper
Mistral / Mixtral       | Mistral (local)     | Great speed, open weights
Command R / R+          | Cohere              | High-quality open access
Gemini                  | Google              | Tool use support varies
Groq (running LLaMA 3)  | Groq                | Lightning fast inference

這些大模型都支持 function call(函數(shù)調(diào)用) 功能,當(dāng)需要調(diào)用外部工具時,它們會輸出結(jié)構(gòu)化的 JSON 數(shù)據(jù),而不是普通的文本。這正是使用 MCP 所需的全部能力。

MCP-Use 利用 LangChain 的聊天模型接口,將不同模型統(tǒng)一接入,使得在不重寫業(yè)務(wù)邏輯的前提下,即可輕松切換模型提供商。同時,MCP-Use 可以連接到任何將自身暴露為 MCP 服務(wù)器的工具——社區(qū)已經(jīng)開發(fā)出許多功能強(qiáng)大的 MCP 工具,進(jìn)一步拓展了其應(yīng)用邊界。

MCP-Use 會自動讀取可用的 MCP 服務(wù)器列表,并將其以自然的方式呈現(xiàn)給模型。Agent 可以像調(diào)用本地函數(shù)一樣使用這些工具,而無需編寫任何額外代碼,極大地提升了開發(fā)效率與工具復(fù)用性。

6. 應(yīng)用示例

在 MCP-Use 架構(gòu)中,模型與工具是完全解耦的,這意味著你可以根據(jù)需要自由組合不同的模型和工具,打造靈活、可擴(kuò)展的 Agent 系統(tǒng)。

6.1 使用 Claude 3 啟動瀏覽器并執(zhí)行文件訪問

只需配置一個 JSON 文件,即可輕松連接多個 MCP 工具服務(wù)器。例如:

{
"mcpServers":{
"web":{
"command":"npx",
"args":["@playwright/mcp"]
},
"fs":{
"command":"npx",
"args":["@modelcontextprotocol/server-filesystem","/sandbox"]
}
}
}

隨后,在 Python 中初始化一個支持這些工具的 Agent 非常簡單:

from langchain.chat_models import ChatAnthropic
client =await MCPClient.from_config_file("tools.json")
agent = MCPAgent(LLM=ChatAnthropic(), client=client)
await agent.run("Search for news about AI startups and save the headlines")

這段代碼將啟動一個基于 Claude 的 Agent,并讓它通過 MCP 協(xié)議調(diào)用瀏覽器和文件系統(tǒng)工具完成任務(wù)。

6.2 使用本地 LLaMA 及 API 封裝工具

假設(shè)你正在使用運行在 Ollama 上的本地 LLaMA 3 模型,并希望接入一個封裝了內(nèi)部 CRM API 的 Python MCP 服務(wù)器。借助 MCP-Use,你可以在這兩個本地服務(wù)之間無縫協(xié)作,即使在沒有互聯(lián)網(wǎng)連接的情況下,也能完整運行 Agent 邏輯。

這體現(xiàn)了 MCP-Use 的一大優(yōu)勢:工具的使用與模型無關(guān)。你不僅可以在本地部署工具,也可以通過 HTTP 或 WebSocket 連接到遠(yuǎn)程 MCP 服務(wù)器,從而實現(xiàn)更多高級架構(gòu)設(shè)計:

  • 在云端托管長期運行的工具(如持續(xù)爬取數(shù)據(jù)的服務(wù)器)
  • 拆分計算負(fù)載:本地運行模型,遠(yuǎn)程調(diào)用工具
  • 構(gòu)建多用戶系統(tǒng),共享對集中式工具的訪問權(quán)限

你只需更改配置文件即可切換到遠(yuǎn)程服務(wù):

{
    "mcpServers":{
        "scraper":{
        "url":"https://tools.example.com/mcp/sse"
        }
    }
}

MCP-Use 會自動處理底層連接類型,只要該服務(wù)實現(xiàn)了 MCP 協(xié)議,Agent 就可以透明地使用它。

6.3 動態(tài)禁用特定工具

為了提升安全性,你可以在運行時或配置中動態(tài)禁用某些工具,防止意外誤用。例如,你可以禁止執(zhí)行 shell 命令,僅允許讀取文件而不允許寫入,從而構(gòu)建一個只讀的安全沙箱環(huán)境。

在創(chuàng)建 Agent 時,只需傳入一個不允許使用的工具列表即可:

agent = MCPAgent(..., disallowed_tools=["shell","delete_file"])

這種機(jī)制讓你能夠根據(jù)不同場景靈活控制 Agent 的行為邊界,確保其在受控環(huán)境中安全運行。

通過以上方式,MCP-Use 提供了一種強(qiáng)大而靈活的方式來集成模型與工具,幫助開發(fā)者構(gòu)建真正開放、可擴(kuò)展、安全可控的智能 Agent 系統(tǒng)。

7.MCP-USE 與其他開發(fā)框架的對比

當(dāng)前的人工智能工具生態(tài)系統(tǒng),如LangChain、OpenAI插件、HuggingFace Agents等,雖然在擴(kuò)展語言模型(LLM)的能力方面取得了顯著進(jìn)展,但普遍存在工具使用碎片化的問題。每個模型和框架都有其獨特的工具處理方式,導(dǎo)致重復(fù)開發(fā)和平臺鎖定問題。

MCP-USE作為一種新興的解決方案,通過外部化工具定義,實現(xiàn)了與代碼解耦,支持任何LLM(包括Claude、GPT、LLaMA等),并且不受限于特定的API規(guī)范或托管要求。此外,MCP-USE允許工具維護(hù)狀態(tài),并提供了比OpenAPI更簡單通用的協(xié)議。相比其他框架,MCP-USE不僅提高了工具的可重用性和靈活性,還支持實時結(jié)構(gòu)化工具調(diào)用,使得多個Agent可以共享同一工具,無需重復(fù)編寫代碼。

MCP-USE 與其他框架的對比如下:

特性/框架

MCP-USE

LangChain

OpenAI 插件

AutoGPT/CrewAI/BabyAGI

工具解耦

是,工具與代碼分離

否,工具與邏輯緊密耦合

否,依賴于OpenAPI

否,通常為Python代碼

支持的LLM

多種(Claude, GPT, LLAMA等)

主要支持與其集成的模型

僅限GPT系列

取決于框架實現(xiàn)

API標(biāo)準(zhǔn)

簡單通用協(xié)議

自定義包裝器

OpenAPI 3.0

自定義腳本

工具狀態(tài)管理

支持

不直接支持

不支持

不支持

跨平臺兼容性

高度兼容

依賴于具體實現(xiàn)

僅限OpenAI平臺

有限

工具復(fù)用性

高,可跨不同Agent共享

較低,需重新定義

低,受限于平臺

低,需自定義

實時調(diào)用能力

支持

需調(diào)試ReAct循環(huán)

支持

通常不支持

此表格展示了MCP-USE相對于LangChain、OpenAI插件以及AutoGPT/CrewAI/BabyAGI等框架的主要優(yōu)勢,特別是在工具解耦、支持多種LLM、簡單的API標(biāo)準(zhǔn)以及工具狀態(tài)管理和跨平臺兼容性等方面。

8. 小結(jié)

如果說 OpenAI 插件像是瀏覽器中的擴(kuò)展程序——在特定環(huán)境中實用但受限,那么 MCP 就像是開放的 Web 本身,帶來了無限的連接與組合可能。插件雖有價值,卻難以擺脫平臺鎖定和接口限制,而 MCP 所代表的,是一種真正去中心化、跨平臺、可互操作的工具使用協(xié)議。

MCP-Use 可能是打開這扇大門的鑰匙。它不是一個將我們困于某一個生態(tài)的封閉框架,而是一個讓開發(fā)者自由構(gòu)建、連接和擴(kuò)展的開放平臺。它與大模型解耦,也不依賴特定平臺,只是賦予 LLM 真正“使用工具”的能力。

未來,我們或許會看到一個由 MCP 驅(qū)動的新生態(tài):在這里,任何模型都可以安全、智能地調(diào)用任何工具,開發(fā)者無需重復(fù)造輪子,Agent 之間可以共享能力,形成一個真正互聯(lián)互通的智能系統(tǒng)。

責(zé)任編輯:武曉燕 來源: 喔家ArchiSelf
相關(guān)推薦

2025-03-28 09:33:11

2025-03-27 11:34:11

SpringAI大模型模型上下文協(xié)議

2025-07-31 09:02:21

2020-07-13 08:40:21

BAT模具設(shè)計

2025-05-06 11:56:21

2020-04-24 08:15:51

代碼 if else數(shù)組

2019-12-02 14:22:01

浪費云計算支出

2013-06-17 10:45:34

2020-11-02 07:05:54

虛擬內(nèi)存Go

2025-04-01 08:05:00

智能體人工智能MCP

2025-04-02 10:06:00

2019-11-15 10:56:48

MySQLSQL語句

2025-09-24 10:21:11

2025-03-13 03:00:00

DockerAgentic工具

2025-08-06 01:00:00

2024-05-27 00:30:00

NumPyPython開源庫

2019-10-08 14:40:53

Java線程

2025-06-11 03:22:00

AIAgentMCP

2020-03-31 10:58:38

點贊
收藏

51CTO技術(shù)棧公眾號