Model Context Protocol Python SDK 快速入门指南
Model Context Protocol (MCP) Python SDK 是一个开源项目,实现了 Model Context Protocol 规范,使开发者能够轻松构建与大型语言模型(LLM)交互的服务器和客户端。该 SDK 允许应用程序以标准化的方式为 LLM 提供上下文信息,分离了提供上下文和 LLM 实际交互的关注点。
环境准备
在开始安装之前,请确保您的系统中已经安装了以下软件:
- Python 3.7 或更高版本
- pip 包管理器
- 稳定的网络连接
安装步骤
使用 uv 包管理器安装
我们推荐使用 uv 来管理您的 Python 项目。如果您还没有创建 uv 管理的项目,请先创建一个:
uv init mcp-server-demo
cd mcp-server-demo
然后将 MCP 添加到项目依赖中:
uv add "mcp[cli]"
使用 pip 安装
对于使用 pip 管理依赖的项目:
pip install "mcp[cli]"
快速开始
让我们创建一个简单的 MCP 服务器,暴露计算器工具和一些数据:
from mcp.server.fastmcp import FastMCP
# 创建 MCP 服务器
mcp = FastMCP("Demo", json_response=True)
# 添加加法工具
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# 添加动态问候资源
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
# 添加提示
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
"""Generate a greeting prompt"""
styles = {
"friendly": "Please write a warm, friendly greeting",
"formal": "Please write a formal, professional greeting",
"casual": "Please write a casual, relaxed greeting",
}
return f"{styles.get(style, styles['friendly'])} for someone named {name}."
# 使用可流式 HTTP 传输运行
if __name__ == "__main__":
mcp.run(transport="streamable-http")
运行服务器
您可以将此服务器安装在 Claude Code 中并立即与之交互。首先运行服务器:
uv run --with mcp examples/snippets/servers/fastmcp_quickstart.py
然后将其添加到 Claude Code:
claude mcp add --transport http my-server http://localhost:8000/mcp
核心概念
服务器
FastMCP 服务器是您与 MCP 协议的核心接口。它处理连接管理、协议合规性和消息路由。
资源
资源是您向 LLM 暴露数据的方式。它们类似于 REST API 中的 GET 端点 - 它们提供数据但不应该执行重要的计算或产生副作用。
工具
工具让 LLM 通过您的服务器执行操作。与资源不同,工具执行计算并具有副作用。
提示
提示是可重用的模板,帮助 LLM 有效地与您的服务器交互。
进阶功能
结构化输出
工具默认返回结构化结果,如果它们的返回类型注解兼容。否则,它们将返回非结构化结果。
结构化输出支持以下返回类型:
- Pydantic 模型(BaseModel 子类)
- TypedDict
- 具有类型提示的数据类和其他类
- 原始类型(str、int、float、bool、bytes、None)- 包装在
{"result": value}中
上下文管理
Context 对象自动注入到通过类型提示请求它的工具和资源函数中。它提供对 MCP 功能的访问,如日志记录、进度报告、资源读取、用户交互和请求元数据。
实用示例
项目提供了丰富的示例代码,涵盖各种使用场景:
- 基础工具和资源示例:examples/snippets/servers/basic_tool.py
- 结构化输出示例:examples/snippets/servers/structured_output.py
- 进度报告示例:examples/snippets/servers/tool_progress.py
- 认证集成示例:examples/snippets/servers/oauth_server.py
开发建议
- 首次使用时建议从简单功能开始
- 使用
mcp dev命令进行开发调试 - 定期检查项目更新获取新功能
- 参考官方文档获取详细说明
通过以上步骤,您可以快速开始使用 Model Context Protocol Python SDK,构建强大的 LLM 交互应用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



