Cursor Settings 里每一行 MCP 配置,都是在启动一个独立进程,让 Agent 调用读文件、搜 Issue 等能力。本文从这条配置链路讲起:三角色怎么分工、和 Function Calling 差在哪、filesystem 怎么五分钟配通。
1. 先从 Cursor 里那个 MCP 开关说起
打开 Cursor → Settings → MCP,每一行配置都是在告诉 Host:去启动哪个本地进程,把哪些能力开放给 Agent。你加了 filesystem,Agent 才能直接 read_file;你加了 GitHub Server,它才能去搜 Issue——不是模型突然变聪明了,而是背后多了一条工具调用链路。
这条链路走 Model Context Protocol(MCP)。全名可以后记,先记住分工:
| 角色 | 你接触到的形态 | 干什么 |
|---|---|---|
| Host | Cursor、Claude Desktop | 聊天、调度、决定要不要调工具 |
| Server | 配置里的 filesystem、github 等 |
真正读盘、调 API、跑查询 |
| Client | Host 内置,界面上通常看不见 | 按 MCP 协议把 Host 和 Server 连起来 |
大多数人装 MCP,只为一件事:让 AI 访问聊天窗口以外的系统——项目文件、工单、数据库——而不是反复复制粘贴。下面先讲为什么这件事值得用协议来做,再拆架构细节。
2. 为什么值得单独搞一套协议?
大模型默认只会处理你发进对话框的内容。真实工作里你往往还需要它:
- 读你项目里的代码,而不是你手动复制粘贴
- 查公司内网文档或工单系统
- 执行
git commit、跑测试、调 API
过去常见做法是 Function Calling(函数调用):开发者在代码里硬编码一组函数,模型只能调用这些。问题是——
| 痛点 | 没有 MCP 时 | 有 MCP 时 |
|---|---|---|
| 工具发现 | 每换一个 Host 要重写集成 | 运行时自动发现服务器能力列表 |
| 供应商锁定 | 绑定 OpenAI / Anthropic 专有格式 | 开放协议,多 Host 复用同一服务器 |
| 权限隔离 | 容易把 API Key 写进提示词 | 服务器侧托管凭证,模型只见工具接口 |
| 组合扩展 | 加一个新工具要改 Host 代码 | 配置文件里加一行 MCP 服务器地址即可 |
2025 年底 Anthropic 将 MCP 捐赠给 Agentic AI Foundation,OpenAI、Google、Microsoft 等成员共同参与。到 2026 年,MCP 已成为 AI 工具接入的事实标准之一——类似当年 REST 之于 Web API。
3. 三个角色:先认清「谁是谁」
MCP 架构里只有三个核心角色。新手最容易混淆 Host 和 Client,我们分开讲。
3.1 Host(宿主应用)
你日常使用的软件:Cursor、Claude Desktop、VS Code + Copilot、自研 Agent 平台等。
Host 负责:展示聊天界面、调用大模型、决定是否把用户任务交给 MCP。
3.2 Client(MCP 客户端)
运行在 Host 内部的连接器,由 Host 厂商实现。一个 Host 可以同时连接多个 MCP 服务器。
你可以把 Client 理解成 Host 里的「MCP 驱动程序」——用户通常看不见它。
3.3 Server(MCP 服务器)
真正干活的一方:暴露工具(Tools)、资源(Resources)、提示模板(Prompts)。可以是本地进程,也可以是远程服务。
┌─────────────┐ ┌─────────────┐ ┌──────────────────┐
│ Host │ │ MCP Client │ │ MCP Server │
│ (Cursor) │────▶│ (内置) │────▶│ (filesystem) │
│ 用户界面 │ │ 协议翻译 │ │ 读文件/列目录 │
└─────────────┘ └─────────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ MCP Server │
│ (github) │
│ 提 PR / 查 Issue │
└──────────────────┘
角色对照表
- Host
- 你打开的 App;负责 UX 和模型推理
- Client
- Host 内置;按 MCP 协议与 Server 通信
- Server
- 你配置的工具服务;执行具体操作
4. MCP 服务器能暴露什么?三大能力
4.1 Tools(工具)—— 让 AI「动手」
最常用。每个 Tool 有名称、描述、输入参数 schema。模型根据描述自主选择是否调用。
典型例子:
read_file(path)— 读文件search_issues(query)— 搜 GitHub Issuerun_sql(query)— 查数据库
Tools 是有副作用的操作(写文件、发请求),需要权限控制。
4.2 Resources(资源)—— 让 AI「只读访问」
类似「可订阅的数据源」:文件内容、API 文档、数据库 schema。AI 可以 list / read 资源,但不一定通过 Tool 形式修改。
适合:把日志目录、知识库文档暴露给模型上下文,而不每次全量粘贴。
4.3 Prompts(提示模板)—— 可复用的工作流
服务器预置的提示词模板,带参数。例如「代码审查模板」「SQL 生成模板」。
Host 可以一键插入,减少用户重复写提示词。
能力对比
| 能力 | 是否常有副作用 | 典型用途 | 新手优先级 |
|---|---|---|---|
| Tools | 是 | 执行命令、写文件、调 API | ★★★★★ |
| Resources | 否(只读) | 暴露文档、配置、schema | ★★★☆☆ |
| Prompts | 否 | 标准化审查/翻译流程 | ★★☆☆☆ |
5. MCP vs 插件 vs Function Calling vs REST
新手常问:「我直接用 REST API 不行吗?」可以,但场景不同。
| 维度 | REST API | Function Calling | 浏览器插件 / ChatGPT 插件 | MCP |
|---|---|---|---|---|
| 协议开放性 | 开放 | 厂商专有格式 | 平台专有 | 开放标准 |
| 工具发现 | 需事先知道端点 | 编译期写死函数列表 | 商店安装 | 运行时动态发现 |
| 跨 Host 复用 | 需各写适配层 | 每个模型 SDK 不同 | 基本不能跨平台 | 同一 Server 多 Host 共用 |
| 本地工具 | 需自建 HTTP 服务 | 代码内嵌 | 受限 | stdio / SSE 原生支持 |
| 适合谁 | 传统后端集成 | 单一 App 内嵌 AI | 消费级聊天产品 | 开发者工具链、Agent 生态 |
记忆口诀:REST 是「我知道地址就去调」;Function Calling 是「我提前告诉模型只有这几招」;MCP 是「连上服务器后,现场问你能干嘛」。
~~把 MCP 当成 REST 的替代品~~ 并不准确——很多 MCP Server 内部正是封装了 REST API,MCP 是 AI 时代的接入层,不是 HTTP 的替代品。
6. 一次完整调用是怎么发生的?
以「帮我在项目里找所有 TODO 注释」为例,简化流程如下:
- 用户在 Host 输入任务(Cursor 聊天框)
- Host 把对话发给大模型,并附上已连接 MCP 服务器的 Tools 列表(名称 + 描述)
- 模型决定调用
search_files工具,生成参数{ "pattern": "TODO", "path": "/project" } - MCP Client 把请求发给 filesystem MCP Server
- Server 执行 grep / 遍历,返回结果 JSON
- 模型根据结果组织自然语言回复,或继续调用其他工具
传输方式(Transport)
| 方式 | 说明 | 常见场景 |
|---|---|---|
| stdio | 本地进程,标准输入输出通信 | Claude Desktop、Cursor 本地 Server |
| SSE / HTTP | 远程 HTTP 长连接 | 团队共享的 MCP 网关、云端部署 |
本地开发用 stdio 最多:配置里写 command + args,Host 启动子进程即可。
7. 你在哪里能用到 MCP?
2026 年主流 Host 对 MCP 的支持情况:
| Host | MCP 支持 | 配置方式 |
|---|---|---|
| Cursor | ✅ 内置 | Settings → MCP → 添加服务器 |
| Claude Desktop | ✅ 原生 | claude_desktop_config.json |
| VS Code(GitHub Copilot 等) | ✅ 逐步完善 | 扩展 / 设置面板 |
| Windsurf / Zed | ✅ 或部分 | 各产品文档 |
| 自研 Agent | ✅ SDK 接入 | @modelcontextprotocol/sdk |
你不需要换编辑器——在现有工具里加配置就能扩展能力。
8. 五分钟上手:在 Cursor 里启用 MCP
下面以官方 filesystem 服务器为例(只读访问指定目录)。操作路径因版本略有差异,核心步骤一致。
8.1 前置条件
- 已安装 Node.js 18+
- 明确要让 AI 访问的目录(建议专用工作区,不要直接开放整个用户目录)
8.2 添加配置
打开 Cursor → Settings → MCP → Add new global MCP server,填入类似配置:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/you/projects/my-app"
]
}
}
}
保存后重启 Cursor,或刷新 MCP 连接。状态栏 / MCP 面板应显示 filesystem 已连接。
8.3 验证
在 Agent 模式输入:
列出
/Users/you/projects/my-app根目录下的文件,并告诉我package.json里有哪些 scripts。
若模型能直接返回目录列表而非让你手动粘贴,说明 MCP 已生效。
常用快捷键
- 打开命令面板:⌘ + Shift + P(macOS)
- 打开 Cursor 设置:⌘ + ,
Claude Desktop 用户:配置文件路径
macOS 配置文件位于:
~/Library/Application Support/Claude/claude_desktop_config.json
结构与 Cursor 类似,同样使用 mcpServers 字段。修改后需完全退出 Claude Desktop 再重新打开。
9. 热门 MCP 服务器一览
社区已有大量现成 Server,按场景分类:
| 类别 | 代表 Server | 能做什么 |
|---|---|---|
| 文件系统 | @modelcontextprotocol/server-filesystem |
读写在允许目录内的文件 |
| 代码托管 | GitHub MCP、GitLab MCP | 查 Issue、读 PR、管理仓库 |
| 知识库 | Notion、Confluence MCP | 读/写页面与数据库 |
| 数据库 | PostgreSQL、SQLite MCP | 执行只读或受限 SQL |
| 搜索 | Brave Search、Fetch MCP | 联网搜索、抓取网页 |
| 自动化 | Puppeteer / Playwright MCP | 浏览器自动化 |
| 苹果生态 | Xcode / simctl 封装(社区) | iOS 构建、模拟器控制 |
完整列表可在 MCP 官方仓库 与 Cursor MCP 目录 查阅。安装前请阅读每个 Server 的权限说明。
选型建议
- 先少后多:从 1–2 个只读 Server 开始,确认行为符合预期
- 生产与实验分离:个人笔记本用宽松配置,团队环境用独立机器 + 白名单目录
- 需要 macOS 工具链(Xcode、模拟器)时,Server 必须跑在 Mac 上——可考虑 云端 Mac mini 做 24/7 托管
10. 安全清单:别让 AI 变成「超级管理员」
MCP 把执行力交给了模型。提示注入(恶意网页/文档诱导模型调用危险工具)是真实风险。
必做四项
- 最小权限:filesystem 只开放项目子目录,禁止
~、/etc - 凭证隔离:API Token 放在 Server 环境变量,不要写进聊天或配置文件并提交 Git
- 独立账户:生产 MCP 用专用系统用户运行,无
sudo - 审计日志:记录每次 Tool 调用与参数,便于事后追溯
风险对照
| 配置 | 风险等级 | 说明 |
|---|---|---|
| 只读 + 单项目目录 | 低 | 适合日常开发 |
| 可写 filesystem + 无路径限制 | 极高 | 模型可能被诱导删文件 |
| 带 Shell 执行权限的 Server | 极高 | 仅应在隔离 VM / 专用机器使用 |
| 远程 SSE + 无鉴权 | 极高 | 必须加 Token / mTLS |
原则:给 AI 的权限,不应超过你会给一名初级实习生的权限。
11. 五个常见误区
- 「MCP 是大模型的一种」 — 错。MCP 是协议,与 GPT、Claude 等模型无关。
- 「装了 MCP 模型就变强了」 — 错。MCP 只扩展手和眼(工具与数据),不提升推理能力。
- 「MCP 只能本地用」 — 错。stdio 适合本地,SSE/HTTP 可部署在云端供团队共享。
- 「MCP 会替代 LangChain」 — 不准确。LangChain 是编排框架,MCP 是工具接入协议,常可配合使用。
- 「所有 Server 都官方维护」 — 错。社区 Server 质量参差,接入前看源码与权限。
12. 我该用现成的,还是自己写一个?
| 你的情况 | 建议 |
|---|---|
| 只想让 Cursor 能读项目文件 | 用官方 filesystem,5 分钟搞定 |
| 要接公司内部 API | 先用 Fetch / 自建薄封装 Server |
| 要接私有数据库 + 复杂业务逻辑 | 用 Python/TS SDK 自写 Server |
| 团队多人共享、需审计 | 云端 Mac / Linux 部署 SSE 网关 + 统一鉴权 |
自写 Server 的最小 Python 示例(概念演示):
# pip install mcp
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("hello")
@mcp.tool()
def greet(name: str) -> str:
"""向指定名字打招呼"""
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run()
运行后,在 Host 配置里把 command 指向 python /path/to/server.py 即可。
13. 词汇表
| 术语 | 英文 | 一句话解释 |
|---|---|---|
| MCP | Model Context Protocol | AI 应用连接工具与数据的开放协议 |
| Host | — | 你用的 AI 软件(Cursor、Claude Desktop) |
| Server | MCP Server | 暴露 Tools/Resources 的工具服务 |
| Tool | — | 可被模型调用的函数,常有副作用 |
| Resource | — | 只读数据源,如文件、文档 URI |
| stdio | standard I/O | 本地进程通信方式,最常见 |
| SSE | Server-Sent Events | 远程 HTTP 流式通信方式 |
14. 结论:现在值得学吗?
值得。 即便你暂时不自写 Server,理解 MCP 也能帮你:
- 更安全地配置 Cursor / Claude Desktop 的扩展能力
- 与团队对齐「AI 如何接公司内部系统」的架构语言
- 判断什么时候该用 MCP、什么时候该用传统 API
建议路径:
- 今天:在 Cursor 加一个 filesystem 或 GitHub Server
- 本周:读一个官方 Server 源码,理解 Tool 如何定义
- 有需要时:再读 MCP 服务器实战部署,把 Server 部署到云端 24/7 运行
先把 filesystem 或 GitHub Server 配上、亲眼看到 Agent 调通一次工具,比堆定义有用得多。
需要 24/7 跑私有 MCP 服务器?
云端 Mac mini M4 独享裸金属,SSH 常在线,适合 filesystem / Git / Xcode 类工具链
按天计费,东京、新加坡、香港节点可选——CI 与 MCP 同一台机器,TCO 更优
延伸阅读
常见问题
MCP 和 REST API 有什么本质区别?
REST API 像一本固定菜单:客户端必须事先知道每个端点。MCP 在运行时向服务器发现可用工具,再决定调用哪一个——Agent 无需改代码即可接入新能力。
我不会写代码,能用 MCP 吗?
可以。在 Cursor、Claude Desktop 等 Host 里添加现成 MCP 服务器(filesystem、GitHub、Notion),用自然语言描述任务即可。只有自建私有工具时才需要编程。
MCP 安全吗?会不会让 AI 随便删我电脑上的文件?
风险取决于启用的服务器与权限范围。filesystem 应限制在特定目录;生产环境建议独立账户、最小权限、审计日志。详见正文「安全清单」。
MCP 和 ChatGPT 插件是一回事吗?
不是。ChatGPT 插件是 OpenAI 专有接入;MCP 是捐赠给 Agentic AI Foundation 的开放协议,Cursor、Claude Desktop、VS Code 等均可消费,且可自托管。
学 MCP 之前需要先懂 AI Agent 吗?
不需要。会聊天、会在 Cursor 里改设置,就足够跟着本文把 filesystem Server 配通。Agent 编排是下一步的事。