news 2026/6/25 18:12:09

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
工具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的”翻车“情况。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 3:52:35

Claude Code 在 Windows 下的 nul 文件问题解决方案

前言 如果你在 Windows 上使用 Claude Code,可能会遇到一个奇怪的现象:项目目录里莫名其妙出现一个名为 nul 的文件,而且在资源管理器里怎么都删不掉,就像"幽灵文件"一样。 今天分享一篇来自 LINUX DO 论坛用户 tzcbz 的技术文章,深入分析了这个问题的根本原因,并提…

作者头像 李华
网站建设 2026/6/23 3:21:51

瑞芯微(EASY EAI)RV1126B 车辆检测

1. 车辆检测简介 车辆检测是一种基于深度学习的对人进行检测定位的目标检测&#xff0c;能广泛的用于园区管理、交通分析等多种场景&#xff0c;是违停识别、堵车识别、车流统计等多种算法的基石算法。 本车辆检测算法在数据集表现如下所示&#xff1a; 基于EASY-EAI-Nano-TB…

作者头像 李华
网站建设 2026/6/19 14:54:59

2025年华东师范大学计算机考研复试机试真题(解题思路 + AC 代码)

2025年华东师范大学计算机考研复试机试真题 2025年华东师范大学计算机考研复试上机真题 历年华东师范大学计算机考研复试上机真题 历年华东师范大学计算机考研复试机试真题 更多学校完整题目开源地址&#xff1a;https://gitcode.com/u014339447/pgcode 百度一下pgcode 即…

作者头像 李华
网站建设 2026/6/22 13:08:48

2025年南京理工大学计算机考研复试机试真题(解题思路 + AC 代码)

2025年南京理工大学计算机考研复试机试真题 2025年南京理工大学计算机考研复试上机真题 历年南京理工大学计算机考研复试上机真题 历年南京理工大学计算机考研复试机试真题 更多学校完整题目开源地址&#xff1a;https://gitcode.com/u014339447/pgcode 百度一下pgcode 即…

作者头像 李华
网站建设 2026/6/18 20:15:07

高比例清洁能源接入下计及需求响应的配电网重构Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#…

作者头像 李华
网站建设 2026/6/15 17:16:29

Python 与 AI 药物开发:从试验室到代码实践的深度探索

Python 与 AI 药物开发:从试验室到代码实践的深度探索 大家好,我是 Echo_Wish。 今天我们来聊一个既有科学深度,又有工程实践感的话题: 👉 Python 在 AI 药物开发中的应用及未来趋势探索。 如果你是数据科学家、算法工程师、或者对 Python 在前沿生命科学中的落地感兴趣…

作者头像 李华