MCP协议底层原理大揭秘:与Function Call的关系及实验验证 - 今日头条.md7.1 KBit/ai/MCP协议底层原理大揭秘:与Function Call的关系及实验验证 - 今日头条.md
--- title: "MCP协议底层原理大揭秘:与Function Call的关系及实验验证 - 今日头条" source_url: "https://www.toutiao.com/article/7483758061397295651/?wid=1782274778845" source_site: "www.toutiao.com" clipped_at: "2026-06-24T04:19:47.915347+00:00" clipper: "aiwiki-url-ingest" extractor: "toutiao_rendered" --- # MCP协议底层原理大揭秘:与Function Call的关系及实验验证 - 今日头条 在人工智能领域,MCP作为AI大模型的标准化工具箱壳,备受关注。但很多人心中也有诸多疑问:AI大模型是如何知晓工具箱里的工具以及调用参数的?MCP与function call有着怎样的关系?是否只有支持function call的模型才能使用MCP ?今天,我们就从大模型与提示词的角度,深入探讨MCP协议的底层原理。 为了更直观地展示和验证,我们使用CloundFlare的AI gateway设计了一个小实验,抓取与AI交互的所有请求数据。 **实验步骤如下:** **1\. 注册并配置CloundFlare的AI gateway** 若没有账号,先注册。进入[科赋锐信息科技Cloudflare \| Cloudflare](https://www.cloudflare-cn.com/)后,在左侧菜单点击AI gateway,这是CloundFlare推出的大模型API的代理功能。配置好后,大模型API会先流经CloundFlare,最终到达API提供商。添加这个目的,主要是想在后续查看MCP请求大模型的日志记录,分析MCP如何帮助我们完成任务。  进入AI Gateway后,点击“create gateway”,随便起个名字。创建完成后,点击右上角的API平台,选择OpenRouter。在VS Code中下载并安装Cline插件,接着选择OpenAI compatible,在对应的设置框中复制CloundFlare的链接到base URL中 ,并到OpenRouter中申请API Key,粘贴到相应位置,填写模型ID(如免费的DeepSeek V3)。     **2\. 添加MCP server** 进入Vscode的Cline点击MCP小按钮,在市场搜索与时间有关的MCP server(以“time”为例)。要注意的是,MCP server本质是运行在电脑上的程序(此处为Python编写),所以需先安装好Python运行环境 ,之后AI会自动安装该MCP server。安装过程包括创建文件夹、用PIP命令安装Python包、创建配置文件并保存(可修改配置文件添加本地时区),最后点击approve完成配置。此时可看到server里有“获取当前时间”和“进行时间转换”两个工具。    # AI如何知晓MCP server及相关工具 新开一个对话,询问“现在的时间是什么” ,AI显示可能要调用“get current time time ”的MCP工具。我们可以在CloudFlare查看日志,重点关注系统提示词。其中提到“MCP server模型上下文协议允许系统与本地运行的MCP server之间进行通信 ,带来额外的工具及资源扩展能力,可使用use\_mcp\_tool来执行MCP协议或者access mcp resource来获取资源” ,且明确写出了可使用工具(如“get current time ”及其传参格式、“convert time ”及其传参格式) ,这就解释了AI是如何知道MCP server及可用工具的,也说明了MCP的通用性可兼容市面上几乎所有大模型,因为只要大模型能懂提示词就能使用MCP 。  # MCP的调用过程 1\. Cline把用户提问及MCP详细使用方法(附加在系统提示词里)传递给大模型。 2\. 大模型决定使用哪个MCP工具及传递参数的方式。 3\. Cline根据大模型决定的调用方式调用MCP server(MCP server本质是本地node JS或Python程序)。 4\. Cline拿到MCP server返回结果,加上之前上下文再次传递给大模型,大模型整理后呈现最终结果给用户。比如在上述获取时间的例子中,最终给出了当前时间,时区为上海的结果。  # MCP与function call的关系 为探究二者关系,我们以DeepSeek Re(不支持function code )为例。在GitHub可看到开发者希望DeepSeek Re支持相关功能的诉求。由于MCP相关知识附加在系统提示词里,模型只要能读懂提示词就能使用MCP ,与是否具备function call功能无关。我们在DeepSeek的API开放平台创建API Key相关信息并填写到Cline里,测试DeepSeek Re能否使用MCP ,结果显示模型推理过程调用了MCP工具并成功给出正确答案。 由此可见,MCP与function code功能相似且相互独立,没有依赖关系。MCP最大的优点是将之前各家大模型不同的code标准整合为统一的标准协议,市面上几乎所有大模型都能接入。 总之,通过这两个实验,我们对MCP协议的底层原理有了更深入了解。后续还将介绍系列好用的MCP工具,敬请期待!