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、本站资源仅限个人学习研究使用,严禁用于任何违法违纪用途。因使用者违规使用产生的一切后果,由使用者自行承担,本站不承担任何责任。