MCP 課程文件
MCP SDK
加入 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 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 上更新