/ 目錄 / 演練場 / mcp-use
● 社群 mcp-use ⚡ 即開即用

mcp-use

作者 mcp-use · mcp-use/mcp-use

一個將多個 MCP 伺服器整合進單一 LangChain Agent 的 Python 函式庫——也可以在不使用 LLM 的情況下獨立執行。

mcp-use 是一個客戶端 Python 框架。只需指定 N 個 MCP 伺服器設定(stdio 或 HTTP),用任何相容 LangChain 的 LLM 封裝成 MCPAgent,即可獲得一個可運作的多伺服器 Agent。也支援直接透過 MCPClient 呼叫工具而不需要 LLM——適合用於腳本化自動流程。

為什麼要用

核心特性

即時演示

實際使用效果

mcp-use.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-use",
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-use": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-use"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add mcp-use -- uvx mcp-use

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: mcp-use

建立一個結合 playwright、filesystem 與 postgres 的自訂 Agent

👤 正在開發垂直領域 Agent 的 Python 開發者 ⏱ ~45 min intermediate

何時使用: 需要可重複執行的自動化流程(而非 Claude Desktop),且需要串連瀏覽器、檔案與資料庫操作。

前置條件
  • Python 3.10+、uv 或 pip — 標準環境安裝
  • LLM API 金鑰(OpenAI / Anthropic) — 依照所使用的 LangChain 模型要求,設定為環境變數
步驟
  1. 定義伺服器設定
    撰寫一份 mcp-use 設定,連接 playwright(透過 npx 以 stdio 執行)、postgres(透過 uvx 以 stdio 執行)以及 filesystem(限定本地路徑範圍)。✓ 已複製
    → 符合 schema 的 JSON/dict 設定
  2. 建立 Agent
    使用 ChatAnthropic(claude-sonnet-4)與上述設定建立一個 MCPAgent,最大迭代次數設為 15。✓ 已複製
    → Agent 實例已就緒,可呼叫 .run()
  3. 執行任務
    執行:「爬取 docs.example.com,將每個頁面儲存至 ./knowledge/,再將標題索引寫入 postgres 的 docs 資料表。」觀察日誌中的工具呼叫記錄。✓ 已複製
    → 任務完成,資料已寫入預期位置

結果: 一個可排程、可部署或嵌入的腳本化 Agent,不依賴桌面客戶端。

注意事項
  • Agent 在伺服器之間來回循環,消耗大量 token — 設定嚴格的 max_iterations,並使用指令遵循能力較強的 LLM——GPT-4o-mini 在複雜串連任務上容易陷入迴圈,建議改用更強大的模型
  • stdio 伺服器在崩潰後殭屍化 — 務必使用非同步 context manager 模式——它會自動處理清理工作;不要自行管理行程
搭配使用: fastmcp · mcp-agent

從 Python 直接呼叫 MCP 工具,不需要 LLM

👤 負責自動化維運任務的工程師 ⏱ ~20 min intermediate

何時使用: 需要在較大型的 Python 管線中,以確定性方式呼叫 MCP 工具。

步驟
  1. 直接連線客戶端
    使用 MCPClient 連接我的 filesystem MCP,列出所有可用工具。✓ 已複製
    → 印出工具名稱與 schema
  2. 以型別化參數呼叫工具
    呼叫 write_file,參數為 path='./out.txt' 且 content='hello',確認回傳值。✓ 已複製
    → 檔案已寫入,全程無 LLM 介入
  3. 整合進業務邏輯
    將此封裝成 save_report(df) 函式,呼叫 MCP 工具後整合進現有的 Python ETL 流程。✓ 已複製
    → 可複用的函式

結果: 將 MCP 當作函式庫使用:Claude Desktop 所用的相同伺服器,同樣可從純 Python 程式呼叫。

注意事項
  • 錯誤不會自然往上拋出——MCP 錯誤會以帶有 isError: true 的結果物件回傳 — 每次呼叫後都要檢查 result.isError,不要假設一定成功

建立一個路由 Agent,為每個請求選擇正確的 MCP

👤 正在交付 Agent 產品的團隊 ⏱ ~60 min advanced

何時使用: 使用者送來混合類型的請求(程式碼、資料、網路)——一個包含 50 個工具的龐大提示詞會使效果變差;需要路由機制。

步驟
  1. 定義伺服器群組
    將我的 MCP 伺服器分成 3 個群組:'code'(git、github)、'data'(postgres、bigquery)、'web'(firecrawl、playwright)。✓ 已複製
    → 3 份獨立的 Agent 設定
  2. 加入路由層
    撰寫一個分類器提示詞,根據使用者意圖選擇其中一個群組,並用它來按需建立對應的 MCPAgent。✓ 已複製
    → 分類器回傳 {code, data, web} 其中之一
  3. 以混合流量測試
    透過路由器執行 10 個不同類型的請求,記錄每個請求由哪個群組處理,以及答案是否正確。✓ 已複製
    → 正確率表格與延遲統計數據

結果: 一個模組化的 Agent 系統,每個請求只看到與其相關的工具——更高的準確率、更低的 token 成本。

注意事項
  • 邊界情況:請求同時需要兩個群組(例如「爬取網頁並儲存至資料庫」) — 定義第四個「跨域」群組,或透過 mcp-agent 退而採用 Orchestrator 模式
搭配使用: mcp-agent

組合

與其他 MCP 搭配,撬動十倍槓桿

mcp-use + mcp-agent

使用 mcp-use 負責伺服器連線,使用 mcp-agent 負責工作流程模式(orchestrator、evaluator)

建立一個評估-優化迴圈:撰寫 Agent 使用 mcp-use 存取 filesystem 與 git,審查 Agent 使用相同伺服器審閱輸出結果。✓ 已複製
mcp-use + fastmcp

用 FastMCP 撰寫伺服器,再用 mcp-use 對其進行腳本呼叫——完整的 Python Agent 技術棧

伺服器端:透過 FastMCP 公開我們的定價 API。客戶端:使用 mcp-use 在定價模擬腳本中呼叫它。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
MCPClient(config) server config dict/path 所有 mcp-use 腳本的進入點 free
MCPAgent(llm, client, max_steps) LangChain chat model + MCPClient 需要由 LLM 驅動工具選擇時使用 LLM calls only
client.list_tools() server_name? 在呼叫工具前,先查看目前有哪些工具可用 free
client.call_tool(name, args) tool_name, dict 直接以確定性方式呼叫工具——不需要 LLM depends on tool
MCPServer decorator API @server.tool() on functions 較少使用;若要建立伺服器端,通常 FastMCP 更為簡潔 free

成本與限制

運行它的成本

API 配額
mcp-use 本身無配額限制;取決於所使用的 LLM 及下游 MCP
每次呼叫 Token 數
由 LLM 驅動的呼叫會消耗 token——與一般 LangChain Agent 的成本模型相同
費用
函式庫本身免費,LLM 使用費用另計
提示
對於確定性流程,直接使用 client.call_tool 呼叫——跳過 LLM。將 MCPAgent 保留給真正具有模糊性的任務。

安全

權限、密鑰、影響範圍

憑證儲存: 依底層各 MCP 而定——mcp-use 本身不增加額外的憑證管理層
資料出站: LLM 供應商及所有已連接的 MCP

故障排查

常見錯誤與修復

ConnectionError when starting stdio server

設定中的 command 不在 PATH 中,或對應套件尚未安裝。請先手動測試:在終端機中執行相同的 npx -y ... 指令確認是否可用。

驗證: which npx && npx -y @modelcontextprotocol/server-filesystem --help
Agent calls tools correctly but answer is wrong

通常是 LLM 的問題——請嘗試更強大的模型。GPT-4o-mini 及開源 7B 模型常常無法正確解讀工具回傳結果。

Event loop already running error

你正在非同步 context 中呼叫同步 API。請全程改用 await 及非同步客戶端方法。

Tools from server A shadow names in server B

在設定中為各伺服器的工具名稱加上前綴,或啟用函式庫內建的命名空間處理機制(設定 namespace=True)。

替代方案

mcp-use 對比其他方案

替代方案何時用它替代權衡
mcp-agent需要內建工作流程模式(orchestrator、router、evaluator)較具規範性;若想直接使用原生 LangChain,彈性較低
Official Python MCP SDK需要最底層的客戶端——不依賴 LangChain,無任何抽象層需要撰寫更多基礎串接程式碼
LangGraph + MCP需要具有檢查點(checkpoint)的有狀態多輪對話圖學習曲線較陡;對於簡單的 Agent 而言過於複雜

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills