当前位置: 首页 > news >正文

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

http://www.jsqmd.com/news/539715/

相关文章:

  • Javascript提高:JavaScript Promise 超通俗解释-由Deepseek产生
  • 别再死记ResNet结构了!用PyTorch手把手复现ResNet34,搞懂残差连接为什么能解决‘退化’问题
  • 2026想申港大本科?专业港大本科申请中介推荐(附联系方式) - 品牌2026
  • C++的std--ranges适配器视图元素修改与原数据可变性在算法中的保证
  • AI 开发实战:异常处理怎么设计,AI 才能帮你真正找出薄弱点
  • CI2451实战指南:一款2.4G无线SoC芯片,如何让遥控玩具和灯控设计更简单?
  • 设置Linux命令行提示符shell prompt的前缀颜色,区分命令和输出结果(重连、重启都不会消失)
  • LuckyLilliaBot实战指南:从零构建NTQQ机器人系统
  • 天梯赛L2题解(029-032)
  • 像素幻梦创意工坊实战:为Unity游戏项目批量生成像素资源包
  • Markdown Viewer浏览器插件:快速预览Markdown文档的终极指南
  • 拖拽生成!这款编辑器做到了!告别代码妥妥的!
  • 下载 | Win11 25H2 官方正式版ISO映像!(3月更新、消费者版/专业版、商业版/企业版、26200.8037)
  • CSS 渐变的高级应用:色彩的流动艺术
  • 保姆级教程:用C语言数组手算1000的阶乘,解决PTA编程题(附完整代码)
  • 2026深圳美国留学申请中介推荐,高端美国留学中介服务流程与口碑盘点 - 品牌2026
  • 如何快速掌握茉莉花插件:面向中文文献管理者的终极Zotero优化指南
  • OpenClaw QQ 插件 v0.6.0 发布:率先适配OpenClaw新版本Plugin-SDK
  • 优麦云亚马逊营销云AMC功能与作用精准解析 | 最新优惠码速领 - 麦麦唛
  • 滚动轴承故障诊断系统设计:基于凯斯西储大学数据
  • 别等 Sora 了!一代神话陨落?OpenAI 这一手“弃车保帅”我看懂了...
  • 自适应模型预测控制在无人驾驶汽车轨迹跟踪中的应用
  • YOLO入门
  • 流式液相检测技术(CBA)研究进展
  • 做小月子要注意什么?科学修护指南
  • C++基础笔记(7):拷贝构造函数
  • 函数式编程的架构目标
  • 2026SAT精品小班辅导机构怎么选?高分备考优质SAT小班机构测评 - 品牌2026
  • 纯手工搭建:基于Matlab/Simulink的增程式混合动力汽车建模仿真模型教程
  • 【笔记】用cursor手搓cursor(三)简单尝试claude code