MCP项目笔记一(项目整体架构)
(智能工具检索)在内的核心架构,为 AI Agent 提供标准化、高性能的工具调用能力。:基于检索增强生成 (RAG) 技术,解决大规模工具集下的上下文窗口限制问题。:作为 AI Agent 与 MCP 服务端的通信桥梁,支持多种传输模式。协议的完整 C++ 实现,构建包含。:高性能、插件化的工具执行中心。本项目的核心调用链遵循。
项目目标
本项目旨在实现 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 响应回传至客户端。
- 功能定位:高性能、插件化的工具执行中心。
- 工作流程:
- 连接监听与建立:MCP Server 启动并持续监听客户端的连接请求(支持 STDIO、SSE 或 HTTP Stream 传输层)。
- 请求接收与解析:连接成功后,Server 异步监听来自
mcp_client的工具调用请求,并按照 JSON-RPC 2.0 协议标准进行解析。 - 插件逻辑触发:Server 根据请求中的工具名称,通过插件加载器定位至相应的工具模块(如
calculator或weather),并执行具体的业务逻辑。 - 响应封装与回传:工具执行完成后,Server 将结果封装为标准的 JSON 格式响应,通过传输层原路返回至客户端。
调用链
用户发起提问,AI大模型处理用户请求,如果需要使用工具,向Agent层发送请求获取工具列表,Agent接收获取工具列表请求请求,调用RAG-MCP模块检索相关工具,返回工具列表json schema格式并返回工具定义,AI分析并决定调用哪个工具,发出调用工具指令,Agent转发工具调用给MCP客户端,客户端发送json-rpc请求给MCP服务器,服务器解析请求,调用对应的工具,执行工具逻辑,返回执行结果,将结果以json-rpc响应发送给MCP客户端,MCP客户端接收响应并转发给Agent,Agent将结果返回给AI,AI根据工具结果生成最终回答,返回最终回答给用户。
调用链逻辑
本项目的核心调用链遵循 “语义检索 -> 智能决策 -> 协议执行” 的闭环逻辑:
-
意图识别与工具发现:
- 用户提问:用户提交自然语言指令。
- 意图判定:AI 大模型(LLM)评估请求,若需外部能力支持,则触发工具检索流程。
- RAG 语义筛选:Agent 接收请求并调用 RAG-MCP 模块。该模块通过向量相似度计算,从工具库中检索出最相关的 KKK 个工具,并以 JSON Schema 格式向 LLM 返回工具定义。
-
智能决策与指令下达:
- 工具选择:LLM 结合上下文与工具定义,决策需调用的目标工具及参数。
- 指令转发:Agent 捕获 LLM 的调用指令,通过 MCP 客户端 封装为标准的 JSON-RPC 2.0 请求。
-
分布式执行与响应 (MCP 协议):
- 协议传输:客户端通过 STDIO 或 SSE 链路将请求发送至 MCP 服务器。
- 路由与执行:服务器解析请求,通过插件加载器定位对应的
.so插件并执行业务逻辑。 - 结果回传:服务器将执行结果封装为 JSON-RPC 响应原路回传,经由客户端转发至 Agent 层。
-
回答生成:
- 结果聚合:AI 大模型解析工具返回的原始数据,结合初始问题进行逻辑汇总。
- 最终回复:生成人类可读的最终回答并反馈给用户。
更多推荐



所有评论(0)