feat(mcp): 集成MCP SSE协议支持并扩展工具调用能力 新增MCP客户端类型(mcp_ssd),支持通过Model Context Protocol连接外部工具服务器。 更新文档和配置模板,提供完整的MCP接入指南;主程序启动时自动初始化MCP工具提供器, tool_api 与 tool_use 核心链路新增对MCP工具的检测与调用,实现与既有插件工具的无缝兼容。 同步更新配置模型、模板与帮助文档。
4.7 KiB
4.7 KiB
MCP SSE 集成完成报告
✅ 集成状态:已完成
MCP (Model Context Protocol) SSE (Server-Sent Events) 客户端已完全集成到 MoFox Bot 框架中。
📋 完成的工作
1. 依赖管理
- ✅ 在
pyproject.toml中添加mcp>=0.9.0和sse-starlette>=2.2.1 - ✅ 在
requirements.txt中同步添加依赖
2. 客户端实现
- ✅ 创建
src/llm_models/model_client/mcp_sse_client.py - ✅ 实现完整的MCP SSE协议支持
- ✅ 支持流式响应、工具调用、多模态内容
- ✅ 实现中断处理和Token统计
3. 配置系统集成
- ✅ 在
src/config/api_ada_configs.py中添加"mcp_sse"到client_type的Literal类型 - ✅ 在
src/llm_models/model_client/__init__.py中注册客户端 - ✅ 通过
@client_registry.register_client_class("mcp_sse")装饰器完成自动注册
4. 配置模板
- ✅ 在
template/model_config_template.toml中添加 MCP Provider 配置示例 - ✅ 添加 MCP 模型配置示例
- ✅ 提供详细的配置注释
5. 文档
- ✅ 创建
docs/MCP_SSE_USAGE.md- 详细使用文档 - ✅ 创建
docs/MCP_SSE_QUICKSTART.md- 快速配置指南 - ✅ 创建
docs/MCP_SSE_INTEGRATION.md- 集成完成报告(本文档)
6. 任务追踪
- ✅ 更新
TODO.md,标记"添加MCP SSE支持"为已完成
🔧 配置示例
Provider配置
[[api_providers]]
name = "MCPProvider"
base_url = "https://your-mcp-server.com"
api_key = "your-api-key"
client_type = "mcp_sse" # 关键:使用MCP SSE客户端
timeout = 60
max_retry = 2
模型配置
[[models]]
model_identifier = "claude-3-5-sonnet-20241022"
name = "mcp-claude"
api_provider = "MCPProvider"
force_stream_mode = true
任务配置
[model_task_config.replyer]
model_list = ["mcp-claude"]
temperature = 0.7
max_tokens = 800
🎯 功能特性
支持的功能
- ✅ 流式响应(SSE协议)
- ✅ 多轮对话
- ✅ 工具调用(Function Calling)
- ✅ 多模态内容(文本+图片)
- ✅ 中断信号处理
- ✅ Token使用统计
- ✅ 自动重试和错误处理
- ✅ API密钥轮询
当前限制
- ❌ 不支持嵌入(Embedding)功能
- ❌ 不支持音频转录功能
📊 架构集成
MoFox Bot
├── src/llm_models/
│ ├── model_client/
│ │ ├── base_client.py # 基础客户端接口
│ │ ├── openai_client.py # OpenAI客户端
│ │ ├── aiohttp_gemini_client.py # Gemini客户端
│ │ ├── mcp_sse_client.py # ✨ MCP SSE客户端(新增)
│ │ └── __init__.py # 客户端注册(已更新)
│ └── ...
├── src/config/
│ └── api_ada_configs.py # ✨ 添加mcp_sse类型(已更新)
├── template/
│ └── model_config_template.toml # ✨ 添加MCP配置示例(已更新)
├── docs/
│ ├── MCP_SSE_USAGE.md # ✨ 使用文档(新增)
│ ├── MCP_SSE_QUICKSTART.md # ✨ 快速配置指南(新增)
│ └── MCP_SSE_INTEGRATION.md # ✨ 集成报告(本文档)
└── pyproject.toml # ✨ 添加依赖(已更新)
🚀 使用流程
-
安装依赖
uv sync -
配置Provider和模型
- 编辑
model_config.toml - 参考
template/model_config_template.toml中的示例
- 编辑
-
使用MCP模型
- 在任何
model_task_config中引用配置的MCP模型 - 例如:
model_list = ["mcp-claude"]
- 在任何
-
启动Bot
- 正常启动,MCP客户端会自动加载
🔍 验证方法
检查客户端注册
启动Bot后,查看日志确认MCP SSE客户端已加载:
[INFO] 已注册客户端类型: mcp_sse
测试配置
发送测试消息,确认MCP模型正常响应。
查看日志
[INFO] MCP-SSE客户端: 正在处理请求...
[DEBUG] SSE流: 接收到内容块...
📚 相关文档
- 快速开始: MCP_SSE_QUICKSTART.md
- 详细使用: MCP_SSE_USAGE.md
- 配置模板: model_config_template.toml
- MCP协议: https://github.com/anthropics/mcp
🐛 已知问题
目前没有已知问题。
📝 更新日志
v0.8.1 (2025-10-05)
- ✅ 添加MCP SSE客户端支持
- ✅ 集成到配置系统
- ✅ 提供完整文档和配置示例
👥 贡献者
- MoFox Studio Team
📞 技术支持
如遇到问题:
- 查看日志文件中的错误信息
- 参考文档排查配置问题
- 提交Issue到项目仓库
- 加入QQ交流群寻求帮助
集成完成时间: 2025-10-05
集成版本: v0.8.1
状态: ✅ 生产就绪