MCPulse SSE客户端

一个基于Gradio构建的类似ChatGPT的Web应用程序,作为MCP(模型上下文协议)SSE客户端,可连接多个MCP服务器并在对话中利用其工具。

  • by arashmok
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 arashmok/mcpulse

使用说明

MCPulse - 带有Gradio界面的MCP SSE客户端

一个使用Gradio构建的类似ChatGPT的网页应用,它作为MCP(模型上下文协议)SSE客户端运行。可以连接到多个MCP服务器,并在对话中利用它们的工具。

特点/特性

  • 🔌(电源插头/插座) 多服务器支持同时连接到多个MCP服务器
  • 💬(这个表情符号在中文中通常表示“聊天”或“对话”的意思,但直接翻译可能无法完全传达其含义,因此可以理解为“聊天”或“对话”的意象。) 类似ChatGPT的界面由Gradio驱动的简洁直观聊天界面
  • 🛠️(工具或修理的符号,无直接对应中文含义,可理解为“工具”或“修理”等意象) 工具集成自动发现并使用连接的MCP服务器上的工具
  • 💾 磁盘驱动器 可选 MongoDB 存储将聊天历史存储在MongoDB中以实现持久化
  • ⚙️ 代表齿轮符号,常用于表示机械、装置或技术相关的概念,在中文中可直接以“齿轮符号”或“⚙️(齿轮符号)”来表达。若需在具体语境中使用,可根据上下文灵活翻译或直接使用该符号。 轻松配置用于管理MCP服务器连接的简单用户界面
  • 🔄 翻译成中文是:🔄(此符号本身无特定含义,可理解为“循环”或“重复”的概念,但在此直接保留原符号形式,因为其在中文语境中通常不直接翻译,而是根据上下文解释其含义。)不过,若需一个对应的中文解释性描述,可以是“循环”或“重复”的意思。 实时更新用于响应式服务器通信的SSE传输

安装

  1. 克隆仓库:
git clone <repository-url>
cd mcpulse
  1. 创建一个虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 配置环境变量:
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(可选)

启用聊天历史记录存储:

  1. 设置MongoDB连接详情 .env
  2. 在用户界面中使用“设置 MongoDB”按钮来创建集合
  3. 聊天历史将自动保存,之后可以加载查看

MongoDB 模式(或架构):

{
  "_id": "ObjectId",
  "session_id": "string",
  "timestamp": "datetime",
  "role": "user|assistant|system",
  "content": "string",
  "tools_used": ["array"],
  "metadata": {}
}

使用方法

启动应用程序

python main.py

Gradio界面将在(某时间/某处)启动 http://localhost:7860

使用接口

  1. 配置MCP服务器:

    • 转到“配置”选项卡
    • 添加您的MCP服务器URL
    • 根据需要启用/禁用服务器
  2. 开始聊天:

    • 选择聊天中使用的MCP服务器
    • 输入您的信息并点击发送
    • 助手将在需要时自动使用可用工具
  3. 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 文件

做出贡献

欢迎贡献!请提出问题或提交拉取请求。

致谢