🚀 省流助手 (速通结论)
- Function Calling:是 JS 裸传对象。你给 AI 描述个函数,它给你吐个 JSON 参数。痛点是每个模型格式不一,换个模型就得重写联调逻辑。
- MCP (Model Context Protocol) :是 TypeScript + 标准协议。它定义了一套通用的“插槽”标准。
- 核心价值:一次开发,到处挂载。你写一个 MCP Server(工具包),Cursor 能用,Claude Desktop 能用,你自己的 App 也能用,不用再为每个模型手动适配 JSON 格式。
一、 Function Calling:本质就是“AI 版的 JSONP”
别被名字唬住了。在前端眼里,它就是一种异步回调机制:
- 你发个请求给 AI,顺便带上一份函数说明书(Schema)。
- AI 根据你的需求,“填”好参数,吐回一个 JSON。
- 你在前端拿到 JSON,去执行本地的 JS 函数。
务实评价: 这玩意儿能跑,但很难维护。
就像早期的 JSONP,你得手动约定回调函数名。一旦你从 OpenAI 换到 Claude,或者模型版本升级,那个 tools 的描述格式可能就变了。作为前端,你最讨厌的就是 “为了对齐后端字段改一下午业务逻辑” 。
二、 MCP:它是平行宇宙里的“标准 Service 层”
如果说 Function Calling 是在代码里硬编码接口描述,那 MCP 就是把这些描述抽离出来,做成了标准协议。
它的工程逻辑非常前端:
- 解耦:以前你的工具函数是写死在某个 AI 请求里的。现在 MCP 让你写一个独立的 MCP Server(你可以理解为一个专门跑工具函数的微服务)。
- 自发现(类似 TS 定义) :支持 MCP 的客户端(比如 Cursor)连上你的 Server,会自动发一个
list_tools请求。Server 直接把“说明书”交出去。 - 类型安全:协议规定了参数怎么传、报错怎么回。你不需要再为 GPT 拼一套 JSON,再为 Claude 拼另一套。
三、 为什么前端开发者要关注 MCP?
作为务实的前端,我们不看大饼,看提效:
- Cursor 深度集成:
你写个 MCP Server 连接本地数据库。在 Cursor 里,AI 就能直接根据你的表结构写 SQL、改 Bug,不再需要你手动复制表字段给它。 - 避免重复造轮子:
你写好的“自用工具库”(比如:查 Jira、发钉钉、跑脚本),只要符合 MCP 协议,就能无缝接入任何主流 AI 编辑器或对话客户端。 - 调试成本降低:
MCP 有标准的状态码和数据流。联调时,你不再是猜 AI 为什么吐不出 JSON,而是有标准的 Protocol Log 可以看。
四、 总结:它不是新架构,是新规范
Function Calling 是“发力点” (AI 具备了传参能力);
MCP 是“标准插座” (让这个能力在不同模型、不同 App 之间通用)。
对于前端来说,这就像是从 “手写每个 Ajax 请求的配置” 进化到了 “基于一套 TS 接口定义自动生成 API 调用” 。虽然底层还是那些东西,但工程爽感完全不同。
想看怎么用 Node.js 快速撸一个 MCP Server 吗? 只要你会写 Express 或 Fastify,半小时就能跑通。
下一步: 建议你去 GitHub 搜一下 @modelcontextprotocol/sdk,你会发现它提供的 TypeScript 类型定义,简直就是为前端量身定做的。