Skip to content

35. MCP 和 Function Calling 的关系是什么? ​

难度 P1 高频 · 岗位 应用 · 频率 ★★★ · 预计阅读 5 min

本题阅读地图 ​

  1. 💡 简要回答
  2. 📝 详细解析
  3. 🎯 面试总结

👔面试官:MCP 和 Function Calling 的关系是什么?

🙋‍♂️我:MCP 是协议,Function Calling 是模型能力。

👔面试官:对,但还有更精确的描述:Function Calling 是"模型侧的结构化调用机制",MCP 是"应用侧的统一能力接入协议"。两者是上下层关系,不是替代。你能讲清楚如何配合吗?

🙋‍♂️我:Function Calling 决定"调什么",MCP 决定"怎么接"?

👔面试官:对,而且 Agent 可以在 MCP 暴露的能力之上,继续用 Function Calling 做调用决策。MCP Server 暴露 Tools,模型通过 Function Calling 决定调用哪个 MCP Tool。

💡 简要回答 ​

关系:上下层配合,不是替代。

层级角色解决什么
Function Calling模型侧机制模型如何表达"要调用哪个工具、传什么参数"
MCP应用侧协议外部工具、资源、提示如何统一暴露和接入

配合方式:

  • MCP Server 暴露 Tools
  • Agent 用 Function Calling 决定调用哪个 MCP Tool
  • 两者是"决策层"和"接入层"的分工

📝 详细解析 ​

分层理解 ​

┌─────────────────────────────────────┐
│  Agent / LLM                        │  ← 决策层
│  ↓ Function Calling                 │
├─────────────────────────────────────┤
│  MCP Client                         │  ← 协议层
│  ↓ MCP Protocol                     │
├─────────────────────────────────────┤
│  MCP Server (Tools/Resources)       │  ← 能力层
│  ↓ 具体实现                         │
├─────────────────────────────────────┤
│  外部系统 (API/Database/File)       │  ← 资源层
└─────────────────────────────────────┘

工作流程 ​

  1. MCP Server 注册 Tools(含 schema、描述)
  2. Host 发现 MCP Server,加载 Tools
  3. 用户提问 → 模型分析 → 决定调用某个 Tool
  4. 模型输出 tool_calls(Function Calling)
  5. Host 通过 MCP Client 调用 MCP Server
  6. 结果回传给模型 → 继续推理

关键认知 ​

  • 不是替代:MCP 不取代 Function Calling
  • 是增强:MCP 让 Function Calling 有统一的能力池可调用
  • 分层清晰:模型只管决策,MCP 管接入,Server 管实现

🎯 面试总结 ​

Function Calling 是模型决策机制,MCP 是应用接入协议。两者配合,分层清晰。


章节首页 · ← Q34 · Q36 →

最后更新2026-05-01
难度P1
频率medium
阅读5 min
主题tool-use / protocol
觉得有帮助?把这个链接转给正在求职的朋友 · 用 Ctrl + K 全站搜索其它题