基于 Python 的 MCP 协议实现框架,提供客户端-服务器架构的 LLM 工具调用编排,集成 LangChain 与 ChromaDB 支持 RAG 开发。
项目概述#
MCP Agent Orchestrator 是一个专业级 Python 框架,旨在解决大型语言模型与外部工具及知识库的标准化交互问题。它完整实现了 Model Context Protocol (MCP),采用客户端-服务器解耦架构,通过 StdIO 进行进程间通信。
核心能力#
1. MCP 协议实现#
- 完整实现 Model Context Protocol 规范
- 客户端-服务器解耦设计,通过 StdIO 进行进程间通信
- 自动工具架构转换,支持 OpenAI 兼容的函数调用
2. 智能客户端桥接 (client.py, rag_agent.py)#
- 使用 AsyncExitStack 进行异步生命周期管理
- 持久化会话状态和多轮推理循环
- 实现
list_tools到 OpenAItoolsschema 的自动转换
3. RAG 知识服务器 (rag_server.py)#
- 数据摄取: 支持 PDF 和 TXT 格式(使用 LangChain)
- 向量数据库: 通过 ChromaDB 进行持久化存储
- 搜索优化: 实现 MMR(最大边际相关性)算法进行多样化信息检索
- 嵌入模型: 集成 HuggingFace transformer 模型
4. 天气服务服务器 (server.py)#
- 集成外部 REST API (WeatherAPI)
- 数据规范化和格式化,适配 LLM 消费
- 使用 httpx 进行异步请求处理
实现变体#
项目提供三种实现路径:
- 标准版: mcp_rag_agent/mcp_agent
- GraphRAG 版: mcp_rag_agent_graphrag
- LangChain 版: mcp_rag_langchain
典型应用场景#
- 智能对话系统: 构建具备工具调用能力的 AI 助手
- 知识库问答: 基于私有文档的智能问答系统
- 实时数据集成: LLM 与实时外部 API 的集成(如天气查询)
- 多模态信息检索: 结合向量搜索和 LLM 推理的混合检索系统
系统架构#
├── client.py # 标准 MCP 客户端实现
├── rag_agent.py # RAG 操作专用代理
├── server.py # 天气服务 MCP 服务器
├── rag_server.py # RAG 知识库 MCP 服务器
├── test.py # LLM API 连接测试
└── data/
├── rag_db/ # 向量存储持久化目录
└── text.txt # 示例知识库源文件
安装与快速开始#
环境要求#
- Python 3.10+
- 推荐使用虚拟环境
依赖安装#
pip install mcp langchain langchain-community langchain-openai chromadb httpx python-dotenv openai
环境配置#
创建 .env 文件:
API_KEY=your_llm_api_key
BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL=qwen-plus
EMBED_MODEL=sentence-transformers/all-MiniLM-L6-v2
快速启动#
# 运行天气代理
python client.py server.py
# 运行 RAG 代理
python rag_agent.py --server_script rag_server.py
关键特性#
- 标准化协议: 遵循 MCP 规范,确保工具和模型的互操作性
- 模块化设计: 客户端和服务器解耦,易于扩展新功能
- 生产就绪: 包含完整的生命周期管理和错误处理
- 灵活部署: 支持多种 LLM 后端(Qwen/DashScope 等 OpenAI 兼容接口)
开发者信息#
- 开发者: Haohao-end
- 主要语言: Python (100%)
- 提交记录: 57 次提交,持续维护中