MCP 服务开发笔记
一、MCP 依赖安装
依赖需要手动安装,Cursor 不会自动安装。Cursor 只负责按配置启动进程并通信。
二、MCP 配置位置
- 全局:
~/.cursor/mcp.json - 项目级:
项目根目录/.cursor/mcp.json
配置示例:
{"mcpServers":{"my-server":{"command":"uv","args":["--directory","/path/to/project","run","main.py"]}}}三、开发流程对比
以前(pip + venv)
python-mvenv .venvsource.venv/bin/activate pipinstallmcp python main.py需要手动创建、激活虚拟环境。
现在(uv)
# 安装 uv(一次性)curl-LsSfhttps://astral.sh/uv/install.sh|sh# 初始化项目 & 添加依赖uv init my-mcp-server&&cdmy-mcp-server uvadd"mcp[cli]"# 运行uv run main.pyuv自动管理虚拟环境,不用手动创建和激活,速度极快(Rust 实现)。
四、核心区别
| pip + venv | uv | |
|---|---|---|
| 虚拟环境 | 手动创建、激活 | 自动管理 |
| 安装依赖 | pip install xxx | uv add xxx |
| 运行 | python main.py | uv run main.py |
| 锁文件 | requirements.txt | 自动生成 uv.lock |
五、Cursor 中配置 MCP 测试
1. 打开设置
Cursor Settings→MCP→Add new global MCP server(全局)
或手动编辑项目下.cursor/mcp.json(项目级,仅当前项目生效)。
2. 配置示例
pip + venv 方式(老方式,直接指向虚拟环境中的 python):
{"mcpServers":{"my-server":{"command":"/path/to/project/venv/bin/python","args":["/path/to/project/server.py"]}}}command 必须指向虚拟环境内的 python 路径,这样才能找到 venv 里装的依赖。
uv 方式(新方式,推荐):
{"mcpServers":{"my-server":{"command":"uv","args":["--directory","/absolute/path/to/project","run","main.py"]}}}uv 自动识别项目虚拟环境和依赖,不用关心 python 路径。
sse 模式(远程 HTTP 服务):
{"mcpServers":{"my-server":{"url":"http://localhost:8000/sse"}}}3. 验证
配置保存后,在Cursor Settings → MCP页面查看服务状态:
- 🟢 绿点 = 连接成功
- 🔴 红点 = 启动失败,点击查看错误日志
连接成功后,在 Agent 模式对话中即可调用该 MCP 提供的工具。
4. 调试技巧
- 先用
uv run main.py手动跑一遍确认无报错 - 改代码后在 MCP 设置页点 🔄 重启服务即可热更新
- 查看 Cursor 输出面板(
Output → MCP)排查问题
六、总结
装好环境 → 配置 mcp.json 指定启动命令 → Cursor 自动调用并通信。现在推荐用uv,省去手动管理虚拟环境的步骤。
