← 返回技术博客

MCP(Model Context Protocol)是什么?新手也能看懂的完整指南

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 配置里的 filesystemgithub 真正读盘、调 API、跑查询
Client Host 内置,界面上通常看不见 按 MCP 协议把 Host 和 Server 连起来

大多数人装 MCP,只为一件事:让 AI 访问聊天窗口以外的系统——项目文件、工单、数据库——而不是反复复制粘贴。下面先讲为什么这件事值得用协议来做,再拆架构细节。


2. 为什么值得单独搞一套协议?

大模型默认只会处理你发进对话框的内容。真实工作里你往往还需要它:

  1. 读你项目里的代码,而不是你手动复制粘贴
  2. 查公司内网文档或工单系统
  3. 执行 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 架构里只有三个核心角色。新手最容易混淆 HostClient,我们分开讲。

3.1 Host(宿主应用)

你日常使用的软件:CursorClaude DesktopVS 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 Issue
  • run_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 注释」为例,简化流程如下:

  1. 用户在 Host 输入任务(Cursor 聊天框)
  2. Host 把对话发给大模型,并附上已连接 MCP 服务器的 Tools 列表(名称 + 描述)
  3. 模型决定调用 search_files 工具,生成参数 { "pattern": "TODO", "path": "/project" }
  4. MCP Client 把请求发给 filesystem MCP Server
  5. Server 执行 grep / 遍历,返回结果 JSON
  6. 模型根据结果组织自然语言回复,或继续调用其他工具

传输方式(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 → SettingsMCPAdd 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 再重新打开。


社区已有大量现成 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. 先少后多:从 1–2 个只读 Server 开始,确认行为符合预期
  2. 生产与实验分离:个人笔记本用宽松配置,团队环境用独立机器 + 白名单目录
  3. 需要 macOS 工具链(Xcode、模拟器)时,Server 必须跑在 Mac 上——可考虑 云端 Mac mini 做 24/7 托管

10. 安全清单:别让 AI 变成「超级管理员」

MCP 把执行力交给了模型。提示注入(恶意网页/文档诱导模型调用危险工具)是真实风险。

必做四项

  1. 最小权限:filesystem 只开放项目子目录,禁止 ~/etc
  2. 凭证隔离:API Token 放在 Server 环境变量,不要写进聊天或配置文件并提交 Git
  3. 独立账户:生产 MCP 用专用系统用户运行,无 sudo
  4. 审计日志:记录每次 Tool 调用与参数,便于事后追溯

风险对照

配置 风险等级 说明
只读 + 单项目目录 适合日常开发
可写 filesystem + 无路径限制 极高 模型可能被诱导删文件
带 Shell 执行权限的 Server 极高 仅应在隔离 VM / 专用机器使用
远程 SSE + 无鉴权 极高 必须加 Token / mTLS

原则:给 AI 的权限,不应超过你会给一名初级实习生的权限。


11. 五个常见误区

  1. 「MCP 是大模型的一种」 — 错。MCP 是协议,与 GPT、Claude 等模型无关。
  2. 「装了 MCP 模型就变强了」 — 错。MCP 只扩展手和眼(工具与数据),不提升推理能力。
  3. 「MCP 只能本地用」 — 错。stdio 适合本地,SSE/HTTP 可部署在云端供团队共享。
  4. 「MCP 会替代 LangChain」 — 不准确。LangChain 是编排框架,MCP 是工具接入协议,常可配合使用。
  5. 「所有 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

建议路径:

  1. 今天:在 Cursor 加一个 filesystemGitHub Server
  2. 本周:读一个官方 Server 源码,理解 Tool 如何定义
  3. 有需要时:再读 MCP 服务器实战部署,把 Server 部署到云端 24/7 运行

先把 filesystemGitHub 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 编排是下一步的事。

限时优惠 →