c++开发大模型mcp服务(一)目的和概念

mcp : modelcontextprotocol 模型上下文协议

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

image

 

前言

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 CallingMCP
架构 紧耦合,模型直接调用函数 松耦合,通过 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,而不是模型权重文件本身。
  • 开源大模型(如 QwenLlama3Mixtral)可以被部署在支持 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 调用数据库、API
  • Llama3 → 可通过 Composio MCP 实现自动化任务
  • Mixtral → 可通过 OpenTools 实现联网搜索
  • DeepSeek → 可通过 MCP 服务器访问企业内部系统

开源大模型:本身不原生支持 MCP,但可以通过 开源的 MCP SDK 和工具生态(如 Go-MCP、Composio、OpenTools)实现 MCP 协议的工具调用。

 

posted @ 2025-08-28 11:37  南水之源  阅读(180)  评论(0)    收藏  举报