如果你想从更底层理解甚至定制 MCP,而不是只用一个高层框架,那官方 Python SDK 就是地基。它由 MCP 协议方亲自维护,提供服务端与客户端的完整实现,支持 stdio、Streamable HTTP、SSE 全部标准传输。无论是要暴露工具、资源、提示词给 LLM 应用,还是写客户端去连任意 MCP 服务,这个 SDK 都是事实标准。版本已进入 2.x,API 稳定,文档体系完整。

项目基本信息

信息项详情
项目名称python-sdk
GitHub地址https://github.com/modelcontextprotocol/python-sdk
项目描述The official Python SDK for Model Context Protocol servers and clients
作者modelcontextprotocol
开源协议MIT License
开源状态公开
LanguagesPython
Stars24,677
Forks4,083
支持平台Windows / macOS / Linux
最后更新2026-10-25

一、项目介绍

MCP Python SDK 是 Model Context Protocol 的官方 Python 实现,由协议方直接维护。它提供 servers 与 clients 两端能力,支持 stdio、Streamable HTTP、SSE 三种标准传输,让你既能把工具/资源/提示词暴露给任意 MCP 主机,也能连接任意 MCP 服务。配套文档含入门指南、v2 新特性、API 参考与迁移指南。

二、核心优势

  • 官方正统:协议方维护,与规范同步。
  • 双端齐全:既能建服务端,也能建客户端。
  • 全传输:stdio / Streamable HTTP / SSE 全覆盖。
  • 文档完善:含入门、v2 新特性、API 参考与迁移指南。
  • 生态枢纽:FastMCP、各类 MCP 服务底层都依赖它。

三、适用场景

  • 需要深度控制 MCP 行为或自定义传输时。
  • 教学、研究 MCP 协议机制。
  • 构建企业级、强类型约束的 MCP 服务。
  • 作为其他 Python MCP 框架的底层依赖。

四、安装教程

需要 Python 3.10+,安装含 CLI 的版本:

pip install "mcp[cli]"
# 或
uv add "mcp[cli]"

一个最小服务端,server.py:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Demo")

@mcp.tool
def hello() -> str:
    return "hi"

if __name__ == "__main__":
    mcp.run()

用 Inspector 调试:mcp dev server.py。

常见报错:ImportError 多为 Python 版本过低;mcp[cli] 装不上多为 pip 过旧,先 pip install -U pip。

五、使用示例

把上面的服务跑起来后,用官方 Inspector(另一终端)连接即可在网页里试调工具。客户端侧同样可用 SDK 建立连接、枚举工具并调用,实现「AI 应用 ↔ MCP 服务」的标准握手。

六、常见问题

  • 2.x 和 1.x 区别大吗?有较大改进,官方提供迁移指南。
  • 支持异步吗?支持 async/await。
  • 能同时开多个传输吗?按部署需求选择其一即可。
  • 和 FastMCP 框架重复吗?SDK 是底层,FastMCP 是上层封装,二者互补。

七、总结

官方 Python SDK 是 MCP 在 Python 世界的「标准件」。框架可以换,但协议与边界由它定义。无论你是造轮子还是用轮子,先摸清这个 SDK,都会少走很多弯路。