MCP 服务器怎么接入 Cursor、Claude Code 和 VS Code:配置与安全检查
MCP 服务器接入 IDE 时,先选本地 stdio 或远程 HTTP,再分别核对 Cursor 的 mcp.json、Claude Code 的 scope 与审批、VS Code 的配置入口。本文给出最小权限、日志和回滚步骤。
MCP 服务器接入 Cursor、Claude Code 和 VS Code 的稳妥顺序是先连一个只读能力,再确认作用域、审批和日志,最后才开放写入动作。MCP 官方架构把 AI 应用称为 host,把每个连接称为 client,把提供工具、资源和提示的程序称为 server。它支持本地 stdio 和远程 Streamable HTTP,传输方式会直接影响凭证、网络边界和故障排查。本文核验日期为 2026 年 11 月 10 日,客户端菜单和协议版本仍应以各自官方页面为准。
可先读 MCP 官方架构,再对照 Cursor MCP 文档 和 Claude Code MCP 文档。
先用一个只读任务验证协议
第一次连接不要从“能不能替我改生产数据库”开始。选一个可以观察结果、不会改变外部状态的任务,例如读取项目文档、列出一个测试目录或查询 issue。MCP 官方架构说明,server 可以暴露 tools、resources 和 prompts。只读资源能帮助你确认发现流程、返回格式和身份范围,失败时也容易关闭。
把验收写成三个可见结果。客户端能发现 server,聊天里能看到工具说明,调用一次后返回的内容与原系统一致。缺一项就先停下来查配置,不要靠反复点击把错误掩盖掉。服务器名称、运行命令和工作目录也要记录,后面排查时才能判断是启动问题、认证问题还是工具本身拒绝。
本地 stdio 和远程 HTTP 应该怎样选
本地 stdio 由客户端在电脑上启动进程,适合需要直接读取项目文件、调用本地脚本或把网络边界缩在工作机里的场景。远程 HTTP 适合团队共享的服务,认证通常通过 OAuth、Bearer token 或其他 HTTP 头完成。MCP 官方文档把两者放在传输层,协议消息仍然使用同一套 JSON-RPC 语义。
如果 server 只服务一个人的本地仓库,先用 stdio,并让进程只看到必要的目录。如果它要访问团队系统,先问清楚谁能调用、凭证由谁保管、服务是否记录请求。远程连接的便利不等于可以把个人 token 写进项目配置。密钥放环境变量或官方认证流程,配置文件只保留变量名和非敏感参数。
Cursor 的配置和停用点
Cursor 官方 MCP 页面支持在 Customize 中安装,也支持用 mcp.json 配置自定义 server。它列出了 stdio、SSE 和 Streamable HTTP 三种传输,并提供 MCP Logs 查看初始化、认证和崩溃信息。把第一个 server 放在项目能够明确承受的范围内,先关闭写工具,只保留读取能力。
完成一次调用后打开 MCP 日志,检查启动命令、环境变量是否为空、server 是否被重复加载。Cursor 可以在 Customize 中临时切换 server,停用后它不会继续出现在对话里。这个开关适合故障隔离,不应代替长期的权限收缩。想把配置交给同事前,删除本机路径和 token,只提交能在新机器复现的非敏感字段。
Claude Code 的 scope、审批和信任
Claude Code 官方 MCP 文档提供 claude mcp add,也支持在项目 .mcp.json、用户配置和命令行参数中管理 server。文档把 local、project、user 等 installation scope 分开,并说明项目 server 可以要求 workspace trust。对同一个 server,先选最窄的 scope,再决定是否允许整个项目使用。
远程 HTTP 配置要明确 type 和 url。文档特别提醒,只有 url 没有 type 会被当成 stdio 配置并跳过。首次连接查看 /mcp 或状态输出,确认实际加载了哪个条目。需要写文件、发请求或创建草稿时,保留审批提示,让人能在动作前看见目标和参数。不要为了让流程“顺利”使用跳过权限的模式。
VS Code 怎样做项目级配置
VS Code 官方文档把 MCP server 放在 Agent customization 的配置入口,支持通过命令面板添加,也支持工作区配置文件。项目级配置适合跟代码一起评审,用户级配置适合个人工具,但两者都要在提交前检查是否含有路径、账号和密钥。团队仓库里只存示例值,真实凭证交给环境或登录流程。
添加后先看 MCP server 列表,再用一个无副作用的查询确认工具可见。若 server 不能启动,检查运行时版本、命令是否在 PATH、工作区是否受信任和配置 JSON 是否有效。VS Code 的 Agent 权限界面与 server 权限是两层边界,能看到工具不代表每次调用都应该自动执行。
共享配置前的安全检查
先读 server 的源码或官方文档,至少知道它会读取哪些目录、访问哪些域名、是否会把输入发送到第三方。Claude Code 官方页面明确提醒,抓取外部内容的 server 会带来 prompt injection 风险。MCP server 能执行动作,所以说明“它只是给模型提供上下文”并不足以完成审查。
把凭证分成三类处理。只读 token 只给只读 API,写入 token 只给需要写入的任务,生产凭证不与开发机共享。对数据库、云盘和 issue 系统分别设置最小范围。记录一次审批样例,检查用户能否看出目标资源、请求参数和返回内容。出现异常时先禁用 server,再轮换凭证,最后回看日志。
连接失败时的排查顺序
先确认配置文件被客户端读取,其次确认进程能单独启动,再确认认证,最后才检查工具调用。这样能把“根本没有加载”与“加载后被拒绝”区分开。Cursor 用 MCP Logs,Claude Code 用状态和失败提示,VS Code 用 Agent 输出与 server 列表。不要把所有错误都归结为协议不兼容。
如果远程 HTTP 连接反复超时,减少工具数量并检查网络代理和 OAuth 回调。若本地进程退出,先在终端运行同一命令,查看标准错误输出。修正后只恢复一个 server。验证完成后保留一份可回滚配置,删除临时 token 和调试日志中的敏感片段。
MCP 服务器一定要安装到全局吗
不一定。项目只需要某个仓库使用时,项目级 scope 通常更容易评审和回滚,个人常用工具才考虑用户级配置。
stdio 和 Streamable HTTP 哪个更安全
它们解决的边界不同。stdio 把进程放在本机,HTTP 便于远程共享并需要认证。安全性取决于目录、凭证、网络和审批设计,不能只看传输名称。
可以把 MCP token 写进 mcp.json 吗
不建议。配置文件保留变量名,把真实值放在环境变量或官方登录流程,并在提交前检查 diff。
为什么 Claude Code 的 url 配置会被跳过
官方文档说明 url 条目还需要 type。缺少 type 时会被按 stdio 处理并跳过,先补上与服务匹配的 http、sse 或 ws 类型。
什么时候该关闭 MCP 服务器
当日志出现异常调用、权限范围需要重做、凭证疑似泄露或你暂时不需要该工具时,先停用再排查。停用是可逆动作,适合做第一步隔离。
