MCPulse - 带有Gradio界面的MCP SSE客户端
一个使用Gradio构建的类似ChatGPT的网页应用,它作为MCP(模型上下文协议)SSE客户端运行。可以连接到多个MCP服务器,并在对话中利用它们的工具。
特点/特性
- 🔌(电源插头/插座) 多服务器支持同时连接到多个MCP服务器
- 💬(这个表情符号在中文中通常表示“聊天”或“对话”的意思,但直接翻译可能无法完全传达其含义,因此可以理解为“聊天”或“对话”的意象。) 类似ChatGPT的界面由Gradio驱动的简洁直观聊天界面
- 🛠️(工具或修理的符号,无直接对应中文含义,可理解为“工具”或“修理”等意象) 工具集成自动发现并使用连接的MCP服务器上的工具
- 💾 磁盘驱动器 可选 MongoDB 存储将聊天历史存储在MongoDB中以实现持久化
- ⚙️ 代表齿轮符号,常用于表示机械、装置或技术相关的概念,在中文中可直接以“齿轮符号”或“⚙️(齿轮符号)”来表达。若需在具体语境中使用,可根据上下文灵活翻译或直接使用该符号。 轻松配置用于管理MCP服务器连接的简单用户界面
- 🔄 翻译成中文是:🔄(此符号本身无特定含义,可理解为“循环”或“重复”的概念,但在此直接保留原符号形式,因为其在中文语境中通常不直接翻译,而是根据上下文解释其含义。)不过,若需一个对应的中文解释性描述,可以是“循环”或“重复”的意思。 实时更新用于响应式服务器通信的SSE传输
安装
- 克隆仓库:
git clone
cd mcpulse- 创建一个虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 配置环境变量:
cp .env.example .env
# Edit .env with your API keys and settings配置
MCP服务器
MCP服务器可以通过用户界面(UI)配置,或者通过编辑方式进行配置 config/mcp_servers.json:
{
"servers": [
{
"name": "My MCP Server",
"url": "http://localhost:8000/sse",
"description": "Local MCP server",
"enabled": true
}
]
}MongoDB(可选)
启用聊天历史记录存储:
- 设置MongoDB连接详情
.env - 在用户界面中使用“设置 MongoDB”按钮来创建集合
- 聊天历史将自动保存,之后可以加载查看
MongoDB 模式(或架构):
{
"_id": "ObjectId",
"session_id": "string",
"timestamp": "datetime",
"role": "user|assistant|system",
"content": "string",
"tools_used": ["array"],
"metadata": {}
}使用方法
启动应用程序
python main.pyGradio界面将在(某时间/某处)启动 http://localhost:7860
使用接口
- 配置MCP服务器:
- 转到“配置”选项卡 - 添加您的MCP服务器URL - 根据需要启用/禁用服务器
- 开始聊天:
- 选择聊天中使用的MCP服务器 - 输入您的信息并点击发送 - 助手将在需要时自动使用可用工具
- MongoDB 安装(可选):
- 在(系统/应用中)配置MongoDB连接 .env - 在配置选项卡中点击“设置MongoDB集合” - 启用“使用 MongoDB”以持久保存聊天历史
项目结构
mcpulse/
├── src/
│ ├── client/ # MCP client implementation
│ │ ├── __init__.py
│ │ ├── mcp_client.py
│ │ └── session_manager.py
│ ├── database/ # MongoDB integration
│ │ ├── __init__.py
│ │ └── mongo_handler.py
│ ├── ui/ # Gradio interface
│ │ ├── __init__.py
│ │ └── app.py
│ └── config/ # Configuration management
│ ├── __init__.py
│ └── settings.py
├── config/ # Configuration files
│ └── mcp_servers.json
├── main.py # Application entry point
├── requirements.txt # Python dependencies
├── .env.example # Example environment variables
└── README.md # This file发展
添加新功能
该项目被组织成模块化组件:
- MCP 客户端 (
src/client/): 处理与MCP服务器的连接 - 数据库 (
src/database/): 对话历史记录的MongoDB集成 - 用户界面(UI) (
src/ui/): Gradio 界面组件 - 配置 (
src/config/): 应用程序设置和配置
运行测试
# TODO: Add test suite
pytest tests/故障排除
MCP服务器连接问题
- 验证服务器URL是否正确且包含
/sse终端节点 - 检查MCP服务器是否正在运行且可访问
- 检查服务器日志中的连接错误
MongoDB 连接问题
- 确保 MongoDB 正在运行
- 验证连接字符串在
.env - 检查数据库/集合权限
许可证
MIT 许可证 - 详见 LICENSE 文件
做出贡献
欢迎贡献!请提出问题或提交拉取请求。
