使用说明
MCP 多服务器管理解决方案 - 傻瓜式介绍
🎯 这是什么?
这是一个傻瓜式的 MCP (Model Context Protocol) 多服务器管理工具,让你轻松管理多个 MCP 服务器,支持真正的流式输出,就像管理手机 App 一样简单!
🚀 快速开始(3步搞定)
第1步:启动服务器管理器
python mcp_server_manager.py
管理器会自动:
- ✅ 创建配置文件
mcp_servers.json - ✅ 添加默认的天气服务器和员工服务器配置
- ✅ 提供简单易用的管理界面
第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. 实时状态
- 服务器状态实时查询
- 无需手动维护状态信息
🚨 注意事项
- 先启动管理器:
python mcp_server_manager.py - 再启动服务器:在管理器中启动需要的服务器
- 最后用客户端:
python mcp_true_stream_client.py(推荐流式版本)
💡 小贴士
- 管理器可以同时管理多个不同类型的 MCP 服务器
- 客户端会自动选择最合适的工具回答你的问题
- 所有工具结果都会经过 AI 加工,生成自然对话
- 流式客户端提供更好的交互体验,推荐使用
🔍 调试和日志
系统会自动生成调试日志:
mcp_true_stream_debug.log:记录完整的处理过程- 包含用户输入、LLM 响应、工具调用、最终结果
总结:就像使用智能手机一样简单!
- 打开"应用商店"(管理器)
- 安装"App"(启动服务器)
- 使用"智能助手"(客户端) - 推荐流式版本
流式输出让你看到 AI 的思考过程,就像和真人对话一样! 🎉
🆕 最新功能
✅ 已实现
- 多 MCP 服务器同时使用
- 真正的流式输出(思考过程实时显示)
- 智能工具路由和调用
- 完善的调试日志系统
- 🆕 多工具批量调用(一次请求调用多个工具)
🔄 计划中
- 更清晰的服务器分类管理
- 支持 NPM 安装的外部服务器
- 自动去重和冲突解决
现在就试试流式输出,体验 AI 的思考过程! 🚀