MCP( Model Context Protocol,模型上下文协议)是由Anthropic推出的开放协议,并非独立的大模型,而是连接大模型与外部工具/数据源的标准化接口,旨在解决AI工具开发中接口不统一、跨模型共享困难等问题。
一、工作原理
MCP 协议采用了一种独特的架构设计,它将 LLM 与资源之间的通信划分为三个主要部分:客户端、服务器和资源。
MCP 遵循客户端-服务器架构(client-server),其中包含以下几个核心概念:
- MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、IDE 或 AI 工具)。
- MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持 1:1 的连接。
- MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
- 本地资源(Local Resources):本地计算机中可供 MCP server 安全访问的资源(例如文件、数据库)。
- 远程资源(Remote Resources):MCP server 可以连接到的远程资源(例如通过 API)
由上述可知,MCP是将一些程序封装,用户输入自然语言让大模型去执行这些程序。
当用户提出一个问题时:
- 客户端(Claude Desktop / Cursor)将你的问题发送给LLM。
- LLM分析可用的工具,并决定使用哪一个(或多个)。
- 客户端通过 MCP Server 执行所选的工具。
- 工具的执行结果被送回给 LLM。
- LLM结合执行结果构造最终的 prompt 并生成自然语言的回应。
- 回应最终展示给用户!
二、MCP 、Agent、RAG 之间的联系
MCP 是模型上下文协议,为AI模型与外部工具提供了标准化的桥梁。简单来说就是MCP是一套规则,为外部调用的不同Tools提供接口,方便了与LLM的接入。Agent 通过决策选择所需的工具得到结果,然后反馈给LLM进行综合分析,重新组织结果反馈给用户。RAG 重要的知识库检索技术,只需提供对应的数据,反馈给LLM即可。
输入(用户)----->Agent ---(决策)需要的Tools--->MCP ---(调用Tools)---->结果 ------>LLM ---->输出给用户。
MCP 为 Agent 提供基础设施
MCP 将外部工具封装为标准化接口,供 Agent 按需要调用。
比如,Agent 通过 MCP Server 访问 Postgres 数据库执行 SQL 查询。
Agent驱动MCP价值落地
MCP 本身无法主动运作,需依赖 Agent 发起请求。
比如,当 Agent 识别需要调用天气 API 的时候,通过 MCP Client 向对应 Server 发送结构化请求。
三、function call
Function Calling 指程序或模型主动调用预定义函数的能力。对于大语言模型(LLM)而言,它是模型与外部工具/API交互的核心机制,使模型能超越纯文本生成,执行实际操作(如查天气、计算、数据库查询等)。
sequenceDiagramparticipant Userparticipant LLMparticipant SystemUser->>LLM: "提醒我明天上午10点开会"LLM->>System: 生成函数调用请求(JSON):{"function": "calendar.create_event","parameters": {"title": "会议","time": "xx.xxx.xxxxT10:00:00"}}System->>Calendar API: 执行实际函数Calendar API-->>System: 创建成功System-->>LLM: 返回结果LLM-->>User: "已创建明天10点的会议提醒"
主流实现方案
平台 | 实现方式 |
---|---|
OpenAI | 通过tools 参数声明可用函数,模型返回tool_calls 响应 |
Anthropic Claude | 使用tool_use 块和结构化XML标签 |
LangChain | 通过Tool 类封装函数,bind_functions() 实现绑定 |
Google Gemini | 用FunctionDeclaration 定义工具,在content.parts 中返回调用请求 |
-
MCP 作为模型调度层,可统一管理函数调用所需的模型资源
-
Agent 使用Function Calling作为基础能力单元
四、案例实践(vscode+cline+MCP-github)
1、安装vscode, 并在vscode中安装插件cline
2、安装nodejs
网址:Node.js — 在任何地方运行 JavaScript
3、配置cline
API -Provider 选择 Open Router
Model选择 deepseek/deepseek-chat:free
OpenRouter APl Key 获取点击 Get OpenRouter APl Key 跳转后点击Authorize,会自动填写。
4、配置 MCP -GitHub
点击install,会调用大模型自动进行步骤提示。
此处会让你点击运行代码。
此处需要点击所提供的网址,配置GitHub 的token.或者点击https://github.com/settings/tokens
进行。具体操作请自行探索。
此处需要将生成的token复制,发送给cline.
完成后会生成一个cline_mcp_settings.json文件,如:
如果是Mac电脑,配置结束,继续运行即可。
windows电脑需要修改配置文件。如下所示:
然后在窗口输入命令: 我的名字是xxx(github用化名),查询我的远程仓库有哪些?
最后给出汇总:
其他的MCP可在MCP 仓库,参照使用。
参考
1、https://zhuanlan.zhihu.com/p/27327515233
MCP合集:Smithery - Model Context Protocol Registry
MCP 仓库:https://github.com/modelcontextprotocol/servers
安装操作:【MCP是啥?技术原理是什么?一个视频搞懂MCP的一切。Windows系统配置MCP,Cursor Cline使用MCP】https://www.bilibili.com/video/BV1AnQNYxEsy?vd_source=dd4b91f2d81783a0712b0e908952f9b0