← 返回目录
M

MCP Python SDK

官方
框架 / SDK
官方 Model Context Protocol Python SDK,用于构建 MCP 服务器与客户端

这是用于开发 MCP Server 或 Agent 的框架,不是可以直接连接到客户端的 Server。

分类
开发工具 第 20 / 438
Stars
★ 24.7k 非常热门
传输方式
stdio(本地进程) · SSE · Streamable HTTP
运行环境
Python 3.10+
凭据
无需凭据
许可证
MIT
最近提交
68FMRS · C

官方维护的 MCP Python SDK,用于构建服务器和客户端而非本身作为固定功能服务器;文档、迁移指南和社区支持渠道完整,v2 为当前稳定线,v1.x 仍维护安全补丁。

最强项 · 维护活跃度 18/20 最弱项 · 可靠性 9/20

可靠性
9/20
安全与权限
12/20
维护活跃度
18/20
文档质量
16/20
安装易用性
13/20
查看各项评分依据
可靠性 9/20
README 展示了一个可运行的15行服务器示例和10行客户端示例,工具通过类型注解自动生成 schema,声称的功能与代码片段一致。但本次评审仅基于 README 文本,未提供服务器 manifest,也未看到仓库中实际的 CI 工作流或测试文件作为可验证的执行证据,无法确认 MCP 初始化/工具列表握手在各种环境下的可复现性,错误处理与依赖控制情况也未说明。按静态评审规则,缺乏可验证的执行证据时可靠性不得高于12分,故给出9分。
安全与权限 12/20
作为官方协议 SDK 而非具体业务服务器,README 中未见硬编码密钥、未见危险操作默认执行、未见明显红线风险(无恶意代码、无隐蔽外传迹象)。但材料中也未说明权限最小化、工具调用的数据边界、外部网络访问范围或危险操作的二次确认机制,这些信息缺失导致无法评定为高分,按保守原则扣分。
维护活跃度 18/20
证据充分:MIT 许可证、23895 星标、有明确的 v2/v1.x 双线维护策略(v1.x 仍在接收关键修复和安全补丁)、清晰的迁移指南、贡献指南链接、专门的 Discord 开发者频道和 issue 模板,表明有持续且有组织的维护和明确的所有权路径。511个未解决 issue 在大型活跃项目中属正常范围。
文档质量 16/20
文档链接层次分明:入门指南、What's New、API 参考、迁移指南均可达;README 自身包含可复制运行的最小示例(服务器与客户端),并说明了不同安装方式的区别(含 cli extra)。但版本兼容性提示(`mcp<2` 锁定建议)等属于隐藏假设,且工具参数、速率限制、故障排查等细节需跳转外部文档才能获得,本材料本身未直接呈现这些内容,故未给满分。
安装易用性 13/20
安装步骤简明(`uv add`/`pip install`),提供了最小可运行示例和 MCP Inspector 调试方式,跨平台性可推断良好(标准 Python 包)。但按静态评审规则,没有 CI 工作流或测试文件作为验证证据时设置易用性不得高于15分;此外未提供具体 MCP 客户端(如 Claude Desktop)的配置示例,故不给满分。

静态评测 · 未实际运行收录于 2026-08-06

查看 FMRS 评分方法 →

选型与风险

能访问什么执行命令或代码访问网络

适合谁

  • 熟悉 Python 类型注解、希望快速搭建 MCP 服务器或客户端的开发者
  • 需要在项目中集成 MCP 协议能力(工具调用、资源访问)的团队
  • 正在评估或迁移到 MCP v2 规范的现有 v1 用户

不适合谁

  • 寻找可直接安装使用、开箱即用的最终用户级 MCP 服务器(本仓库是 SDK 而非某个具体服务)的用户
  • 仍停留在 Python 3.9 及更早版本、无法升级运行环境的项目
  • 尚未准备好处理 v1 到 v2 破坏性变更、需要长期锁定旧行为的项目

所需权限

  • SDK 本身不请求特定系统权限;实际权限需求取决于开发者用它构建的具体服务器逻辑
  • 若服务器通过 stdio 运行,宿主进程可执行任意本地代码逻辑(由开发者编写的工具函数决定)
  • 若使用 SSE 或 Streamable HTTP 传输,需要网络监听/访问权限

风险与副作用

  • 作为开发库,最终服务器的安全性完全取决于使用者如何实现工具与资源逻辑,SDK 无法保证下游代码安全
  • v1 到 v2 存在架构性破坏变更,未固定版本上限的项目在依赖升级时可能意外收到不兼容的 2.x 版本
  • 工具函数的参数与返回值处理若未做额外校验,仍可能被恶意或异常输入触发非预期行为

安装接入

准备工作

运行环境:Python 3.10+

使用 uv add "mcp[cli]" 或 pip install "mcp[cli]" 安装(cli extra 附带 mcp dev/mcp run/mcp install 命令行工具;若不需要 CLI,可只安装 mcp)。由于 pip install mcp 现在默认安装 2.x,若项目仍依赖 v1 行为,需在依赖声明中锁定版本上限,例如 mcp>=1.28,<2,直至完成迁移。安装后可编写包含 @mcp.tool()、@mcp.resource() 装饰器的服务器脚本,并用 uv run mcp dev server.py 在 MCP Inspector 中调试。

验证是否装好

运行 uv run mcp dev server.py 打开 MCP Inspector,应能看到 add 工具;调用它并传入 a=1、b=2 应返回结果 3。

常见排障

  1. 确认 Python 版本为 3.10 及以上,否则安装或运行会失败
  2. 若需要 `mcp` 命令行工具(`mcp dev`/`mcp run`/`mcp install`),确认安装时带上了 `[cli]` extra
  3. 若项目依赖 v1.x 行为,检查依赖声明是否已锁定 `<2` 版本上限,避免被自动升级到 v2
  4. 使用 `uv run mcp dev server.py` 结合 MCP Inspector 排查工具调用或资源解析问题
  5. 参考官方文档站 py.sdk.modelcontextprotocol.io 的迁移指南解决 v1→v2 升级问题

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 用官方 Python SDK 写一个暴露 add 工具的 MCP 服务器
  • 写一个 MCP 客户端连接到 http://localhost:8000/mcp 并调用 add 工具
  • 把我的 server.py 里定义的工具和资源列出来

使用场景

从零编写一个暴露工具、资源、提示的自定义 MCP 服务器
编写连接远程或本地 MCP 服务器的 Python 客户端
在测试中直接以内存方式连接服务器对象,无需启动实际传输层
在 stdio、SSE、Streamable HTTP 之间为已有服务器切换传输方式

详细介绍

这是 Model Context Protocol(MCP)的官方 Python 实现,由 modelcontextprotocol 组织维护。它不是一个提供固定工具集的独立 MCP 服务器,而是一个开发库:开发者用它来编写暴露工具(tools)、资源(resources)和提示(prompts)的 MCP 服务器,或编写连接任意 MCP 服务器的客户端。SDK 支持 stdio、Streamable HTTP 和 SSE 三种标准传输方式,并通过 Python 类型注解自动生成 JSON Schema,免去手写协议解析代码。当前为 v2 主线(配合 2026-07-28 版协议规范及更早版本),v1.x 仍在独立分支上接收安全补丁。要求 Python 3.10 及以上版本。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 64.1k · 工具数 2 与当前对比 →

源版本 af4c6f4db2cd 数据同步于 2026-11-04 查看 FMRS 评分方法