极简版 MCP 工具实现方案
·
极简版 MCP 工具实现方案
用一个最小示例演示如何实现并注册一个 MCP 工具(greet),供 Claude Code 调用。
目录结构
mcp_test/
├── .claude/
│ ├── settings.json # 项目级 MCP 配置
│ └── settings.local.json # 本地授权(允许启用该服务器)
├── .mcp.json # 项目级 MCP 服务器定义
├── .venv/ # Python 虚拟环境
├── hello_mcp.py # MCP 服务端实现
└── readme.md
实现步骤
1. 编写 MCP 服务端
新建 hello_mcp.py:
'''
MCPServer 这个库
使用 pip install mcp
装一下
'''
from mcp.server import MCPServer
server = MCPServer("hello-world")
@server.tool(description="向某人打招呼")
def greet(name: str) -> str:
"""向某人打招呼"""
return f"你好,{name}!欢迎使用 MCP 工具!"
if __name__ == "__main__":
server.run() # 默认 stdio 传输
要点:
MCPServer("hello-world")创建服务实例,名称需与配置文件中的 key 一致。@server.tool()装饰器把函数暴露为 MCP 工具,工具名即函数名greet。- 参数
name: str会自动映射为工具的入参 schema,类型标注不可省略。 server.run()默认使用 stdio 传输,由客户端拉起子进程通信。
2. 注册到 MCP 配置
新建 .mcp.json,把服务注册上去:
{
"mcpServers": {
"hello-world": {
"type": "stdio",
"command": "D:/cursor-workspace/mcp_test/.venv/Scripts/python.exe",
"args": ["D:/cursor-workspace/mcp_test/hello_mcp.py"]
}
}
}
要点:
command指向虚拟环境中的 Python 解释器,确保mcp依赖可用。args传入服务端脚本路径。type固定为stdio,表示通过标准输入输出通信。
3. 授权启用
在 .claude/settings.local.json 中确认已启用该服务器:
{
"enabledMcpjsonServers": [
"hello-world"
]
}
4. 验证调用
重启会话后即可使用该工具,例如:
用 greet 工具跟我打个招呼,我叫小明
返回:
你好,小明!欢迎使用 MCP 工具!
项目级 vs 全局
以上均为项目级方案,配置写在项目根目录,随仓库共享给团队成员。
若希望全局可用(所有项目都能调用),把 mcpServers 配置注册到 ~/.claude/settings.json 中即可:
{
"mcpServers": {
"hello-world": {
"type": "stdio",
"command": "/绝对路径/.venv/Scripts/python.exe",
"args": ["/绝对路径/hello_mcp.py"]
}
}
}
全局配置中的路径需要使用绝对路径,否则在不同项目下无法定位脚本。
更多推荐


所有评论(0)