Files
Mofox-Core/docs/MCP_SSE_QUICKSTART.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.6 KiB
Raw Blame History

MCP SSE 快速配置指南

什么是MCP SSE

MCP (Model Context Protocol) SSE (Server-Sent Events) 是一种支持流式通信的协议允许MoFox Bot通过SSE与兼容MCP协议的AI服务进行交互。

快速开始

步骤1: 安装依赖

# 使用uv推荐
uv sync

# 或使用pip
pip install mcp>=0.9.0 sse-starlette>=2.2.1

步骤2: 编辑配置文件

打开或创建 model_config.toml 文件,添加以下配置:

2.1 添加MCP Provider

[[api_providers]]
name = "MCPProvider"                          # Provider名称可自定义
base_url = "https://your-mcp-server.com"      # 你的MCP服务器地址
api_key = "your-mcp-api-key"                  # 你的API密钥
client_type = "mcp_sse"                       # 必须设置为 "mcp_sse"
timeout = 60                                  # 超时时间(秒)
max_retry = 2                                 # 最大重试次数

2.2 添加MCP模型

[[models]]
model_identifier = "claude-3-5-sonnet-20241022"  # 模型ID
name = "mcp-claude"                              # 模型名称,用于引用
api_provider = "MCPProvider"                     # 使用上面配置的Provider
force_stream_mode = true                         # MCP建议使用流式模式
price_in = 3.0                                   # 输入价格(可选)
price_out = 15.0                                 # 输出价格(可选)

2.3 在任务中使用MCP模型

# 例如使用MCP模型作为回复模型
[model_task_config.replyer]
model_list = ["mcp-claude"]  # 引用上面定义的模型名称
temperature = 0.7
max_tokens = 800

步骤3: 验证配置

启动MoFox Bot查看日志确认MCP SSE客户端是否正确加载

[INFO] MCP-SSE客户端: 正在初始化...
[INFO] 已加载模型: mcp-claude (MCPProvider)

完整配置示例

# ===== MCP SSE Provider配置 =====
[[api_providers]]
name = "MCPProvider"
base_url = "https://api.anthropic.com"  # Anthropic的Claude支持MCP
api_key = "sk-ant-xxx..."
client_type = "mcp_sse"
timeout = 60
max_retry = 2
retry_interval = 10

# ===== MCP模型配置 =====
[[models]]
model_identifier = "claude-3-5-sonnet-20241022"
name = "mcp-claude-sonnet"
api_provider = "MCPProvider"
force_stream_mode = true
price_in = 3.0
price_out = 15.0

[[models]]
model_identifier = "claude-3-5-haiku-20241022"
name = "mcp-claude-haiku"
api_provider = "MCPProvider"
force_stream_mode = true
price_in = 1.0
price_out = 5.0

# ===== 任务配置使用MCP模型 =====

# 回复生成使用Sonnet高质量
[model_task_config.replyer]
model_list = ["mcp-claude-sonnet"]
temperature = 0.7
max_tokens = 800

# 小型任务使用Haiku快速响应
[model_task_config.utils_small]
model_list = ["mcp-claude-haiku"]
temperature = 0.5
max_tokens = 500

# 工具调用使用Sonnet
[model_task_config.tool_use]
model_list = ["mcp-claude-sonnet"]
temperature = 0.3
max_tokens = 1000

支持的MCP服务

目前已知支持MCP协议的服务

  • Anthropic Claude (推荐)
  • 任何实现MCP SSE协议的自定义服务器
  • ⚠️ 其他服务需验证是否支持MCP协议

常见问题

Q: 我的服务器不支持MCP怎么办

A: 确保你的服务器实现了MCP SSE协议规范。如果是标准OpenAI API请使用 client_type = "openai" 而不是 "mcp_sse"

Q: 如何测试MCP连接是否正常

A: 启动Bot后在日志中查找相关信息或尝试发送一条测试消息。

Q: MCP SSE与OpenAI客户端有什么区别

A:

  • MCP SSE: 使用Server-Sent Events协议支持更丰富的流式交互
  • OpenAI: 使用标准OpenAI API格式
  • 选择建议: 如果你的服务明确支持MCP使用MCP SSE否则使用OpenAI客户端

Q: 可以混合使用不同类型的客户端吗?

A: 可以你可以在同一个配置文件中定义多个providers使用不同的 client_type

# OpenAI Provider
[[api_providers]]
name = "OpenAIProvider"
client_type = "openai"
# ...

# MCP Provider
[[api_providers]]
name = "MCPProvider"
client_type = "mcp_sse"
# ...

# Gemini Provider
[[api_providers]]
name = "GoogleProvider"
client_type = "aiohttp_gemini"
# ...

下一步

技术支持

如遇到问题,请:

  1. 检查日志文件中的错误信息
  2. 确认MCP服务器地址和API密钥正确
  3. 验证服务器是否支持MCP SSE协议
  4. 提交Issue到项目仓库