写给前端工程师的通俗解释,不绕弯子
先说结论
MCP 就是一个软件通信协议,专门解决"AI 产品怎么调用外部工具"这个问题。跟 HTTP、WebSocket 一样,是软件和软件之间沟通的规则,只是它诞生在 AI 时代。
为什么需要 MCP?
AI 产品(比如 Cursor、Claude)光靠自己只能"说话",没办法真正去操作 GitHub、查数据库、搜索网页。要有这些能力,就得对接外部工具。
没有 MCP 之前:
每家 AI 产品要用 GitHub,就得自己写一套对接代码。要用 Slack,再写一套。换一个 AI 产品,全部重写。重复劳动,浪费。
有了 MCP 之后:
工具按 MCP 标准做一次,所有支持 MCP 的 AI 产品直接插上就能用。写一次,到处用。
MCP 的全称
Model Context Protocol,直译"模型上下文协议"。
由 Anthropic(Claude 的母公司)在 2024 年底发布并开源。目前 Cursor、Windsurf、Claude Desktop 等主流 AI 产品都已支持,正在成为行业事实标准。
三个角色
MCP 里一共三个角色,搞清楚这三个,就搞清楚了 MCP。
arduino
你(用户)
↓ 发消息
AI 产品(Cursor / Claude Desktop)
↓ MCP 协议
MCP Server(独立进程,翻译层)
↓ 调用
真实工具(GitHub / 文件系统 / 数据库)
1. AI 产品 = MCP Client
你直接对话的那个东西。比如 Cursor、Claude Desktop、Windsurf。
它负责理解你的意图,判断需不需要调用工具,然后通过 MCP 协议发出请求。这部分代码已经内置在 AI 产品里了,不需要你写。
2. MCP Server = 翻译层
这是最关键的角色,也是前端工程师最有机会参与的部分。
MCP Server 是一个独立运行的进程,通常就跑在你本地电脑上。它的工作是:
- 接收 AI 产品发来的 MCP 格式请求
- 翻译成真实工具能理解的调用(比如 GitHub REST API)
- 把结果返回给 AI 产品
注意:MCP Server 不在 AI 产品里 ,也不在 GitHub 里,它是独立的中间层。
3. 真实工具 = 被调用的对象
GitHub、文件系统、数据库、搜索引擎......它们本身不知道 MCP 是什么,由 MCP Server 替它们做适配。
一个具体例子
你在 Cursor 里说:"帮我看一下这个 PR 有没有问题"
css
1. Cursor(MCP Client)
→ 判断需要查 GitHub
→ 通过 MCP 协议,发请求给 GitHub MCP Server
2. GitHub MCP Server(本地进程)
→ 收到请求
→ 翻译成 GitHub REST API 调用
→ 拿到 PR 内容
→ 按 MCP 格式返回给 Cursor
3. Cursor
→ 拿到 PR 内容
→ 交给 AI 模型分析
→ 回答你
GitHub 本身没变,AI 模型没变,MCP Server 是中间加的那层胶水。
MCP 不是做 AI 工作流的唯一方式
没有 MCP 也能做 AI 工作流。LangChain、LangGraph、n8n、Dify 都有自己的工具调用机制,MCP 出现之前就存在了。
MCP 解决的是另一个问题:工具的跨产品复用。
| 问题 | 解法 |
|---|---|
| 我要做 AI 工作流 | LangGraph、n8n 等都可以 |
| 我写的工具想在多个 AI 产品里用 | MCP |
| 我想直接用别人写好的工具能力 | 找现成的 MCP Server |
对前端工程师意味着什么
MCP Server 本质就是一个后端服务,对外暴露几个标准接口。
你完全可以把写 MCP Server 理解成写普通的 Node.js 服务------只是调用方从"浏览器"换成了"AI 产品"。对有前端基础的人来说,上手门槛很低。
而且现在 MCP 生态已经很丰富,GitHub、Slack、Notion、数据库、浏览器控制......常用工具基本都有人写好了 MCP Server,直接拿来接入就行。
自己写 MCP Server,意味着你封装的能力,可以被任何支持 MCP 的 AI 产品调用------这是前端工程师切入 AI 工具生态的最直接方式。
一句话总结
MCP 是 AI 工具世界的 USB-C------工具按标准做一次,所有支持 MCP 的 AI 产品都能直接插上用。