OpenAI Function Calling 是 OpenAI API 的功能特性,函数在每次 API 调用时以内联方式定义,工具逻辑存在于应用代码之中。MCP 是独立的开放协议,基于 JSON-RPC 2.0 构建,有独立的规范文档和 SDK 支持。
Function Calling 采用静态定义方式,每次请求中明确列出可用工具,模型只能看到本次请求中提供的工具。MCP 支持运行时动态发现,客户端通过调用 tools/list 方法主动查询服务端可用的工具,工具列表可在会话期间动态更新。
Function Calling 是无状态的,每次函数调用相互独立,状态管理由应用程序负责。MCP 是有状态协议,服务端可以在多次调用之间维持连接、上下文和事务状态,适合需要保持连接或累积状态的操作。
Function Calling 绑定特定 LLM 提供商(各家的 Function Calling 格式和行为略有差异),切换模型提供商通常需要重写工具定义。MCP 是模型无关的独立协议,同一 MCP 服务端可以与 Claude、GPT、Gemini 等不同模型配合使用。
Function Calling 通过 HTTP 调用 LLM API,函数执行在应用进程内完成。MCP 支持独立的服务端进程,可通过 Stdio(本地)或 HTTP/SSE(远程)进行通信,服务端拥有独立部署生命周期,支持跨进程、跨网络通信。