MCP 和 Function Calling 有什么区别?

很多人第一次看到 MCP,会把它理解成 Function Calling 的升级版。这个说法不准确。MCP 和 Function Calling 不是谁淘汰谁,而是解决的问题不在同一层。
更通俗一点:Function Calling 负责把“模型这一次要调哪个函数、参数是什么”说清楚;MCP 负责把外部工具做成标准服务,让不同 AI 应用都能发现、连接和复用。
实际落地时,两者经常一起用:MCP 把工具接进来,Function Calling 让模型在对话里选择并触发工具。

- Function Calling:解决“一次调用怎么表达”
================================
Function Calling 的重点是单次调用格式。你把工具说明发给模型,模型判断需要工具时,返回一个结构化调用请求;你的业务代码拿到参数后,才真正执行函数。
所以,Function Calling 不是让模型直接访问数据库、写文件、发消息。模型只负责生成调用意图,真正执行动作的是应用侧代码。

比如定义一个查询天气的工具,模型看到用户问“上海今天热不热”,就可以选择调用 get_weather。工具定义一般会用 JSON Schema 描述参数。
Function Calling 工具定义:
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather by city name.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
],
"additionalProperties": false
},
"strict": true
}
}
模型返回的一次工具调用:
{
"type": "function_call",
"name": "get_weather",
"arguments": "{\"city\":\"Shanghai\"}"
}
这就是 Function Calling 的边界:它让模型用结构化方式表达动作,但工具从哪里来、怎么注册、怎么跨项目复用、怎么统一治理,不是它主要解决的问题。
- 只靠 Function Calling,工具多了会重复建设
================================
如果只有一两个工具,Function Calling 很轻巧。但当多个应用都要接同一批工具时,问题会变明显:每个应用都要写一份 schema,每个应用都要写执行逻辑,每个应用都要处理权限、异常和日志。
比如客服 Agent、运营 Agent、研发 Agent、数据 Agent 都要接 GitHub、Slack、数据库和文件系统。如果只靠 Function Calling,很容易变成“每个项目复制一遍工具定义”。

- MCP:解决“工具怎么接入、发现和复用”
=======================
MCP 的思路是:不要让每个 AI 应用都重复对接外部系统,而是把外部系统封装成 MCP Server。AI 应用作为 Host,通过 Client 连接 Server,自动发现可用工具和资源。
MCP 官方把它定义为连接 AI 应用和外部系统的开放标准。它不是某个具体工具,而是一套通信和能力暴露规范。

比如在客户端配置一个天气 MCP Server。配置好之后,支持 MCP 的客户端就可以启动它、连接它,并读取它暴露出来的工具清单。
MCP Server 配置示例:
{
"mcpServers": {
"weather": {
"command": "node",
"args": [
"./weather-mcp-server.js"
]
}
}
}
向 MCP Server 请求工具列表:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {
}
}
调用 MCP Server 暴露的工具:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": {
"city": "Shanghai"
}
}
}
注意这个区别:MCP 不是替模型执行思考,也不是替代 Function Calling。它是把工具接入标准化,让工具可以被发现、被连接、被复用。
- 两者怎么配合:MCP 接工具,Function Calling 触发工具
=======================================
一个实际系统可以这样跑:MCP Client 先从 MCP Server 拿到工具清单;AI 应用把这些工具整理成模型能理解的工具描述;模型通过 Function Calling 选择工具;应用侧再把调用转成 MCP 的 tools/call 请求。

下面是一个简化版伪代码。它表达的是:模型产生 Function Calling 结果之后,应用侧再去调用 MCP Client。
应用侧把 Function Calling 转成 MCP 工具调用:
import json
if tool_call.name == "get_weather":
args = json.loads(tool_call.arguments)
result = mcp_client.call_tool(
name="get_weather",
arguments={
"city": args["city"]
}
)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": json.dumps(result, ensure_ascii=False)
})
- 什么时候只用 Function Calling,什么时候上 MCP?
=====================================
选择时不要看名字新不新,而要看工具规模和复用需求。工具少、应用单一,用 Function Calling 更直接;工具多、多个应用都要用,就适合 MCP。

- 实际落地可以这样做
============
比较稳妥的做法是先轻后重:少量工具先用 Function Calling 跑通业务闭环;当某些工具被多个项目重复使用时,再抽成 MCP Server。

**•**第一阶段:业务里只有少量工具,先用 Function Calling 定义 schema,快速上线。
**•**第二阶段:工具被多个 Agent 复用,把它们封装成 MCP Server。
**•**第三阶段:统一做工具权限、参数校验、审计日志、限流和异常处理。
**•**第四阶段:把常用工具沉淀成内部工具市场,让不同 AI 应用按需连接。
- 生产环境必须管住工具风险
===============
无论是 Function Calling 还是 MCP,只要工具能读数据库、写文件、发消息、创建工单,就不能只关注“能不能调通”。工具调用本质上是系统执行能力,必须有边界。

至少要做五件事:工具白名单、参数校验、用户确认、权限隔离、审计日志。尤其是有副作用的动作,比如删除文件、发邮件、创建工单、转账支付,一定不能让模型绕过确认流程。
- 一句话讲清楚
=========
MCP 和 Function Calling 不是替代关系。Function Calling 解决的是一次工具调用的结构化表达;MCP 解决的是工具接入、发现、复用和治理。小项目、少量工具,用 Function Calling 就够;多项目、多工具、多客户端复用,就应该考虑 MCP。
真正落地时,MCP 往往在工具管理层,Function Calling 在模型调用层:MCP 负责把工具接进来,Function Calling 负责让模型触发这一次调用。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐

所有评论(0)