Skip to content

Latest commit

 

History

History
130 lines (90 loc) · 3.5 KB

File metadata and controls

130 lines (90 loc) · 3.5 KB

Model Context Protocol (MCP) Python 實作

此倉庫包含 Model Context Protocol (MCP) 的 Python 實作,示範如何建立同時作為伺服器與客戶端的應用程式,並使用 MCP 標準進行通訊。

概述

MCP 實作包含兩個主要部分:

  1. MCP 伺服器 (server.py) - 一個提供以下功能的伺服器:

    • 工具:可遠端呼叫的函式
    • 資源:可取得的資料
    • 提示:用於產生語言模型提示的範本
  2. MCP 客戶端 (client.py) - 連接伺服器並使用其功能的客戶端應用程式

功能

此實作展示了 MCP 的幾個重要功能:

工具

  • completion - 從 AI 模型產生文字補全(模擬)
  • add - 簡單的加法計算器,將兩個數字相加

資源

  • models:// - 回傳可用 AI 模型的資訊
  • greeting://{name} - 根據指定名稱回傳個人化問候語

提示

  • review_code - 產生用於程式碼審查的提示範本

安裝

要使用此 MCP 實作,請安裝所需套件:

pip install mcp-server mcp-client

啟動伺服器與客戶端

啟動伺服器

在一個終端機視窗中執行伺服器:

python server.py

也可以使用 MCP CLI 以開發模式執行伺服器:

mcp dev server.py

或安裝到 Claude Desktop(若可用):

mcp install server.py

執行客戶端

在另一個終端機視窗中執行客戶端:

python client.py

這會連接到伺服器並示範所有可用功能。

客戶端使用說明

客戶端 (client.py) 展示所有 MCP 功能:

python client.py

這會連接伺服器並執行所有功能,包括工具、資源與提示。輸出將顯示:

  1. 計算器工具結果(5 + 7 = 12)
  2. 對「生命的意義是什麼?」的補全工具回應
  3. 可用 AI 模型清單
  4. 「MCP Explorer」的個人化問候語
  5. 程式碼審查提示範本

實作細節

伺服器使用 FastMCP API 實作,提供定義 MCP 服務的高階抽象。以下是工具定義的簡化範例:

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers together
    
    Args:
        a: First number
        b: Second number
    
    Returns:
        The sum of the two numbers
    """
    logger.info(f"Adding {a} and {b}")
    return a + b

客戶端使用 MCP 客戶端函式庫連接並呼叫伺服器:

async with stdio_client(server_params) as (reader, writer):
    async with ClientSession(reader, writer) as session:
        await session.initialize()
        result = await session.call_tool("add", arguments={"a": 5, "b": 7})

進一步了解

欲了解更多 MCP 資訊,請造訪:https://modelcontextprotocol.io/

免責聲明
本文件係使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。