跳转至

安装

机器翻译

本页由英文文档自动翻译而来,以英文页面为准。如果有读起来不对的地方,翻译页面说明了如何反馈。

Python SDK 在 PyPI 上的包名是 mcp,需要 Python 3.10+

本文档描述的是 v2,也就是当前的稳定版本系列:

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

从 v1 迁移过来?

v2 是包含破坏性变更的主版本,迁移指南 涵盖了其中每一处。如果你的依赖 mcp 且还没准备好迁移,请保留 <2 的版本上限(例如 mcp>=1.28,<2),这样在未锁定版本的情况下,依赖解析仍会停留在 1.x 系列。

安装了什么

使用 SDK 并不需要了解这些,不过如果你好奇每个依赖是做什么的:

  • mcp-types:所有协议类型(请求、结果、内容块)独立成一个包,版本与 SDK 同步发布。依赖 mcp 的代码通过 mcp.types 这个别名导入它(本文档里每一处 from mcp.types import ... 都是这样);只有在安装了 mcp-types 却没有安装 SDK 的项目里,才直接导入 mcp_types
  • anyio:异步运行时。整个 SDK 都基于 anyio 编写,因此既能跑在 asyncio 上,也能跑在 trio 上。
  • pydantic:每个 mcp.types 模型都构建在它之上,所有的模式生成和校验也由它完成。
  • httpx2:支撑 Streamable HTTP 和 SSE 客户端传输方式的 HTTP 客户端,内置对 server-sent events 的支持。
  • starletteuvicornsse-starlettepython-multipart:HTTP 服务器端传输方式。
  • jsonschema:对照工具声明的输出模式,校验工具的结构化输出。
  • pyjwt[crypto]:授权所需的 OAuth 令牌处理。
  • opentelemetry-api:仅包含轻量级的 API,所以除非你自己安装 OpenTelemetry SDK 和导出器,否则 SDK 的追踪中间件不会带来任何开销。
  • typing-extensionstyping-inspection:在 Python 3.10 上提供现代的类型标注特性。
  • pywin32:仅 Windows 需要,用于 stdio 子进程管理。

可选附加依赖

  • mcp[cli] 会额外安装 typerpython-dotenv,供 mcp 命令行工具(mcp devmcp runmcp install)使用。开发期间会用到它;部署后的服务器里未必需要。
  • mcp[rich] 会额外安装 rich,让服务器日志更美观。