mirror of
https://github.com/samanhappy/mcphub.git
synced 2025-12-24 02:39:19 -05:00
feat: add group management functionality (#12)
This commit is contained in:
190
README.zh.md
190
README.zh.md
@@ -1,137 +1,127 @@
|
||||
# MCPHub:一键部署你的专属 MCP 服务
|
||||
# MCPHub:一站式 MCP 服务器聚合平台
|
||||
|
||||
[English Version](README.md) | 中文版
|
||||
|
||||
MCPHub 是一个集中管理的 MCP 服务器聚合平台,可以将多个 MCP(Model Context Protocol)服务整合为一个 SSE 端点。它通过提供一个集中的管理界面来简化服务管理,满足您对 MCP 服务的所有需求。
|
||||
MCPHub 是一个统一的 MCP(Model Context Protocol,模型上下文协议)服务器聚合平台,可以根据场景将多个服务器聚合到不同的 SSE 端点。它通过直观的界面和强大的协议处理能力,简化了您的 AI 工具集成流程。
|
||||
|
||||

|
||||
|
||||
## 功能
|
||||
## 🚀 功能亮点
|
||||
|
||||
- **内置精选 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 还有不少地方需要优化和完善,我也专门建了个交流群,方便大家交流反馈。如果你也对这个项目感兴趣,欢迎一起参与建设!
|
||||
|
||||

|
||||
|
||||
## 许可证
|
||||
## 📄 许可证
|
||||
|
||||
本项目采用 [Apache 2.0 许可证](LICENSE)。
|
||||
|
||||
Reference in New Issue
Block a user