发现 AI 代理的未来

MCP Python SDK

收录于 2026年5月8日
智能体与应用工具
开源
PythonFastAPIMCPAI代理SDKCLI智能体与应用工具模型与推理框架开发者工具/代码协议/API/集成

Model Context Protocol 官方 Python SDK,通过 FastMCP 声明式框架构建标准化 MCP 服务器与客户端。

项目概述#

MCP Python SDK 是 Model Context Protocol 的官方 Python 实现,由 modelcontextprotocol 组织维护(Linux Foundation 项目系列)。提供完整的协议支持与声明式开发框架,用于将内部 API、数据库、文件系统等异构数据源通过统一协议暴露给 Claude、ChatGPT 等任意 MCP 兼容的 AI 客户端。

当前稳定版为 v1.x,main 分支为 v2 pre-alpha。环境要求 Python ≥3.10(支持至 3.14),跨平台运行。

核心能力#

协议原语#

  • Tools(工具):让 LLM 执行操作,类似 REST POST,支持副作用;返回值自动基于类型注解生成 schema 并验证
  • Resources(资源):向 LLM 暴露数据,类似 REST GET,无副作用
  • Prompts(提示):可复用的 LLM 交互模板

FastMCP 高级特性#

  • Structured Output:支持 Pydantic BaseModel、TypedDict、dataclass 等类型注解自动生成 schema
  • Lifespan:类型安全的启动/关闭生命周期管理(如数据库连接池)
  • Context 注入:工具函数通过 Context 参数访问进度上报、日志、会话信息
  • Progress / Logging / Notifications:长任务进度通知、分级日志
  • Elicitation:服务器可向用户请求额外输入
  • Sampling:服务器可请求客户端 LLM 生成文本
  • Completions:自动补全支持

传输层#

传输方式说明
stdio标准输入输出,适合本地进程通信
SSEServer-Sent Events,HTTP 长连接推送
Streamable HTTP最新推荐传输方式,支持可恢复流
WebSockets可选依赖 mcp[ws]
ASGI 挂载可挂载到已有 ASGI 应用(如 FastAPI),支持 host-based 路由和多路径配置
CORS支持浏览器端客户端

客户端能力#

  • 完整的 MCP 客户端实现,可连接任意 MCP 服务器
  • 客户端侧 OAuth 认证支持
  • Tool Result 解析工具与 Display Utilities

认证与可观测性#

  • JWT 认证(PyJWT)与 OAuth 完整认证流程
  • OpenTelemetry 集成

架构设计#

FastMCP(高层声明式框架,装饰器 API)
    ↓
低层 Server/Client API(精细控制)
    ↓
anyio 异步运行时(兼容 asyncio 与 trio)
    ↓
传输层(stdio / SSE / Streamable HTTP / WebSocket)
    ↓
Starlette + Uvicorn(ASGI HTTP 服务)

源码布局:src/mcp/ 下分 server/(含 FastMCP)、client/types/(共享类型定义)。

快速开始#

uv add "mcp[cli]"

可选依赖组:mcp[cli](CLI 工具)、mcp[ws](WebSocket)、mcp[rich](Rich 终端输出)。

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Demo", json_response=True)

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

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

@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
    return f"Please write a warm greeting for {name}."

if __name__ == "__main__":
    mcp.run(transport="streamable-http")

集成 Claude Code:claude mcp add --transport http my-server http://localhost:8000/mcp

调试:npx -y @modelcontextprotocol/inspector 连接到 http://localhost:8000/mcp

适用场景#

  • 构建 MCP 服务器封装企业内部数据源供 AI 助手调用
  • 构建 MCP 客户端开发自主 AI 应用
  • 与 Claude Code、VS Code Copilot、Cursor 等 AI 编码助手直接集成
  • 一次编写、多 LLM 平台复用的统一接口层

质量保障#

  • 100% 测试覆盖率目标(fail_under = 100
  • Pyright strict mode 严格类型检查
  • Ruff lint + format
  • Pre-commit hooks

待确认信息#

  • v2(main 分支,pre-alpha)的具体发布时间表未明确
  • WebSocket 传输在 v2 中的推荐定位未说明
  • 未找到官方性能基准测试数据
  • v2 Python SDK 与 TypeScript SDK 的功能对齐程度需对比确认

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。