Function Calling 和 mcp
场景推荐构建多工具协同的系统✅ 使用 MCP(基于 Function Calling)构建对话式 API 接入✅ 结合 Function Calling + MCP使用 OpenAI/Claude/RAG/插件/LLM 多模型接入系统✅ MCP 提供统一入口只做语言生成,无插件需求Function Calling 非必需,MCP 不需要。
| 方式 | 成熟度 | 是否结构化 | 优势 | 缺点 | 例子 |
|---|---|---|---|---|---|
| ① 纯自然语言接口(NL Prompting) | ⭐ | ❌ | 实现最简单,零学习成本 | 易出错,不可自动执行,需要“人工解析” | “请帮我打开 Excel” |
| ② 模板式(Command / DSL 调用) | ⭐⭐ | ⚠️ 部分 | 格式固定、可解析 | 仍需解析逻辑,模型可能输出错误格式 | CMD: search("weather beijing") |
| ③ Function Calling / JSON Schema / Tools | ⭐⭐⭐⭐⭐ | ✔️ 完全结构化 | 规范、安全,适合自动执行 | 需要 schema、开发工作 | OpenAI FC / Claude Tools / Gemini API |
| ④ 插件协议(MCP / WebRTC / websocket agent) | ⭐⭐⭐⭐ | ✔️ | 标准生态、可跨平台、可共享 | 需要运行环境和权限管理 | MCP、LangChain Runnable agent 体系 |
| ⑤ 代理型自主规划框架(ReAct / Toolformer / AutoGPT agent loop) | ⭐⭐⭐⭐⭐ | ✔️流程结构化 | 模型能自主规划步骤并自主调用外部工具 | 可能误调用或循环,需要安全/资源控制 | ReAct、AutoGPT、OpenAI Agents |
引子:要让 大模型具备 MCP(Model Context Protocol)能力,你只需要让模型能够理解和使用 MCP 规范提供的 工具调用机制,并让外部系统通过 MCP 管理可调用的资源(API、数据库、文件系统、硬件等)。流程大致分为 三层:模型、协议、工具/资源。
✅ 1. 模型层:支持工具调用(Tool Use / Function Calling)
MCP 不是改变模型架构,而是让模型遵循统一协议与外部工具交互。
因此模型需要具备:
| 能力 | 说明 |
|---|---|
| 结构化输出能力 | 如 JSON、schema-based function calling |
| 能理解 MCP 的工具描述 | 模型需要理解 schema、参数说明等 |
| 基于上下文自主决定是否调用工具 | 让模型能像 agent 一样调用 |
如果模型已经支持 function calling(如 OpenAI、GPT、Claude、Llama agent 模式),几乎可以无缝支持 MCP。
✅ 2. 协议层:MCP Runtime(接入层)
这部分由开发者实现,不属于大模型本身。
MCP runtime 负责:
- 注册工具(tools)
- 提供资源列表
- 接收模型发送的工具调用请求
- 执行实际操作(API、db、文件、shell、机器人、IoT、SDK…)
- 将执行结果返回给模型继续推理
📌 MCP 提供标准接口:
list_tools
call_tool
list_resources
这层类似 function calling 的标准化扩展协议。
✅ 3. 工具/资源层:绑定外部能力
你可以将任何能力包装成 MCP 工具:
- REST API
- 本地数据库查询
- Python/JS 函数
- 文件读写
- 执行 Shell 命令
- 控制机器人 / IoT
- 访问摄像头、麦克风
示例工具定义(类似 OpenAPI + JSON schema):
{
"name": "search_google",
"description": "Search information on Google",
"input_schema": {
"type": "object",
"properties": {
"query": { "type": "string" }
},
"required": ["query"]
}
}
模型会识别工具定义,并在需要时输出:
{
"tool": "search_google",
"arguments": { "query": "What is MCP?" }
}
然后 runtime 调用真实 API,并把结果塞回模型继续推理。
📌 总结版(非常精炼)
| 概念 | 定位 | 是否与模型耦合 | 作用范围 |
|---|---|---|---|
| Function Calling | 模型输出结构化工具调用格式 | 轻耦合 | 单一应用/API |
| Function Tooling | 工具注册体系 + schema 推理 | 中耦合 | 面向应用工程 |
| MCP(Model Context Protocol) | 统一协议标准 | 最轻耦合 | 跨应用、多工具生态、可共享 |
🎯 关键结论
大模型不需要内置 MCP,只要能理解工具 schema 并支持结构化调用,就能通过 MCP runtime 获得能力。
MCP 是模型能力扩展层,不是模型优化技术,也不是 function calling 的竞争品,而是标准化升级版。
更多推荐

所有评论(0)