Files
wehub-resource-sync 4782e08282
Conformance Tests / server-conformance (push) Waiting to run
Conformance Tests / client-conformance (push) Waiting to run
GitHub Actions Security Analysis / zizmor (push) Waiting to run
CI / all-green (push) Has been cancelled
CI / checks (push) Has been cancelled
docs: make Chinese README the default
2026-07-13 09:55:40 +00:00

6.5 KiB
Raw Permalink Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

MCP Python SDK

Model Context ProtocolMCP)的 Python 实现

PyPI MIT licensed Python Version Documentation Protocol Specification

Caution

本 README 记录的是 MCP Python SDK v2 —— 一条正在积极开发的预发布(alpha/beta)分支。请勿在生产环境使用 v2。 预发布版本会发布到 PyPI,包名为 2.0.0aN / 2.0.0bN,且每个预发布版本相对前一版都可能包含破坏性变更。请固定精确版本,并在提升版本 pin 时预期需要更新代码。

v1.x 是唯一稳定的发布分支,仍建议用于生产环境。 它位于 v1.x 分支,并继续接收关键 bug 修复和安全补丁;文档见 v1.x READMEpipuv 不会选择预发布版本,除非你显式请求,因此现有安装不受影响。若你的包依赖 mcp,请在稳定版发布前,为版本约束添加上界 <2(例如 mcp>=1.27,<2)。

v2 是对 SDK 的一次重大重构,既是为了支持 2026-07-28 MCP 规范发布,也是为了修复长期存在的架构问题。变更概览见 v2 新特性,各项破坏性变更见 迁移指南。稳定版 v2 计划于 2026-07-27 与规范同步发布。欢迎试用预发布版本,并告诉我们哪里会出问题,,或在 MCP Contributors Discord 的 #python-sdk-dev. 频道讨论。

文档

文档地址:https://py.sdk.modelcontextprotocol.io/v2/

其中包含 入门指南,、v2 新特性,、API 参考,,以及 迁移指南.。

什么是 MCP

Model Context Protocol(MCP)让你能够以安全、标准化的方式构建向 LLM 应用暴露数据与功能的服务器。可以把它理解为面向 LLM 交互设计的 Web API。借助本 SDK,你可以:

  • 构建 MCP 服务器,向任意 MCP 主机暴露工具、资源和提示词
  • 构建 MCP 客户端,连接任意 MCP 服务器
  • 支持所有标准传输方式:stdio、Streamable HTTP 和 SSE

环境要求

Python 3.10+。

安装

uv add "mcp[cli]==2.0.0b1"          # or: pip install "mcp[cli]==2.0.0b1"

在 v2 处于预发布阶段时,版本 pin 很重要:未固定版本的安装会解析到最新的稳定版 v1.x,而本 README 并不描述该版本。可在 PyPI 查看最新预发布版本,一次性命令可使用 uv run --with "mcp==2.0.0b1"

15 行代码搭建一个服务器

创建一个 server.py

from mcp.server import MCPServer

mcp = MCPServer("Demo")


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


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

完整示例:docs_src/index/tutorial001.py

这就是一个完整的 MCP 服务器:一个工具、一个模板化资源。在 MCP Inspector: 中打开它。

uv run mcp dev server.py

使用 a=1b=2 调用 add,即可得到 3

注意你没有编写的内容:没有 JSON Schemaa: int, b: int 就是 schema)、没有请求解析、没有校验代码、没有协议处理。只有两个带类型注解的 Python 函数和一个 docstring。

从这里继续阅读 入门指南

10 行代码搭建一个客户端

同一个包也是完整的 MCP 客户端Client 可连接到 URL、stdio 子进程、自定义传输层,或(用于测试)直接连接内存中的服务器对象,完全无需传输层:

import asyncio

from mcp import Client

from server import mcp


async def main() -> None:
    async with Client(mcp) as client:
        result = await client.call_tool("add", {"a": 1, "b": 2})
        print(result.structured_content)  # {'result': 3}


asyncio.run(main())

mcp 替换为 "http://localhost:8000/mcp",同样的代码即可与远程服务器通信。

贡献

我们热忱欢迎各经验水平的贡献者参与,并期待你的加入。入门请阅读 贡献指南

许可证

本项目采用 MIT License 授权。详见 LICENSE 文件。