Python MCP服务器示例:30分钟搭建
想把自己的数据或工具开放给Claude等AI助手。
💡 你将学到
想把自己的数据或工具开放给Claude等AI助手。
📜 目录
Python 中的 MCP 服务器示例:30 分钟构建你的第一个模型上下文协议服务器
在 2026 年,用 Python 构建 MCP 服务器已经是一个成熟的问题:官方 SDK(mcp)处理协议,你只需编写普通函数即可。本教程将构建一个可运行的服务器,暴露一个工具,然后将其连接到 Claude Desktop。
第一步:安装
pip install "mcp[cli]"
第二步:服务器(约 20 行代码)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Weather Demo")
@mcp.tool()
def get_weather(city: str) -> str:
# 生产环境中,这里应调用真实的天气 API
return "Weather in " + city + ": 22C, partly cloudy"
if __name__ == "__main__":
mcp.run()
这就是一个完整的服务器。一个装饰器,一次运行调用。
第三步:测试
python server.py
# 在另一个终端中:
mcp dev server.py
mcp dev 命令会打开一个检查器界面,你可以在其中调用 get_weather 并查看结果。
第四步:连接到 Claude Desktop
在 claude_desktop_config.json 中添加:
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["C:/path/to/server.py"]
}
}
}
重启 Claude Desktop。现在 Claude 可以调用 get_weather("Tokyo") 并在对话中使用结果。
FastMCP 层为你处理了什么
| 关注点 | 由谁处理 |
|---|---|
| JSON-RPC 传输 | SDK(stdio 或 SSE/HTTP) |
| 工具发现 | SDK 内省 |
| 输入验证 | Pydantic 模型 |
| 错误处理 | SDK 错误码 |
常见问题
FastMCP 还是原始 SDK? 新项目建议使用 FastMCP——它是官方高级 API,可减少 80% 的样板代码。
我可以将 REST API 暴露为 MCP 吗? 可以,将 REST 调用封装在 @mcp.tool() 函数中即可;LLM 会调用你的工具,工具再调用 API。
有 TypeScript 版本吗? 有,官方 SDK 在 TypeScript 中也是一等公民。Python 和 TS 覆盖了绝大多数服务器场景。
相关文章
❓ 常见问题
FastMCP 还是原始 SDK?
新项目建议使用 FastMCP——它是官方高级 API,可减少 80% 的样板代码。
我可以将 REST API 暴露为 MCP 吗?
可以,将 REST 调用封装在 `@mcp.tool()` 函数中即可;LLM 会调用你的工具,工具再调用 API。
有 TypeScript 版本吗?
有,官方 SDK 在 TypeScript 中也是一等公民。Python 和 TS 覆盖了绝大多数服务器场景。
本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。
