牡丹江市网站建设_网站建设公司_VS Code_seo优化
2026/1/16 21:53:03 网站建设 项目流程

一、在哪里添加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的”翻车“情况。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询