feat: add group management functionality (#12)

This commit is contained in:
samanhappy
2025-04-17 18:55:04 +08:00
committed by GitHub
parent 6a065ca2f2
commit adef02d3b9
27 changed files with 1953 additions and 446 deletions

View File

@@ -1,137 +1,127 @@
# MCPHub键部署你的专属 MCP 服务
# MCPHub站式 MCP 服务器聚合平台
[English Version](README.md) | 中文版
MCPHub 是一个集中管理的 MCP 服务器聚合平台,可以将多个 MCPModel Context Protocol)服务整合为一个 SSE 端点。它通过提供一个集中的管理界面来简化服务管理,满足您对 MCP 服务的所有需求
MCPHub 是一个统一的 MCPModel Context Protocol,模型上下文协议)服务器聚合平台,可以根据场景将多个服务器聚合到不同的 SSE 端点。它通过直观的界面和强大的协议处理能力,简化了您的 AI 工具集成流程
![控制面板预览](assets/dashboard.zh.png)
## 功能
## 🚀 功能亮点
- **内置精选 MCP 服务**:默认安装 `amap-maps``playwright``slack` 等热门服务,开箱即用
- **集中管理**:通过单一中心轻松管理多个 MCP 服务
- **协议兼容**同时支持 stdio SSE MCP 协议,确保无缝对接
- **直观控制面板**:通过 Web 界面实时监控服务状态,并动态管理服务
- **灵活配置**:无需重启中心服务即可添加、移除或重新配置 MCP 服务
- **开箱即用的 MCP 服务器支持**:无缝集成 `amap-maps``playwright``fetch``slack` 等常见服务器
- **集中管理控制台**:在一个简洁的 Web UI 中实时监控所有服务器的状态和性能指标
- **灵活的协议兼容**完全支持 stdio SSE 两种 MCP 协议。
- **热插拔式配置**:在运行时动态添加、移除或更新服务器配置,无需停机
- **基于分组的访问控制**:自定义分组并管理服务器访问权限
- **安全认证机制**:内置用户管理,基于 JWT 和 bcrypt实现角色权限控制。
- **Docker 就绪**:提供容器化镜像,快速部署。
## 快速开始
## 🔧 快速开始
### 配置(可选但推荐)
### 可选配置
- 你可以通过创建 `mcp_settings.json` 文件来自定义 MCP 服务器设置,例如
```json
{
"mcpServers": {
"amap-maps": {
"command": "npx",
"args": [
"-y",
"@amap/amap-maps-mcp-server"
],
"env": {
"AMAP_MAPS_API_KEY": "your-api-key"
}
},
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--headless"
]
},
"fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
]
},
"slack": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-slack"
],
"env": {
"SLACK_BOT_TOKEN": "your-bot-token",
"SLACK_TEAM_ID": "your-team-id"
}
通过创建 `mcp_settings.json` 自定义服务器设置:
```json
{
"mcpServers": {
"amap-maps": {
"command": "npx",
"args": ["-y", "@amap/amap-maps-mcp-server"],
"env": {
"AMAP_MAPS_API_KEY": "your-api-key"
}
},
"users": [
{
"username": "admin",
"password": "$2b$10$Vt7krIvjNgyN67LXqly0uOcTpN0LI55cYRbcKC71pUDAP0nJ7RPa.",
"isAdmin": true
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"]
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "your-bot-token",
"SLACK_TEAM_ID": "your-team-id"
}
]
}
```
}
},
"users": [
{
"username": "admin",
"password": "$2b$10$Vt7krIvjNgyN67LXqly0uOcTpN0LI55cYRbcKC71pUDAP0nJ7RPa.",
"isAdmin": true
}
]
}
```
- 上述示例中包含 `amap-maps`、`playwright`、`fetch` `slack` 服务器,你可以根据需要增减服务器。
- `users` 部分允许你设置用户认证。默认的 root 用户为 `admin`,密码为 `admin123`,你可以根据需要进行更改。
- 密码使用 bcrypt 进行哈希处理。你可以使用以下命令生成新密码的哈希值:
> **提示**:默认用户名/密码为 `admin` / `admin123`。密码已通过 bcrypt 安全哈希。生成新密码哈希:
>
> ```bash
> npx bcryptjs your-password
> ```
```bash
npx bcryptjs your-password
```
### Docker 部署
### 启动
运行以下命令即可使用默认配置快速启动 MCPHub
**推荐**:挂载自定义配置:
```bash
docker run -p 3000:3000 -v $(pwd)/mcp_settings.json:/app/mcp_settings.json samanhappy/mcphub
```
或使用默认配置运行:
```bash
docker run -p 3000:3000 samanhappy/mcphub
```
运行以下命令可使用自定义配置启动 MCPHub
### 访问控制台
```bash
docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json samanhappy/mcphub
打开 `http://localhost:3000`,使用您的账号登录。
> **提示**:默认用户名/密码为 `admin` / `admin123`。
**控制台功能**
- 实时监控所有 MCP 服务器状态
- 启用/禁用或重新配置服务器
- 分组管理,组织服务器访问
- 用户管理,设定权限
### SSE 端点集成
通过以下地址连接 AI 客户端(如 Claude Desktop、Cursor、Cherry Studio 等):
```
http://localhost:3000/sse
```
### 控制面板访问
在浏览器中打开 `http://localhost:3000` 并使用你在 `mcp_settings.json` 文件中设置的凭据登录。默认凭据为:
- **用户名**`admin`
- **密码**`admin123`
控制面板提供以下功能:
- **实时监控**:随时查看所有 MCP 服务的运行状态。
- **服务状态指示**:快速识别各服务是否在线。
- **动态管理**:无需重启即可动态添加或移除 MCP 服务。
### SSE 端点
您可以将主机应用(如 Claude Desktop、Cursor、Cherry Studio 等)无缝连接至 MCPHub 的 SSE 端点: `http://localhost:3000/sse`
## 本地开发
### 克隆仓库
从 GitHub 克隆 MCPHub
## 🧑‍💻 本地开发
```bash
git clone https://github.com/samanhappy/mcphub.git
cd mcphub
pnpm install
pnpm dev
```
### 可选配置
此命令将在开发模式下启动前后端,并启用热重载。
通过编辑 `mcp_settings.json` 文件来自定义 MCP 服务器设置。
## 🔍 技术栈
### 启动开发服务器
- **后端**Node.js、Express、TypeScript
- **前端**React、Vite、Tailwind CSS
- **认证**JWT & bcrypt
- **协议**Model Context Protocol SDK
进入项目目录,安装依赖并启动 MCPHub
## 👥 贡献指南
```bash
cd mcphub && pnpm install && pnpm dev
```
期待您的贡献!
## 社区与贡献
- 新功能与优化
- 文档完善
- Bug 报告与修复
- 翻译与建议
MCPHub 只是我一时兴起开发的小项目,没想到竟收获了这么多关注,非常感谢大家的支持!目前 MCPHub 还有不少地方需要优化和完善,我也专门建了个交流群,方便大家交流反馈。如果你也对这个项目感兴趣,欢迎一起参与建设!
![微信群](assets/wegroup.jpg)
## 许可证
## 📄 许可证
本项目采用 [Apache 2.0 许可证](LICENSE)。