python-sdk
MCP Python SDK 是 Model Context Protocol 的官方 Python 实现,由协议所在的组织直接维护。用它可以编写向任意 MCP 宿主开放工具、资源和提示模板的 MCP Server,也可以编写连接任意 Server 的 MCP Client,并支持所有标准传输方式:stdio、Streamable HTTP 和 SSE。
对于希望与协议规范保持最紧密一致的 Python 开发者,它是参考级的选择,比如开发一个会被许多不同客户端使用的 Server,或者实现自定义的 MCP 宿主。一个最小的 Server 大约 15 行代码;可选的 `cli` 扩展会提供 `mcp` 命令,其中 `mcp dev` 用于在 MCP Inspector 中测试 Server,`mcp run` 用于以指定传输方式运行,`mcp install` 用于把 Server 注册到客户端。v2 版本配有“新特性”说明和完整的 API 参考文档。
上手方式:需要 Python 3.10+。执行 `uv add "mcp[cli]"`(或使用 pip),编写 `server.py`,然后用 `uv run mcp dev server.py` 调试,或用 `uv run mcp run server.py --transport streamable-http` 通过 HTTP 提供服务。
功能特性
为什么选择它
权衡点
维护状况检查
- 最近提交
- 2026-10-24
- 近 90 天提交数
- 100+
- 近 90 天发布数
- 10
- 最新发布
- v2.3.0 (2026-10-02)
- 未关闭 issue
- 364
- 近期 issue 至少有一条评论的比例
- 16/19
最早的一周在左边,最近 4 周为橙色。数据来源:GitHub 提交统计。
状态规则:GitHub 上已归档 = 已归档;最近提交在 90 天内 = 活跃;91 到 365 天 = 放缓;更久 = 停滞。所有数字来自所示日期的 GitHub API。
讨论最多的未关闭 issue
- #1705 Document and provide hooks for sandboxing file and network access in MCP tools29 条评论 · 2025-11-28
- #423 MCP SSE Server: Received request before initialization was complete25 条评论 · 2025-04-03
- #1401 ClientSession Error Handling24 条评论 · 2025-09-25
- #262 cannot get response from await session.call_tool()16 条评论 · 2025-03-12
- #2416 Bug: AssertionError: Request already responded to — cancellation race in v1.27.015 条评论 · 2026-04-09
issue 标题引自 GitHub。请打开链接确认该问题是否仍适用于你使用的版本。
适合谁
- 你希望使用由 Model Context Protocol 官方组织直接维护的 MIT 许可参考 Python SDK。
- 需要对 MCP 核心原语(Resources、Prompts、Tools、Sampling)以及标准传输方式(stdio、SSE、Streamable HTTP)进行完整的底层控制。
- 希望获得更高层的开发便利性(如客户端自动组合、更少的样板代码);FastMCP 提供了更丰富的高层封装。
- 只是想把现有的 GraphQL 或 FastAPI 服务暴露为 MCP,使用 Grafbase 或 FastAPI-MCP 无需手写工具函数。
与同类的区别
官方 Python SDK(MIT)是 MCP 组织维护的标准协议实现;FastMCP(Apache-2.0)则面向服务端、客户端与交互式应用提供了更高层的开发框架。
兼容性
快速开始
使用场景
同类工具
收录于以下清单
评论
暂无评论,来发表第一条吧