MCP 服务开发笔记

3 阅读2分钟

一、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 -m venv .venv
source .venv/bin/activate
pip install mcp
python main.py

需要手动创建、激活虚拟环境。

现在(uv)

# 安装 uv(一次性)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 初始化项目 & 添加依赖
uv init my-mcp-server && cd my-mcp-server
uv add "mcp[cli]"

# 运行
uv run main.py

uv 自动管理虚拟环境,不用手动创建和激活,速度极快(Rust 实现)。

四、核心区别

pip + venvuv
虚拟环境手动创建、激活自动管理
安装依赖pip install xxxuv add xxx
运行python main.pyuv run main.py
锁文件requirements.txt自动生成 uv.lock

五、Cursor 中配置 MCP 测试

1. 打开设置

Cursor SettingsMCPAdd 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,省去手动管理虚拟环境的步骤。