跳轉至

MCP Python SDK

機器翻譯

本頁是從英文說明文件自動翻譯而來,以英文頁面為準。如果哪裡讀起來不對勁,翻譯有說明如何回報。

這裡是 v2 的說明文件,也就是目前的穩定發行版本

剛接觸 v2,或是從 v1 過來?v2 的新功能 用五分鐘帶你看過有哪些改變,遷移指南 則涵蓋每一項破壞性變更。還在用 v1.x?它的說明文件在 v1.x 文件。哪裡卡住或看不懂?告訴我們

Model Context Protocol(MCP) 讓應用程式能以標準化的方式為 LLM 提供上下文,把提供上下文這件事和與 LLM 的互動本身分開。

這是它的官方 Python SDK。有了它,你可以:

  • 建立 MCP 伺服器,向任何 MCP 主機(host)公開工具、資源和提示詞。
  • 建立 MCP 用戶端,連線到任何 MCP 伺服器。
  • 支援每一種標準傳輸方式:stdio、Streamable HTTP 和 SSE。

環境需求

Python 3.10+。

安裝

uv add "mcp[cli]"
pip install "mcp[cli]"

[cli] extra 會提供 mcp 指令,開發時會用到。每個相依套件的用途請見安裝

範例

建立

建立 server.py 檔案:

server.py
from mcp.server import MCPServer

mcp = MCPServer("Demo")


@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers."""
    return a + b


@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
    """Greet someone by name."""
    return f"Hello, {name}!"

這就是一個完整的 MCP 伺服器。

它公開了一個工具 add,以及一個範本化的資源 greeting://{name}

執行

uv run mcp dev server.py

這會啟動伺服器並開啟 MCP Inspector,一個可以動手操作伺服器的互動式介面。打開它印出的 URL 即可。

Note

Inspector 是 Node.js 應用程式,所以 mcp dev 需要 PATH 上找得到 npx

試試看

在 Inspector 中前往 Tools,用 a=1b=2 呼叫 add

得到的結果是 3。✨

那張表單(a 一個必填整數欄位、b 另一個)是 Inspector 從型別提示建出來的。Claude 和其他所有 MCP 主機也都會這麼做。

接著前往 Resources,讀取 greeting://World

Hello, World!

重點回顧

再看一次你沒有寫的東西:

  • 沒有 JSON Schema。a: int, b: int 就是 schema。
  • 沒有請求解析、沒有序列化、不用寫驗證程式碼。
  • 完全不用處理協定。

你寫了兩個帶型別提示和 docstring 的 Python 函式,剩下的交給 SDK。

接下來

  • 開始使用 帶你從安裝一路走到一個可運作、經過測試的伺服器。
  • 要打造使用 MCP 伺服器的應用程式?從 用戶端 開始。
  • 已經有 FastAPI 或 Starlette 應用程式?加入現有應用程式 教你把 MCP 伺服器掛載進去。
  • 在找某個確切的錯誤訊息?疑難排解 以原文字串為索引。
  • 想知道 v2 改了什麼?v2 的新功能 是五分鐘導覽。
  • 從 v1 遷移?從 遷移指南 開始。
  • 在找確切的函式簽章?API 參考 是從原始碼產生的。
  • 和 LLM 一起閱讀?這份說明文件也以 llms.txt 格式發布:llms.txt 是各頁面的索引,llms-full.txt 則把每一頁放進單一檔案。