MCP 課程文件

MCP SDK

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

MCP SDK

模型上下文協議為 JavaScript、Python 和其他語言提供了官方 SDK。這使得在您的應用程式中實現 MCP 客戶端和伺服器變得容易。這些 SDK 處理底層協議細節,讓您可以專注於構建應用程式的功能。

SDK 概述

兩個 SDK 都提供類似的核心功能,遵循我們之前討論的 MCP 協議規範。它們處理:

  • 協議級通訊
  • 功能註冊和發現
  • 訊息序列化/反序列化
  • 連線管理
  • 錯誤處理

核心原語實現

讓我們探討如何使用這兩個 SDK 實現每個核心原語(工具、資源和提示)。

python
javascript
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Weather Service")

# Tool implementation
@mcp.tool()
def get_weather(location: str) -> str:
    """Get the current weather for a specified location."""
    return f"Weather in {location}: Sunny, 72°F"

# Resource implementation
@mcp.resource("weather://{location}")
def weather_resource(location: str) -> str:
    """Provide weather data as a resource."""
    return f"Weather data for {location}: Sunny, 72°F"

# Prompt implementation
@mcp.prompt()
def weather_report(location: str) -> str:
    """Create a weather report prompt."""
    return f"""You are a weather reporter. Weather report for {location}?"""


# Run the server
if __name__ == "__main__":
    mcp.run()

實現伺服器後,可以透過執行伺服器指令碼來啟動它。

mcp dev server.py

這將初始化一個開發伺服器,執行檔案 `server.py`。並記錄以下輸出:

Starting MCP inspector...
⚙️ Proxy server listening on port 6277
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Set up MCP proxy
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀

然後您可以開啟 MCP Inspector(地址:http://127.0.0.1:6274)以檢視伺服器的功能並與之互動。

您將看到伺服器的功能以及透過 UI 呼叫它們的能力。

MCP Inspector

MCP SDK

MCP 旨在與語言無關,併為幾種流行的程式語言提供官方 SDK

語言 程式碼庫 維護者 狀態
TypeScript github.com/modelcontextprotocol/typescript-sdk Anthropic 活躍
Python github.com/modelcontextprotocol/python-sdk Anthropic 活躍
Java github.com/modelcontextprotocol/java-sdk Spring AI (VMware) 活躍
Kotlin github.com/modelcontextprotocol/kotlin-sdk JetBrains 活躍
C# github.com/modelcontextprotocol/csharp-sdk 微軟 活躍(預覽)
Swift github.com/modelcontextprotocol/swift-sdk loopwork-ai 活躍
Rust github.com/modelcontextprotocol/rust-sdk Anthropic/社群 活躍
Dart https://github.com/leehack/mcp_dart Flutter 社群 活躍

這些 SDK 提供了特定於語言的抽象,簡化了 MCP 協議的使用,讓您可以專注於實現伺服器或客戶端的核心邏輯,而不是處理底層協議細節。

後續步驟

我們只觸及了 MCP 功能的皮毛,但您已經運行了一個基本伺服器。事實上,您還使用瀏覽器中的 MCP 客戶端連線到了它。

在下一節中,我們將探討如何從 LLM 連線到您的伺服器。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.