Bỏ qua tới nội dung
Bài 7/11 · Khoá học MCP (Hugging Face)

MCP SDK

Dùng SDK chính thức của MCP (Python, JavaScript…) để cài đặt tool, resource và prompt rồi chạy server với MCP Inspector.

Cơ bản@shine19045 phút đọc

Model Context Protocol có SDK chính thức cho JavaScript, Python và nhiều ngôn ngữ khác. Nhờ đó, việc cài đặt MCP client và MCP server trong ứng dụng của bạn trở nên dễ dàng. Các SDK này xử lý những chi tiết cấp thấp của giao thức, để bạn tập trung xây dựng các capability cho ứng dụng.

Tổng quan về SDK

Các SDK cung cấp chức năng cốt lõi tương tự nhau, tuân theo đặc tả giao thức MCP mà chúng ta đã bàn ở các bài trước. Chúng đảm nhận:

  • Giao tiếp ở cấp giao thức
  • Đăng ký và khám phá capability
  • Tuần tự hoá / giải tuần tự hoá thông điệp (serialization/deserialization)
  • Quản lý kết nối
  • Xử lý lỗi

Cài đặt các primitive cốt lõi

Hãy xem cách cài đặt từng primitive cốt lõi (Tools, Resources và Prompts) bằng cả hai SDK.

Video hướng dẫn (tiếng Anh): xem trên YouTube.

python
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()

Khi đã cài đặt xong server, bạn khởi động nó bằng cách chạy script server.

bash
mcp dev server.py

Lệnh này khởi chạy một server phát triển cho file server.py và in ra log như sau:

bash
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 🚀

Sau đó bạn mở MCP Inspector tại http://127.0.0.1:6274 để xem các capability của server và tương tác với chúng.

Bạn sẽ thấy các capability của server và có thể gọi chúng ngay trên giao diện.

Giao diện MCP Inspector

Các MCP SDK

MCP được thiết kế để không phụ thuộc ngôn ngữ, và hiện có SDK chính thức cho nhiều ngôn ngữ lập trình phổ biến:

Ngôn ngữRepoĐơn vị duy trìTrạng thái
TypeScriptgithub.com/modelcontextprotocol/typescript-sdkAnthropicActive
Pythongithub.com/modelcontextprotocol/python-sdkAnthropicActive
Javagithub.com/modelcontextprotocol/java-sdkSpring AI (VMware)Active
Kotlingithub.com/modelcontextprotocol/kotlin-sdkJetBrainsActive
C#github.com/modelcontextprotocol/csharp-sdkMicrosoftActive (Preview)
Swiftgithub.com/modelcontextprotocol/swift-sdkloopwork-aiActive
Rustgithub.com/modelcontextprotocol/rust-sdkAnthropic/CommunityActive
Darthttps://github.com/leehack/mcp_dartFlutter CommunityActive

Các SDK này cung cấp lớp trừu tượng riêng cho từng ngôn ngữ, giúp làm việc với giao thức MCP đơn giản hơn: bạn tập trung cài đặt logic cốt lõi của server hoặc client thay vì xử lý chi tiết cấp thấp của giao thức.

Bước tiếp theo

Chúng ta mới chỉ chạm vào bề mặt những gì có thể làm với MCP, nhưng bạn đã có một server cơ bản đang chạy. Thực tế, bạn cũng đã kết nối tới nó bằng MCP client trên trình duyệt (MCP Inspector).

Ở phần tiếp theo, chúng ta sẽ xem cách kết nối tới server của bạn từ một LLM (bài MCP client).

Nguồn