AI 工程协议2026 热点
MCP 是什么:为什么今年所有 AI 工具都在接入它
一年前还没人提这个词,现在 Cursor、Claude、Windsurf、VS Code 全在支持。我用了一个月,说说它到底解决了什么问题,以及哪些宣传是吹的。
先说结论
MCP(Model Context Protocol)不是模型,也不是框架,是一套让 AI 能安全调用外部工具的接口标准。
打个比方:以前每接一个工具,AI 客户端都要单独写一套对接代码。现在有了 MCP,工具方按标准实现一次,所有支持 MCP 的客户端都能用。
USB 之前,每个设备一种接口。USB 之后,插上就能用。MCP 想做的就是这个事,只不过对象是「AI 和工具之间」。
它解决的真实问题
问题一:N 个客户端 × M 个工具
没有标准的时候:
Cursor 接 GitHub → 写一套
Cursor 接 数据库 → 写一套
Claude 接 GitHub → 再写一套
Claude 接 数据库 → 再写一套
Windsurf 接 GitHub → 再写一套
...
N 个客户端乘 M 个工具,接口数量是乘法。
有了 MCP:工具方实现一次服务端,客户端实现一次客户端,数量变成加法。
问题二:权限失控
以前的做法是把 API Key 直接塞给 AI,它能干什么是靠提示词约束的。
MCP 把权限收在服务端:
| 能力 | 以前 | 现在 |
|---|---|---|
| 读文件 | 给它整个目录权限 | 只能读指定路径 |
| 查数据库 | 给它 root 账号 | 只读账号 + 只允许 SELECT |
| 发请求 | 给它你的 token | 服务端代理,token 不出本地 |
三种能力,别搞混
MCP 服务端能提供三类东西,很多人以为只有一种:
| 类型 | 干什么 | 例子 |
|---|---|---|
Tools |
执行动作 | 跑 SQL、发请求、写文件 |
Resources |
提供数据 | 读日志、读配置、查文档 |
Prompts |
预置指令模板 | 「代码审查」「写测试」 |
大多数教程只讲 Tools,实际用起来 Resources 更常用——让 AI 先「看到」你的项目结构,再决定调什么工具。
自己写一个,比想象中简单
最小的 MCP 服务端,一个文件就够。以 Node 为例:
npm init -y
npm i @modelcontextprotocol/sdk
核心代码:
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "my-server", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
// 声明有哪些工具
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "count_posts",
description: "统计指定分类下的文章数量",
inputSchema: {
type: "object",
properties: { category: { type: "string" } },
required: ["category"]
}
}]
}));
// 工具被调用时执行
server.setRequestHandler("tools/call", async (req) => {
if (req.params.name === "count_posts") {
const n = await queryCount(req.params.arguments.category);
return { content: [{ type: "text", text: String(n) }] };
}
});
await server.connect(new StdioServerTransport());
然后在客户端配置里加一行:
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["/path/to/server.js"]
}
}
}
就这两步,AI 就能调用你的工具了。
哪些宣传是吹的
吹点一:「让 AI 自动化一切」
实际用下来,MCP 能稳定干的是确定性任务:查数据、跑脚本、读文件。
涉及判断和权衡的,还是得人来。我让它「优化这段代码」,它会给出一个看起来合理但破坏兼容性的改法。
吹点二:「不用写代码了」
写 MCP 服务端就是在写代码。只是把「调 API」的活从客户端挪到了服务端。
吹点三:「零配置」
配置少是真的,但调试不简单。stdio 模式下日志是混在协议流里的,出了问题不好排查。
第一次写的时候,我在工具里用了
console.log 调试,结果整个连接直接断了——因为 stdio 协议的输出必须是 JSON-RPC 格式,多打一行就破坏协议。正确做法:日志写文件,或用
console.error。现在值得学吗
我的判断:值得,但要分清主次。
| 你的角色 | 建议 |
|---|---|
| 普通开发者 | 会用就够了,知道怎么配置现成的 MCP 服务 |
| 做内部工具 | 值得写,把公司内部系统包一层,AI 直接能查 |
| 做产品 | 谨慎,协议还在演进,一年内改过两次 |
如果你只是想让 AI 帮忙写代码,不用管 MCP,VS Code 和 Cursor 已经内置了。
如果你想让它读你的数据库、查你的日志、操作你的内部系统——那 MCP 是目前最省事的路。
小结MCP = AI 和工具之间的 USB 协议。解决的是「N×M 的对接爆炸」和「权限失控」两个问题。自己写一个最小服务端不超过 50 行,但调试比想象中麻烦。现在入场不晚,但别指望它替你做判断。
1、本站所有资源均收集于互联网,分享目的仅限学习与参考。如有侵权,请联系 1685698671@qq.com 及时删除!
2、本站资源不保证完整性和安全性,下载后请自行检测。使用过程中出现的任何问题均与本站无关,敬请自行处理。
3、本站资源仅限个人学习研究使用,严禁用于任何违法违纪用途。因使用者违规使用产生的一切后果,由使用者自行承担,本站不承担任何责任。


评论(0)