从22个工具到一次可靠调用:Function Calling、内置工具与 MCP 完整解析
当Agent需要查询数据、生成文件或发送邮件时,大模型并不能直接执行操作,而是依赖应用、Function Calling与工具服务的协同。本文通过统一案例,对比内置工具与MCP两种实现方式,深入解析MCP在工具复用、接口适配与维护成本上的核心优势,并指出其适用边界。

当用户要求 Agent 查询数据、生成文件或发送邮件时,大模型并不会亲自访问数据库或执行 API。真正完成任务,需要应用、大模型、Function Calling 和工具服务共同协作。
它们的职责可以概括为:
- 应用:管理工具目录、筛选候选工具、校验权限并组织执行。
- 大模型:判断是否需要工具、选择哪个工具、填写什么参数,以及后续还要调用什么。
- Function Calling:把模型的决定转换成结构化调用请求,例如“调用查询订单,参数为最近30天”。它是一种模型能力和输出规范,不是独立执行者。
- 工具或 API:真正查询订单、分析数据、生成文件或发送邮件。
因此,核心关系是:应用决定模型可以从哪些工具中选;大模型决定本次是否调用以及调用哪个;Function Calling 负责规范表达;应用或 MCP Server 负责真实执行。
一、统一案例:5类服务、22个工具
假设一个运营 Agent 需要使用以下能力:

用户提出任务:查询最近30天的售后订单,生成分析报告,保存为文件并发送给运营负责人。
完成这个任务,需要依次使用订单、数据分析、文件和邮件服务。下面用相同任务比较两种实现方式。
二、内置工具:应用自己维护完整工具体系
内置模式下,应用开发者需要先把22个工具接入应用。工具名单可能保存在代码、配置文件、数据库或自建注册中心,但核心工作仍由应用团队完成,包括:
- 为22个工具编写名称、用途和参数结构。
- 注册工具,形成应用内部工具目录。
- 建立工具名称到执行函数的路由。
- 为5类服务编写 API 适配代码。
- 处理鉴权、参数校验、超时、错误转换和返回格式。
- 工具发生变化后,同步修改说明、调用代码与测试。
用户提问后,应用不会必然把22个工具全部交给模型,而是先按照以下规则筛选:
- 用户是否有权使用;
- 工具是否与当前问题相关;
- 服务当前是否可用;
- 操作风险是否可接受;
- 是否符合企业和业务配置。
本例可能筛出6个候选工具:查询售后订单、统计指标、生成报告、保存文件、获取联系人和发送邮件。应用把用户问题和这6个工具的说明共同提交给模型。
例如模型先生成“查询售后订单”的调用请求。应用解析后,通过自建路由找到对应函数,完成权限和参数校验,再访问订单 API。结果返回模型后,模型继续调用统计、生成报告、保存文件和发送邮件,直到任务结束。
这个流程能够正常工作,但工具说明、注册、路由和服务适配都与应用紧密绑定。
三、MCP:用统一方式发现和调用工具
MCP 模式下,应用通常只集成一套 MCP Client 管理能力,再与5个 MCP Server 建立独立连接。一个 Client 可以管理多个 Server,不需要开发5套不同的 Client。
这5个 Server 可以由服务商、企业内部团队或第三方提供。连接前,开发者、管理员或用户仍需配置 Server 地址并完成授权。MCP 不会自动搜索互联网上所有 Server,它只能发现“已经连接的 Server 提供哪些工具”。
连接后:
- 订单 Server 声明自己的5个工具。
- 文件 Server 声明4个工具。
- 其他 Server 分别声明邮件、日历和分析工具。
- MCP Client 读取各 Server 的工具列表。
- 应用合并为22个工具的统一目录,并记录每个工具属于哪个 Server。
- 如果出现同名工具,应用可以使用命名空间区分,例如 order.query 和 file.search。
用户提出同一个任务时,应用仍然按照权限、相关性、可用状态和风险筛选出相同的6个候选工具。MCP 不代替候选筛选,也不代替模型决策。
模型第一次选择“查询售后订单”后,应用通过 MCP Client 将请求路由给订单 Server;订单结果返回后,模型再选择数据分析工具,Client 将请求转给数据分析 Server。文件和邮件调用也使用同一种方式完成。
四、MCP 的优势具体体现在哪里
从用户提出问题到Agent应用通过大模型以及工具的调用来完成复杂任务的实现这一过程,其中工具的调用通过内置工具或MCP方式完成,可以通过下面的流程图清晰比较出MCP方式的具体优势。

1.工具说明不再由每个应用重复维护
内置模式下,应用团队要维护22份工具说明;如果客服、运营和售后三个 Agent 都需要订单工具,可能出现三套重复定义。
MCP 模式下,订单 Server 集中维护5个订单工具,三个 Agent 都可以通过 Client 获取并复用。
2. 减少逐工具路由与接口适配
内置模式需要为22个工具维护注册、调用路由和参数处理,并为5类服务维护接口适配。
MCP 模式下,应用主要维护一套 Client、Server 连接、候选筛选和安全策略;具体工具定义与真实 API 适配集中在各 Server 中。
3. 工具修改时影响范围更小
假设订单查询参数从 order_id 改为 order_no。
内置模式中,每个接入该工具的应用都可能需要修改:
- 工具参数说明;
- 参数校验逻辑;
- API 适配代码;
- 自动化测试;
- 应用版本并重新发布。
MCP 模式下,订单 Server 可以集中修改工具说明和接口适配,Client 重新获取工具定义,各应用主要完成兼容性验证。如果存在不兼容变更,仍需进行版本控制;MCP只能缩小修改范围,不能自动消除升级风险。
4. 新服务接入更容易复用
如果增加第6个客户服务,内置模式需要在每个应用中增加工具说明、调用路由和接口适配。MCP 模式主要增加 Server 连接、授权及筛选策略,真实接口适配由客户 MCP Server 统一承担。
五、MCP 不是工具越多越好
MCP 增加了 Server 运维、连接管理、鉴权、超时和服务不可用等新问题。如果 Server 需要企业自己开发,工作量并没有消失,而是从多个应用中抽离,集中到可复用的 Server。
因此:
- 工具较少、来源单一且长期稳定时,直接内置通常更简单。
- 工具较多、来源分散、变化频繁或需要跨应用复用时,MCP更有价值。
小结
Function Calling 解决“模型如何表达工具调用”;MCP解决“应用如何标准化连接、发现和调用不同来源的工具”。MCP的真正优势不是让模型更聪明,而是减少重复接入,让工具能力能够集中维护并被多个 Agent 复用。
本文由 @Grace 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
- 目前还没评论,等你发挥!

起点课堂会员权益




