项目目标

本项目旨在实现 Model Context Protocol (MCP) 模型上下文协议的完整 C++ 实现,构建包含 MCP Client(客户端)、MCP Server(服务器)以及 RAG-MCP(智能工具检索)在内的核心架构,为 AI Agent 提供标准化、高性能的工具调用能力。


项目模块

本项目由以下三个核心模块协同工作,实现了从工具检索到执行的完整闭环:

1. RAG-MCP 智能工具检索模块

功能定位:基于检索增强生成 (RAG) 技术,解决大规模工具集下的上下文窗口限制问题。

  • 工作流程:当 Agent 收到 LLM 的工具查询请求时,RAG-MCP 模块通过 EmbeddingService(集成阿里百炼 DashScope)将请求向量化。
  • 检索逻辑:利用内置的 VectorIndex 进行余弦相似度计算,从工具库中筛选出最匹配的前 K 个工具定义(JSON Schema)返回给 LLM。
  • 缓存机制:引入 EmbeddingCache (LRU 策略) 以显著减少重复请求的 API 调用开销。

2. MCP 客户端 (MCP Client)

功能定位:作为 AI Agent 与 MCP 服务端的通信桥梁,支持多种传输模式。

  • 工作流程: Agent捕获 AI 的工具需求并对接 MCP Client,客户端通过 JSON-RPC 协议连接 MCP Server 并发送请求,服务端执行插件逻辑后返回 JSON 响应,客户端将结果回传给 Agent 及 AI 模型,以完成基于工具执行结果的智能回复生成。
  • 通信协议:严格遵循 JSON-RPC 2.0 标准进行指令封装与解析。
  • 传输支持:提供 STDIO(本地进程间通信)和 SSE(远程 HTTP 流式传输)两种模式,适配本地及分布式部署场景。
  • 集成能力:提供 MCPAgentIntegration 接口,简化了 AI 框架(如 LangChain 或原生 Agent)与 MCP 协议的对接流程。

3. MCP 服务器 (MCP Server)

功能定位:高性能、插件化的工具执行中心。

  • 架构设计:采用插件化架构,支持动态加载 .so 动态库,实现工具逻辑与服务器核心代码的高度解耦。
  • 多模式监听:内置高性能服务器,持续监听来自客户端的连接及工具调用请求。
  • 执行与分发:解析 JSON-RPC 请求后,通过插件加载器精确定位并执行对应的工具逻辑(如计算器、代码审查、天气查询等),并将执行结果封装为 JSON 响应回传至客户端。
  • 功能定位:高性能、插件化的工具执行中心。
  • 工作流程:
    1. 连接监听与建立:MCP Server 启动并持续监听客户端的连接请求(支持 STDIOSSEHTTP Stream 传输层)。
    2. 请求接收与解析:连接成功后,Server 异步监听来自 mcp_client 的工具调用请求,并按照 JSON-RPC 2.0 协议标准进行解析。
    3. 插件逻辑触发:Server 根据请求中的工具名称,通过插件加载器定位至相应的工具模块(如 calculatorweather),并执行具体的业务逻辑。
    4. 响应封装与回传:工具执行完成后,Server 将结果封装为标准的 JSON 格式响应,通过传输层原路返回至客户端。

调用链

用户发起提问,AI大模型处理用户请求,如果需要使用工具,向Agent层发送请求获取工具列表,Agent接收获取工具列表请求请求,调用RAG-MCP模块检索相关工具,返回工具列表json schema格式并返回工具定义,AI分析并决定调用哪个工具,发出调用工具指令,Agent转发工具调用给MCP客户端,客户端发送json-rpc请求给MCP服务器,服务器解析请求,调用对应的工具,执行工具逻辑,返回执行结果,将结果以json-rpc响应发送给MCP客户端,MCP客户端接收响应并转发给Agent,Agent将结果返回给AI,AI根据工具结果生成最终回答,返回最终回答给用户。

调用链逻辑

本项目的核心调用链遵循 “语义检索 -> 智能决策 -> 协议执行” 的闭环逻辑:

  1. 意图识别与工具发现

    • 用户提问:用户提交自然语言指令。
    • 意图判定:AI 大模型(LLM)评估请求,若需外部能力支持,则触发工具检索流程。
    • RAG 语义筛选:Agent 接收请求并调用 RAG-MCP 模块。该模块通过向量相似度计算,从工具库中检索出最相关的 KKK 个工具,并以 JSON Schema 格式向 LLM 返回工具定义。
  2. 智能决策与指令下达

    • 工具选择:LLM 结合上下文与工具定义,决策需调用的目标工具及参数。
    • 指令转发:Agent 捕获 LLM 的调用指令,通过 MCP 客户端 封装为标准的 JSON-RPC 2.0 请求。
  3. 分布式执行与响应 (MCP 协议)

    • 协议传输:客户端通过 STDIOSSE 链路将请求发送至 MCP 服务器
    • 路由与执行:服务器解析请求,通过插件加载器定位对应的 .so 插件并执行业务逻辑。
    • 结果回传:服务器将执行结果封装为 JSON-RPC 响应原路回传,经由客户端转发至 Agent 层。
  4. 回答生成

    • 结果聚合:AI 大模型解析工具返回的原始数据,结合初始问题进行逻辑汇总。
    • 最终回复:生成人类可读的最终回答并反馈给用户。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐