Files
Mofox-Core/docs/MCP_SSE_INTEGRATION.md
subiz 43fe6046b4 没想到吧,我还是没测试()
feat(mcp): 集成MCP SSE协议支持并扩展工具调用能力

新增MCP客户端类型(mcp_ssd),支持通过Model Context Protocol连接外部工具服务器。
更新文档和配置模板,提供完整的MCP接入指南;主程序启动时自动初始化MCP工具提供器,
tool_api 与 tool_use 核心链路新增对MCP工具的检测与调用,实现与既有插件工具的无缝兼容。
同步更新配置模型、模板与帮助文档。
2025-10-05 19:24:57 +08:00

4.7 KiB
Raw Blame History

MCP SSE 集成完成报告

集成状态:已完成

MCP (Model Context Protocol) SSE (Server-Sent Events) 客户端已完全集成到 MoFox Bot 框架中。

📋 完成的工作

1. 依赖管理

  • pyproject.toml 中添加 mcp>=0.9.0sse-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_typeLiteral 类型
  • 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                  # ✨ 添加依赖(已更新)

🚀 使用流程

  1. 安装依赖

    uv sync
    
  2. 配置Provider和模型

    • 编辑 model_config.toml
    • 参考 template/model_config_template.toml 中的示例
  3. 使用MCP模型

    • 在任何 model_task_config 中引用配置的MCP模型
    • 例如:model_list = ["mcp-claude"]
  4. 启动Bot

    • 正常启动MCP客户端会自动加载

🔍 验证方法

检查客户端注册

启动Bot后查看日志确认MCP SSE客户端已加载

[INFO] 已注册客户端类型: mcp_sse

测试配置

发送测试消息确认MCP模型正常响应。

查看日志

[INFO] MCP-SSE客户端: 正在处理请求...
[DEBUG] SSE流: 接收到内容块...

📚 相关文档

🐛 已知问题

目前没有已知问题。

📝 更新日志

v0.8.1 (2025-10-05)

  • 添加MCP SSE客户端支持
  • 集成到配置系统
  • 提供完整文档和配置示例

👥 贡献者

  • MoFox Studio Team

📞 技术支持

如遇到问题:

  1. 查看日志文件中的错误信息
  2. 参考文档排查配置问题
  3. 提交Issue到项目仓库
  4. 加入QQ交流群寻求帮助

集成完成时间: 2025-10-05
集成版本: v0.8.1
状态: 生产就绪