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

工具Cursor(三)MCP(1)介绍

一、在哪里添加McpServers

1、位置

Cursor是一个很好的Mcp Client,可以通过Cursor Setting--Tools & MCP --New Mcp Server来管理mcp tools。

添加之后都会展示在tools列表:

2、mcpServers与 MCP 协议的边界

这是很多人会混淆的地方:

层级负责内容
mcpServers如何启动进程
MCP 协议进程之间怎么说话

mcpServers不关心

  • tools 叫什么

  • schema 长什么样

  • resource / prompt

  • 你用 Java 还是 Python

二、McpServers添加语法

mcpServers是 Cursor 作为 MCP Host 的进程启动与管理配置,它解决的不是 MCP 协议本身,而是:如何启动一个 MCP Server 进程,并通过 stdio 与它通信,所以它的本质是:“进程启动描述(Process Spec)”。mcpServers的通用结构(抽象层):

{ "mcpServers": { "<server-id>": { "command": "<executable>", "args": [ "<arg1>", "<arg2>", ... ], "env": { "<key>": "<value>" } } } }

这一结构在语言 / jar / python / node / go之间是完全通用的

我的mcp servers:

{ "mcpServers": { "memory": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-memory" ], "env": { "MEMORY_FILE_PATH": "C:\\Users\\wtyy\\.mcp-storage\\memory.json" } }, "sequential-thinking": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-sequential-thinking" ] }, "playwright": { "command": "npx", "args": [ "-y", "@playwright/mcp@latest", "--browser", "chrome" ] }, "gitlab": { "command": "npx", "args": [ "-y", "@zereight/mcp-gitlab" ], "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "glpat-******", "GITLAB_API_URL": "https://git.wtyy.us", "GITLAB_READ_ONLY_MODE": "false", "USE_GITLAB_WIKI": "false", "NODE_TLS_REJECT_UNAUTHORIZED": "0" } }, "WtyyHelper": { "command": "C:\\Users\\wtyy\\AppData\\Local\\Programs\\WtyyHelper\\wtyyhelper-mcp.exe", "args": [ "--mcp" ], "env": {} }, "WtyyTest": { "command": "C:\\Users\\wtyy\\AppData\\Local\\Programs\\Python\\Python313\\Scripts\\wtyy.EXE", "args": [ "run", "--directory", "C:\\Users\\Twtyy\\.mytools\\mytools", "mymcp-test" ], "env": {} }, "web-token": { "command": "node", "args": ["/Users/wtyy/mcp/getWebToken.js"], "env": {} }, } }

1、<server-id>(逻辑标识)

语义

  • MCP Server 的逻辑 ID

  • 用于:

    • Cursor 内部管理

    • UI / 日志 / 错误提示

规则

  • 任意字符串

  • 推荐:kebab-case

  • 不参与 MCP 协议

  • 不会传给 Server

2、command(进程入口)

语义

  • 启动 MCP Server 的可执行文件

通用规则

  • 只能是一个可执行文件

  • ❌ 不允许带参数

  • ✔️ 参数必须拆到args

demo
"command": "java" "command": "python3" "command": "node" "command": "/usr/bin/go" "command": "/opt/homebrew/bin/python3" "command": "npx", "command": "Users/my/xxx.EXE"

3、args(进程参数)

语义

  • 传给command参数数组

  • 等价于 shell 中的:command arg1 arg2 arg3

通用规则

  • 必须是数组

  • 每个元素是一个独立参数

  • 顺序严格保留

  • Cursor 不做拼接、不做转义

demo
"args": [ "-jar", "/path/to/server.jar" ]
"args": [ "server.py" ]
"args": [ "--mcp" ],

4、env(进程环境变量)

语义

  • 启动 MCP Server 时注入的环境变量

通用规则

  • 可选

  • Key / Value 都是字符串

  • 会和系统环境合并

  • 若冲突 → 覆盖系统值

demo
"env": { "LOG_LEVEL": "debug", "SPRING_PROFILES_ACTIVE": "prod" }

三、McpServers的「运行时行为规则」

这些是 Cursor 对所有 MCP Server 的统一行为假设。

1、通信模型(硬性规则)

Cursor (Host) stdin ─────► MCP Server stdout ◄───── MCP Server
  • stdio 是唯一通道

  • 不支持 socket / http / grpc

  • Server 不需要监听端口

2、生命周期规则

  • Cursor 启动 Server

  • Server常驻

  • 一个 Server 对应一个进程

  • Cursor 退出 → Server 进程结束

3、输出规则(非常关键)

输出流允许内容
stdout仅 MCP JSON-RPC 消息
stderr任意日志

违反规则 → Server 直接被判定为异常

4、JSON-RPC 规则(通用)

  • 一行一个 JSON

  • UTF-8

  • 必须 flush

  • Cursor 不支持 chunked / streaming

四、cursor调用Mcp Tool的链路

和提示词是强关联的,参考LangChain4j框架(三)核心接口使用(4)Tool和MCP_langchain4j 一个类中写两个工具,工具具有抵用先后顺序-CSDN博客

这篇介绍的匹配规则。

你在 Cursor 输入自然语言 ↓ Cursor 将上下文 + MCP tools 描述发给 LLM ↓ LLM 决定是否要调用某个 MCP tool ↓ Cursor 解析 LLM 的 tool call 意图 ↓ Cursor 作为 MCP Host 调用 MCP Server ↓ MCP Server 执行 tool(你的代码) ↓ 结果通过 MCP 协议返回 ↓ Cursor 把结果交给 LLM ↓ LLM 生成最终回复

五、Cursor自带的tools

默认安装的 Cursor,大概包含50~70 个内置 tools(持续迭代中,具体版本会略有差异),默认安装的 Cursor 内置 tools 并不会出现在你自己配置的mcpServers中。

  • Cursor 自带 tools

    • 这些是Cursor 内部实现的工具,属于Host 自己的能力

    • 它们不依赖你配置的 MCP Server

    • 例如:查函数定义、搜索文档、单位换算等

  • 你配置的mcpServers

    • 只是告诉 Cursor如何启动外部 MCP Server 进程

    • 这些 MCP Server 里才有你自定义的 MCP tool(比如get_user_by_id

    • Cursor 启动后会通过 stdio 调用 MCP 协议与这些进程通信

Cursor (Host)

├─ 内置工具 (50~70 个)
│ └─ 直接执行,无需 MCP

└─ MCP Servers (你配置的)
└─ get_user_by_id / 自定义 tool

内置 tools 和 MCP Servers 是两条平行能力线
只有 LLM 看到全部工具,Cursor 内部会调不同实现。所以如果提示词不够精确,会出现cursor调用自己的tool而没有调用到你的tools的”翻车“情况。

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

相关文章:

  • 拥有AI员工,才发现误会了领导
  • 阿里千问落地谷歌UCP+A2UI,中国率先进入AI办事时代
  • 浙大陆展团队突破铁催化难题,实现高效氢联硅化反应 | 乐研试剂
  • P3349 [ZJOI2016] 小星星 - Link
  • 企业如何破解业法财融合痛点?AI风控探针的 4 个落地步骤
  • Nature发表、Science点赞!清华揭秘AI让科学家走捷径却让科学走窄路
  • 【RAG召回排序】2025最全排序模型梳理
  • AI技术唾手可得的时代,挖掘新需求是产品突围的关键——某知名聚合DNS管理系统的需求洞察
  • 编程已终结!AI时代的原生智能软件架构长啥样?Claude给了个指南
  • 安卓神器 --- 浏览器 之 yandex 狐猴浏览器 chrome firefox
  • P11714 [清华集训 2014] 主旋律 Sol
  • 夏天还不算开始——我,不会退役
  • GD5F1GM7UEYIGR:兆易创新1Gbit SPI NAND闪存,高效低功耗
  • 4B超越8B比肩30B!清华、面壁智能端侧智能体天花板开源
  • 企业软件供应链安全治理立项,方案书/立项书该怎么写?
  • [Non] 字符串问题
  • 谷歌Veo 3.1更新:更一致性、更具创造力和控制力
  • 评正高写书10万字什么价格?
  • Day15对象的方法与遍历对象
  • SCI分区是怎么划分的?
  • 深圳ACFlow智能营销系统:2026年中小企业AI驱动营销新范式
  • ACP:2.从一个 .NET 实战开始,看 Agent 带来的真实差异
  • 工业级文本转SQL新思路:成本暴降、超3000列超大数据库依然稳健
  • C++跨平台开发挑战的技术
  • 万卡的部署架构
  • IDM插件开发创意赛
  • Claude Code 在 Windows 下的 nul 文件问题解决方案
  • 建模智能体,AI 时代的数据治理新范式
  • DCDN和CDN科普:动态内容加速的秘密武器
  • 苹果手机照片怎么导入电脑?苹果手机传输照片就用这5招