别听 AI 厂商吹 MCP,它就是给 Function Calling 套了个“类型约束”

0 阅读3分钟

🚀 省流助手 (速通结论)

  • Function Calling:是 JS 裸传对象。你给 AI 描述个函数,它给你吐个 JSON 参数。痛点是每个模型格式不一,换个模型就得重写联调逻辑。
  • MCP (Model Context Protocol) :是 TypeScript + 标准协议。它定义了一套通用的“插槽”标准。
  • 核心价值一次开发,到处挂载。你写一个 MCP Server(工具包),Cursor 能用,Claude Desktop 能用,你自己的 App 也能用,不用再为每个模型手动适配 JSON 格式。

一、 Function Calling:本质就是“AI 版的 JSONP”

别被名字唬住了。在前端眼里,它就是一种异步回调机制

  1. 你发个请求给 AI,顺便带上一份函数说明书(Schema)。
  2. AI 根据你的需求,“填”好参数,吐回一个 JSON。
  3. 你在前端拿到 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?

作为务实的前端,我们不看大饼,看提效

  1. Cursor 深度集成
    你写个 MCP Server 连接本地数据库。在 Cursor 里,AI 就能直接根据你的表结构写 SQL、改 Bug,不再需要你手动复制表字段给它。
  2. 避免重复造轮子
    你写好的“自用工具库”(比如:查 Jira、发钉钉、跑脚本),只要符合 MCP 协议,就能无缝接入任何主流 AI 编辑器或对话客户端。
  3. 调试成本降低
    MCP 有标准的状态码和数据流。联调时,你不再是猜 AI 为什么吐不出 JSON,而是有标准的 Protocol Log 可以看。

四、 总结:它不是新架构,是新规范

Function Calling 是“发力点” (AI 具备了传参能力);
MCP 是“标准插座” (让这个能力在不同模型、不同 App 之间通用)。

对于前端来说,这就像是从 “手写每个 Ajax 请求的配置” 进化到了 “基于一套 TS 接口定义自动生成 API 调用” 。虽然底层还是那些东西,但工程爽感完全不同。


想看怎么用 Node.js 快速撸一个 MCP Server 吗?  只要你会写 Express 或 Fastify,半小时就能跑通。

下一步:  建议你去 GitHub 搜一下  @modelcontextprotocol/sdk,你会发现它提供的 TypeScript 类型定义,简直就是为前端量身定做的。