☰
面试官:大模型连外部工具,为什么要用 MCP 协议而不是直接写 Function Calling?
2026/9/29 23:35:56 网站建设 项目流程

面试官:大模型连外部工具,为什么要用 MCP 协议而不是直接写 Function Calling?

最近面了好几个做 AI Agent 的同学,简历上清一色写着“基于大模型搭建 Agent,实现外部工具调用”。但我顺口问一句:“既然你做工具调用,那你们接入新工具是手写 Function Calling 还是用了 MCP 协议?为什么?”
结果一半人懵了,甚至有人反问:“MCP 是什么,能吃吗?”

今天咱们不搞玄乎的概念,直接从平时写代码的痛点出发,扒一扒为什么 Anthropic 要大力推 MCP(Model Context Protocol)协议,它到底在解决什么实际问题。

以前手写 Function Calling 痛在哪?

大模型刚火的时候,我们要让 AI 能查天气或者查数据库,标准做法就是 Function Calling。

整个流程大概是这样:你在代码里写个查天气的函数,然后写一堆 JSON Schema 告诉大模型这个函数叫什么名字、有几个参数、分别是什么类型。大模型推理完,返回一个包含函数名和参数的 JSON,你的代码解析这个 JSON,去调真实的天气 API,最后把结果塞回 Prompt 里再发给大模型。

如果是写个简单的 Demo,这套流程没啥毛病。但如果你在公司里真要落地一个生产级 Agent,问题马上就来了:

  1. 接口爆炸:假设你的 Agent 需要连公司的 Jira 查 bug、连 GitLab 看代码、连 Confluence 搜文档。你需要自己写对接 Jira、GitLab、Confluence 的三套代码,还要把这几十个 API 全转成 JSON Schema。
  2. 耦合太重:Jira 的接口改了,或者你想加个新参数,不仅要改业务逻辑,还要改给大模型看的 JSON Schema。AI 客户端和底层工具链死死绑在一起。
  3. 没法复用:你写好的这套 Jira 对接逻辑,隔壁组想用在他们的 Agent 里?不好意思,叫他们把你的代码拷过去再改改吧。

发现没有?Function Calling 只规定了大模型和你的代码怎么交流,但根本没规定你的代码和外部工具怎么交流。

MCP 是怎么破局的?

MCP 并不是用来替代 Function Calling 的,它解决的是工程架构问题。它在 AI 客户端(比如你用的 Claude Desktop 或者自研 Agent)和外部工具之间,硬生生插了一层标准化的 Client-Server 架构。

有了 MCP,上面的流程变成了这样:

外部工具(比如 Jira、GitHub、本地文件系统)都被封装成独立的MCP Server。你的 Agent 是MCP Client。

  1. 自动发现:Agent 启动时连上 GitHub MCP Server,第一件事就是问:“你能干啥?”Server 会自动把手里的工具(比如search_repositories、get_issue)和格式发给 Client。你再也不用在 Agent 代码里手动维护长篇大论的 JSON Schema 了。
  2. 安全与隔离:GitHub 的 Token 配置、分页逻辑、报错处理全在 MCP Server 里。Agent 只负责说:“我要用search_repositories工具,参数是这个。”Server 去调完 GitHub,直接把结果吐回来。
  3. 即插即用:今天你想让 Agent 连公司的内部知识库,只需要有人用 Python 或 TypeScript 写个简单的知识库 MCP Server 跑起来。任何支持 MCP 协议的 Agent(无论是你自己写的,还是各种开源端)连上这个 Server 就能直接具备查知识库的能力。

举个具体的例子。如果你现在要在本地装一个能看你电脑文件的 AI。
以前的做法是,这个 AI 软件必须自己拿到读取你硬盘的系统权限,然后自己实现文件读取代码。
而用 MCP,你只需要在本地跑一个官方开源的filesystemMCP Server。AI 客户端通过标准协议请求这个 Server 读文件。Server 代码是开源的,你能清楚看到它到底能读哪些目录,安全性完全捏在你自己手里。

总结:什么时候用谁?

很多同学搞混这两者,其实它们根本不在一个层面上。Function Calling 是底层机制,MCP 是上层基建。

如果你只是写个几十行的 Python 脚本,用大模型处理一下爬虫抓下来的网页,直接写 Function Calling 最快。
但如果你在做的是一个正儿八经的 Agent 平台,或者你的 AI 助手需要同时连接本地 IDE、公司内网 API、各种 SaaS 服务,那就尽早引入 MCP 协议。别把成百上千个工具链的维护成本,全砸在写 AI 客户端的工程师头上。

下次面试官再问起,别光说你会写 JSON Schema 了。讲清楚工具解耦和协议标准化的价值,这才是工程经验。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询