多服务器管理工具

MCP多服务器管理解决方案是一个傻瓜式的工具,支持流式输出和智能工具路由,适用于需要管理多个MCP服务器的场景。

  • by tenoch1986
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tenoch1986/MCP_agent

使用说明

MCP 多服务器管理解决方案 - 傻瓜式介绍

🎯 这是什么?

这是一个傻瓜式的 MCP (Model Context Protocol) 多服务器管理工具,让你轻松管理多个 MCP 服务器,支持真正的流式输出,就像管理手机 App 一样简单!

🚀 快速开始(3步搞定)

第1步:启动服务器管理器

python mcp_server_manager.py

管理器会自动:

  • ✅ 创建配置文件 mcp_servers.json
  • ✅ 添加默认的天气服务器和员工服务器配置
  • ✅ 提供简单易用的管理界面

第2步:启动所有服务器

在管理器中:

  1. 输入 2 启动所有服务器
  2. 或者输入 4 启动单个服务器(输入 weather_server 或 employee_server)

第3步:使用真正的流式客户端

python mcp_true_stream_client.py

客户端会自动:

  • ✅ 发现所有运行中的 MCP 服务器
  • ✅ 加载所有可用工具
  • ✅ 智能路由你的问题到合适的工具
  • ✅ 真正的流式输出:思考过程、工具调用、结果加工都实时显示

📁 文件说明

文件 用途 傻瓜说明
mcp_server_manager.py 服务器管理器 像手机应用商店,管理所有服务器
mcp_true_stream_client.py 真正的流式客户端 智能助手,实时显示思考过程
mcp_multi_client.py 普通客户端 智能助手,一次性输出结果
mcp_servers.json 配置文件 自动生成,记录服务器信息
weather_server.py 天气服务器 提供天气查询功能
employee_server.py 员工服务器 提供员工查询功能

🎮 使用示例

真正的流式输出体验

💬 You: 员工D0003 and D0005 他们的位置在哪儿
🤖 Assistant: 🤔 正在思考...
<function_calls>
<invoke name="get_employee_location">
<parameter name="employee_id">D0003</parameter>
</invoke>
</function_calls>

<function_calls>
<invoke name="get_employee_location">
<parameter name="employee_id">D0005</parameter>
</invoke>
</function_calls>
🔧 正在调用工具: get_employee_location
   参数: {'employee_id': 'D0003'}
🔧 正在调用工具: get_employee_location
   参数: {'employee_id': 'D0005'}
[INFO] 调用工具: get_employee_location 参数: {'employee_id': 'D0003'}
[INFO] 调用工具: get_employee_location 参数: {'employee_id': 'D0005'}
✅ 工具调用完成
🤔 正在整合结果...
根据查询结果:

- 工号D0003的员工目前位于纽约办事处1楼接待室
- 工号D0005的员工目前位于上海总部B座5楼工位

🆕 多工具批量调用(最新功能)

💬 You: 查询员工D0005的姓名和当前位置
🤖 Assistant: 🤔 正在思考...
<function_calls>
<invoke name="query_employee">
<parameter name="employee_id">D0005</parameter>
</invoke>
<invoke name="get_employee_location">
<parameter name="employee_id">D0005</parameter>
</invoke>
</function_calls>
🔧 正在调用工具: query_employee
   参数: {'employee_id': 'D0005'}
🔧 正在调用工具: get_employee_location
   参数: {'employee_id': 'D0005'}
[INFO] 调用工具: query_employee 参数: {'employee_id': 'D0005'}
[INFO] 调用工具: get_employee_location 参数: {'employee_id': 'D0005'}
✅ 工具调用完成
🤔 正在整合结果...
根据查询结果,员工D0005的姓名是殖守,目前位于上海总部B座5楼工位。

多工具调用优势:

  • 🚀 一次请求,多个工具:LLM 可以同时调用多个相关工具
  • ⏱️ 批量处理:系统等待所有工具返回结果后再统一处理
  • 🎯 智能整合:AI 自动整合多个工具的结果生成自然回答

问天气

💬 You: 北京今天天气如何?
🤖 Assistant: 🤔 正在思考...
<function_calls>
<invoke name="get_weather">
<parameter name="city">北京</parameter>
</invoke>
</function_calls>
🔧 正在调用工具: get_weather
   参数: {'city': '北京'}
[INFO] 调用工具: get_weather 参数: {'city': '北京'}
✅ 工具调用完成
🤔 正在整合结果...
北京今天晴,25°C,微风。

问员工清单

💬 You: 给我一个员工清单
🤖 Assistant: 🤔 正在思考...
<function_calls>
<invoke name="list_employees">
</invoke>
</function_calls>
🔧 正在调用工具: list_employees
   参数: {}
[INFO] 调用工具: list_employees 参数: {}
✅ 工具调用完成
🤔 正在整合结果...
以下是公司当前所有在职员工的完整清单...

🔧 添加新服务器

在管理器中输入 7,按提示填写:

  • 服务器名称:随便起个名字
  • 描述:这个服务器是做什么的
  • 传输类型:sse 或 stdio
  • 地址/命令:服务器的访问地址或启动命令

❓ 常见问题

Q: 配置文件在哪里?需要自己创建吗?

A: 不需要! 管理器第一次运行时会自动创建配置文件。

Q: 服务器状态怎么管理?

A: 实时查询! 不需要手动维护状态,系统会自动检查服务器是否运行。

Q: 如何添加更多工具?

A: 自动发现! 只要服务器运行,客户端会自动发现所有工具。

Q: 多个服务器怎么管理?

A: 统一管理! 管理器会统一管理所有服务器,客户端会统一使用所有工具。

Q: 流式输出和普通输出有什么区别?

A: 体验完全不同!

  • 普通输出:等待所有处理完成后一次性显示结果
  • 流式输出:实时显示思考过程、工具调用、结果加工,就像真人对话一样

🎯 核心优势

1. 真正的流式输出

  • 🤔 思考过程实时显示:看到 AI 如何分析你的问题
  • 🔧 工具调用透明可见:看到具体调用了哪些工具
  • 📊 结果加工逐字输出:看到原始数据如何变成自然对话

2. 自动配置

  • 第一次运行自动创建所有必要文件
  • 无需手动编辑配置文件

3. 智能发现

  • 自动发现运行中的服务器
  • 自动加载所有可用工具

4. 简单易用

  • 中文界面,傻瓜式操作
  • 像使用手机 App 一样简单

5. 实时状态

  • 服务器状态实时查询
  • 无需手动维护状态信息

🚨 注意事项

  1. 先启动管理器:python mcp_server_manager.py
  2. 再启动服务器:在管理器中启动需要的服务器
  3. 最后用客户端:python mcp_true_stream_client.py(推荐流式版本)

💡 小贴士

  • 管理器可以同时管理多个不同类型的 MCP 服务器
  • 客户端会自动选择最合适的工具回答你的问题
  • 所有工具结果都会经过 AI 加工,生成自然对话
  • 流式客户端提供更好的交互体验,推荐使用

🔍 调试和日志

系统会自动生成调试日志:

  • mcp_true_stream_debug.log:记录完整的处理过程
  • 包含用户输入、LLM 响应、工具调用、最终结果

总结:就像使用智能手机一样简单!

  1. 打开"应用商店"(管理器)
  2. 安装"App"(启动服务器)
  3. 使用"智能助手"(客户端) - 推荐流式版本

流式输出让你看到 AI 的思考过程,就像和真人对话一样! 🎉

🆕 最新功能

✅ 已实现

  • 多 MCP 服务器同时使用
  • 真正的流式输出(思考过程实时显示)
  • 智能工具路由和调用
  • 完善的调试日志系统
  • 🆕 多工具批量调用(一次请求调用多个工具)

🔄 计划中

  • 更清晰的服务器分类管理
  • 支持 NPM 安装的外部服务器
  • 自动去重和冲突解决

现在就试试流式输出,体验 AI 的思考过程! 🚀