如何用 Python 构建自己的 MCP 服务器(10 分钟上手)
使用官方 Python SDK 和 MCPServer 构建、测试并连接一个最小的 MCP 服务器,并附设计建议。
选择 SDK
官方 SDK 支持 TypeScript、Python、C#、Java、Kotlin、Go 等语言。本指南使用官方 Python SDK 2.x,需要 Python 3.11 或更高版本。较早的 1.x 版本使用 mcp.server.fastmcp 中的 FastMCP,而不是 MCPServer。
1. 准备项目
uv init demo && cd demo
uv add "mcp[cli]"2. 编写服务器
工具就是一个带类型注解和文档字符串的普通函数,SDK 会把它们转换成工具的模式和描述。mcp.run() 会启动一个 stdio 服务器。
# 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
if __name__ == "__main__":
mcp.run()3. 测试
在 MCP Inspector 中打开它,即可在网页界面中调用你的工具:
uv run mcp dev server.py4. 连接到客户端
请使用绝对路径。Claude Desktop 和 Cursor 使用下面的配置项;在 Claude Code 中运行 claude mcp add demo -- uv run --with "mcp[cli]" mcp run /绝对路径/server.py。
{
"mcpServers": {
"demo": {
"command": "uv",
"args": ["run", "--with", "mcp[cli]", "mcp", "run", "/absolute/path/to/server.py"]
}
}
}设计建议
- 工具名称和描述要清晰,模型是通过阅读它们来选择工具的。
- 校验输入,返回简短而有用的文本。
- 不要在没有确认的情况下暴露破坏性操作。
- 给你的 GitHub 仓库添加
mcp-server主题,Socketlist 就会自动收录。