Python实现MCP服务器:快速连接Claude Code实战
把MCP (Model Context Protocol) 理解成AI界的USB-C接口就简单了。以前每个AI工具得单独写一套集成,现在只要符合这个协议,写一次就能在支持的客户端(比如Claude Code)里通用。
下一篇
LLM评测大模型写作:人类写的反被判为AI? →
我实测了一下,用Python跑通一个简单的MCP Server其实只要10分钟,核心就是利用官方SDK把一个普通函数定义成AI可以调用的Tool。
环境搭建
这里推荐用 uv,管理依赖比pip快得多。
uv init word-count-mcp
cd word-count-mcp
uv add "mcp[cli]"编写Server代码
创建一个 server.py。重点在于 @mcp.tool() 装饰器,它会自动读取函数的类型注解和Docstring来生成Schema,如果没写类型注解,AI可能不知道怎么传参。
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("word-count")
@mcp.tool()
def word_count(text: str) -> dict:
"""Count the words, characters, and lines in a block of text.
Args:
text: The text to analyze.
"""
words = text.split()
return {
"words": len(words),
"characters": len(text),
"characters_no_spaces": len("".join(text.split())),
"lines": len(text.splitlines()),
}
if __name__ == "__main__":
mcp.run(transport="stdio")部署到Claude Code
先用 uv run server.py 跑一下,确认没报错(程序会阻塞等待输入,Ctrl+C退出即可)。然后直接在项目目录下执行注册命令:
claude mcp add word-count -- uv run --directory "$(pwd)" server.py这里的 -- 后面跟的是启动命令。注册成功后,Claude Code 就能在对话中根据需求自动调用这个 word_count 工具了。
这种模式最强的地方在于,你可以把公司内部的私有API、数据库查询逻辑封装成这样的Tool,直接给AI用,而不需要重新训练模型。