c++开发大模型mcp服务(一)目的和概念
mcp : modelcontextprotocol 模型上下文协议
MCP是一种开放协议,用于标准化应用程序如何为大型语言模型(llm)提供上下文。可以把MCP想象成AI应用程序的USB-C端口。就像USB-C提供了一种将设备连接到各种外设和配件的标准化方式一样,MCP提供了一种将AI模型连接到不同数据源和工具的标准化方式。MCP使您能够在llm之上构建代理和复杂的工作流程,并将您的模型与世界连接起来。

前言
1.目的
目前的大模型调用mcp服务都是在python、go或者java之类的语言框架之下,现在为了开发目前支持原有系统功能给大模型调用的服务,所以开始研究C++开发的mcp服务。
2.概念
弄清大模型的概念,什么大模型适合mcp,mcp是什么,mcp的框架有哪些,哪些适合做c++开发mcp服务。
mcp管网文档:https://modelcontextprotocol.io/docs/getting-started/intro
一、大模型的概念
大模型就是现在大家常用的AI对话系统的软件学名。如GPT、Claude、通义千问、DeepSeek 等等。
大模型 = 大规模参数 + Transformer 架构 + 海量数据预训练 + 强大生成与理解能力
1.大模型的核心能力
| 能力 | 说明 | 示例 |
|---|---|---|
| 文本生成 | 自动生成连贯、有逻辑的文本 | 写文章、写邮件、写故事 |
| 语言理解 | 理解语义、情感、意图 | 情感分析、意图识别 |
| 多轮对话 | 维持上下文进行自然对话 | 智能客服、聊天机器人 |
| 代码生成 | 根据描述生成代码 | GitHub Copilot |
| 知识问答 | 基于内部知识回答问题 | “爱因斯坦哪年获得诺贝尔奖?” |
| 多模态能力 | 结合文本、图像、音频等(多模态大模型) | 图像描述、文生图(如 Qwen-VL、GPT-4V) |
2.大模型的关键技术特点
| 特点 | 说明 |
|---|---|
| 涌现能力(Emergent Ability) | 当模型规模超过某一阈值时,突然展现出小模型不具备的能力(如推理、思维链) |
| 上下文学习(In-context Learning) | 无需微调,只需在输入中提供几个示例,模型即可学会新任务 |
| 思维链(Chain-of-Thought, CoT) | 模型能像人类一样“一步步思考”,提升复杂问题解决能力 |
| 工具调用(Tool Use) | 能调用外部 API、计算器、数据库等,扩展能力边界(如 MCP 协议) |
3.模态分类(支持数据类型)
| 类型 | 说明 | 代表模型 |
|---|---|---|
| 纯文本大模型 | 仅处理文本输入输出 | Llama、Qwen、GPT-3 |
| 多模态大模型 | 可处理文本、图像、音频、视频等 | GPT-4V、Qwen-VL、Gemini、Claude 3 |
| 语音大模型 | 专注语音识别与生成 | Whisper、SenseVoice |
4.开源状态
| 类型 | 说明 | 代表 |
|---|---|---|
| 闭源模型 | 模型权重不公开,通过 API 调用 | GPT-4、Claude、Gemini |
| 开源模型 | 模型权重公开,可本地部署 | Llama 系列、Qwen、Mistral、DeepSeek |
二、MCP的概念
Model Context Protocol (MCP) 是一种通信协议或接口规范,用于标准化大模型与外部工具、环境之间的上下文交互。
MCP = 一种让大模型安全、灵活、标准化地访问外部世界的通信协议。
你可以把它理解为:
- 就像 HTTP 是浏览器与服务器之间的通信协议,
- MCP 就是大模型(LLM)与外部工具之间的“通用语言”。
1.MCP 的工作原理
MCP 采用 客户端-服务器架构(Client-Server),核心组件包括:
1) MCP Host(主机)
- 运行大模型的系统(如 Claude Desktop、ChatGPT、AI 编辑器 Cursor)
- 负责接收用户输入,调用模型,决定是否需要使用工具
2) MCP Server(服务器)
- 每个外部工具运行一个 MCP Server(如 GitHub MCP Server、Google Calendar MCP Server)
- 它知道如何与该工具通信,并暴露标准化的 API
3) MCP Client
- 运行在 Host 中,负责与多个 MCP Server 通信
- 根据模型请求,调用相应的 Server
2.MCP 工作流程:
用户提问
↓
大模型(MCP Host)判断需调用“日历”工具
↓
MCP Client 向 "Google Calendar MCP Server" 发送标准化请求
↓
MCP Server 调用真实日历 API,获取数据
↓
返回结构化结果给模型
↓
模型生成自然语言回答
模型不直接访问工具,而是通过 MCP Server 间接调用,提升安全性和可控性。
3. MCP 与传统插件/Function Calling 的区别
| 对比项 | 传统 Function Calling | MCP |
|---|---|---|
| 架构 | 紧耦合,模型直接调用函数 | 松耦合,通过 Server 中转 |
| 标准化 | 各平台私有格式(如 OpenAI Functions) | 开放、统一协议 |
| 安全性 | 模型拥有函数执行权限 | 权限由 Server 控制 |
| 可复用性 | 插件只能用于特定平台 | 一次开发,多平台使用 |
| 生态 | 封闭 | 开放、可扩展 |
三、支持 MCP 协议的大模型
以下是一些已知支持或正在集成 MCP 协议的主流大模型和平台:
| 模型/平台 | 支持状态 | 来源/说明 |
|---|---|---|
| Anthropic Claude 系列 | ✅ 原生支持 | MCP 的提出者,所有 Claude 模型(如 Claude 3.5 Sonnet)均原生支持 MCP,是最早也是最完整的实现。 |
| Google Gemini | ✅ 已宣布支持 | 谷歌 DeepMind CEO 德米斯・哈萨比斯于2025年4月宣布,Gemini 模型和 SDK 将支持 MCP 协议。 |
| OpenAI 模型(GPT 系列) | ✅ 已宣布支持 | OpenAI 宣布在其 Agents SDK 和 ChatGPT 桌面应用 中支持 MCP,用于连接外部工具。 |
| 微软 Copilot | ✅ 已集成 | 微软宣布在 Copilot Studio 中集成 MCP,以简化 AI 应用访问工具的方式。 |
| 火山引擎 MCP Servers | ✅ 支持调用 | 火山引擎推出“MCP Servers”生态广场,其大模型应用可通过 MCP 调用外部工具。 |
| Cursor、Windsurf 等 AI 编辑器 | ✅ 支持 | 这些基于大模型的 IDE 工具已集成 MCP,用于连接代码环境、数据库等。 |
直接支持 MCP 的大模型:目前主要是 Anthropic Claude、Google Gemini、OpenAI GPT 等闭源商业模型。
四、开源的大模型是否支持 MCP?
这是一个关键问题:目前,绝大多数“开源”的大模型本身并不直接“内置”MCP 支持,但它们可以通过以下方式间接支持 MCP:
1. MCP 是运行时/框架层的能力,而非模型本身的功能
- MCP 协议的实现依赖于 MCP Host / Runtime / SDK,而不是模型权重文件本身。
- 开源大模型(如
Qwen、Llama3、Mixtral)可以被部署在支持 MCP 的运行时环境中(如 MCP SDK、Agent 框架),从而获得调用外部工具的能力。
2. 开源生态中的 MCP 支持情况
虽然模型本身不“自带”MCP,但已有大量开源项目为开源模型提供 MCP 支持:
| 项目 | 类型 | 说明 |
|---|---|---|
| Go-MCP SDK | ✅ 开源 | ThinkInAI 团队于2025年4月开源的 Go 语言 MCP SDK,支持将任何大模型接入 MCP 生态。 |
| Composio MCP | ✅ 开源 | 提供超过100个 MCP 服务器,允许开源模型通过 MCP 调用 GitHub、Slack、Notion 等工具。 |
| OpenTools MCP API | ✅ 开源 | 提供生成式 API,支持开源模型通过 MCP 实现网络搜索、位置数据获取等。 |
| Smithery Registry | ✅ 开源 | 包含2000+个 MCP 服务器,开源模型可通过它接入丰富工具。 |
| GitHub MCP Servers | ✅ 开源 | GitHub 官方提供了 MCP 服务器,支持开源模型访问代码仓库。 |
3. 哪些开源大模型可以“使用”MCP?
✅ 几乎所有主流开源大模型都可以通过 MCP 框架支持工具调用,只要它们被集成到支持 MCP 的 Agent 系统中,例如:
Qwen(通义千问) → 可通过 MCP SDK 调用数据库、APILlama3→ 可通过 Composio MCP 实现自动化任务Mixtral→ 可通过 OpenTools 实现联网搜索DeepSeek→ 可通过 MCP 服务器访问企业内部系统
开源大模型:本身不原生支持 MCP,但可以通过 开源的 MCP SDK 和工具生态(如 Go-MCP、Composio、OpenTools)实现 MCP 协议的工具调用。

浙公网安备 33010602011771号