---
title: '分组管理'
description: '将服务器组织成逻辑组以简化访问控制'
---
## 概述
MCPHub 的分组管理功能允许您根据功能、用例或访问要求将 MCP 服务器组织成逻辑集合。这使您能够对不同的 AI 客户端和用户可用的工具进行精细控制。
## 核心概念
### 什么是分组?
分组是可通过专用端点访问的 MCP 服务器的命名集合。AI 客户端可以连接到特定分组以仅访问相关工具,而不是一次性连接到所有服务器。
### 分组的优势
- **聚焦工具访问**: AI 客户端只看到与其用例相关的工具
- **更好的性能**: 减少工具发现开销
- **增强安全性**: 限制对敏感工具的访问
- **改进组织**: 功能的逻辑分离
- **简化管理**: 更容易一起管理相关服务器
## 创建分组
### 通过仪表板
1. **导航到分组部分**: 在主导航中点击"分组"
2. **点击"创建分组"**: 开始分组创建流程
3. **填写分组详细信息**:
- **名称**: 分组的唯一标识符
4. **添加服务器**: 选择要包含在分组中的服务器
### 通过 API
以编程方式创建分组:
```bash
curl -X POST http://localhost:3000/api/groups \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{
"name": "web-automation",
"servers": ["playwright", "fetch"]
}'
```
{/* ### 通过配置文件
在您的 `mcp_settings.json` 中定义分组:
```json
{
"mcpServers": {
"fetch": { "command": "uvx", "args": ["mcp-server-fetch"] },
"playwright": { "command": "npx", "args": ["@playwright/mcp@latest"] },
"slack": { "command": "npx", "args": ["@modelcontextprotocol/server-slack"] }
},
"groups": {
"web-tools": {
"name": "web",
"servers": ["fetch", "playwright"],
},
"communication": {
"name": "communication",
"servers": ["slack"],
}
}
}
``` */}
## 分组类型和用例
**用途**: 浏览器自动化和网页抓取
**服务器**:
- `playwright`: 浏览器自动化
- `fetch`: HTTP 请求和网页抓取
- `selenium`: 替代浏览器自动化
**用例**:
- 自动化测试
- 数据收集
- 网页监控
- 内容分析
**端点**: `http://localhost:3000/mcp/web-automation`
**用途**: 数据操作和分析
**服务器**:
- `sqlite`: 数据库操作
- `filesystem`: 文件操作
- `spreadsheet`: Excel/CSV 处理
**用例**:
- 数据分析
- 报告生成
- 文件处理
- 数据库查询
**端点**: `http://localhost:3000/mcp/data-processing`
**用途**: 消息传递和协作
**服务器**:
- `slack`: Slack 集成
- `discord`: Discord 机器人
- `email`: 邮件发送
- `sms`: 短信通知
**用例**:
- 团队通知
- 客户沟通
- 警报系统
- 社交媒体管理
**端点**: `http://localhost:3000/mcp/communication`
**用途**: 软件开发工具
**服务器**:
- `github`: GitHub 操作
- `gitlab`: GitLab 集成
- `docker`: 容器管理
- `kubernetes`: K8s 操作
**用例**:
- 代码部署
- 仓库管理
- CI/CD 操作
- 基础设施管理
**端点**: `http://localhost:3000/mcp/development`
**用途**: 机器学习和 AI 工具
**服务器**:
- `openai`: OpenAI API 集成
- `huggingface`: Hugging Face 模型
- `vector-db`: 向量数据库操作
**用例**:
- 模型推理
- 数据嵌入
- 自然语言处理
- 计算机视觉
**端点**: `http://localhost:3000/mcp/ai-ml`
{/* ## 分组访问控制
### 访问级别
**公开分组**:
- 所有认证用户都可访问
- 无需额外权限
- 在分组列表中可见
- 默认访问级别
```json
{
"name": "public-tools",
"accessLevel": "public",
"servers": ["fetch", "calculator"]
}
```
**私有分组**:
- 仅对分组成员可见
- 需要明确的用户分配
- 在公开列表中隐藏
- 管理员控制成员身份
```json
{
"name": "internal-tools",
"accessLevel": "private",
"members": ["user1", "user2"],
"servers": ["internal-api", "database"]
}
```
**受限分组**:
- 基于角色的访问控制
- 需要特定权限
- 启用审计日志
- 限时访问
```json
{
"name": "admin-tools",
"accessLevel": "restricted",
"requiredRoles": ["admin", "operator"],
"servers": ["system-control", "user-management"]
}
```
### 用户管理
将用户分配给分组:
```bash
# 添加用户到分组
curl -X POST http://localhost:3000/api/groups/web-tools/members \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{"userId": "user123"}'
# 从分组中移除用户
curl -X DELETE http://localhost:3000/api/groups/web-tools/members/user123 \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# 列出分组成员
curl http://localhost:3000/api/groups/web-tools/members \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
``` */}
## 分组端点
### 访问分组
每个分组都有自己的 MCP 端点:
```
http://localhost:3000/mcp/{group-name}
```
示例:
- `http://localhost:3000/mcp/web-tools`
- `http://localhost:3000/mcp/data-processing`
- `http://localhost:3000/mcp/communication`
```
http://localhost:3000/sse/{group-name}
```
示例:
- `http://localhost:3000/sse/web-tools`
- `http://localhost:3000/sse/data-processing`
- `http://localhost:3000/sse/communication`
### 分组工具发现
当连接到分组端点时,AI 客户端将只看到该分组内服务器的工具:
```bash
# 列出 web-tools 分组中的工具
curl -X POST http://localhost:3000/mcp/web-tools \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'
```
响应将只包含来自 `fetch` 和 `playwright` 服务器的工具。
## 动态分组管理
### 向分组添加服务器
1. 在仪表板中导航到分组
2. 点击"管理服务器"
3. 选择要添加的其他服务器
4. 点击"保存更改"
```bash
curl -X POST http://localhost:3000/api/groups/web-tools/servers \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{"serverId": "new-server"}'
```
### 从分组中移除服务器
1. 在仪表板中导航到分组
2. 点击"管理服务器"
3. 取消选择要移除的服务器
4. 点击"保存更改"
```bash
curl -X DELETE http://localhost:3000/api/groups/web-tools/servers/server-name \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
```
{/* ### 批量服务器更新
一次更新多个服务器:
```bash
curl -X PUT http://localhost:3000/api/groups/web-tools/servers \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{
"servers": ["fetch", "playwright", "selenium"]
}'
``` */}
{/* ## 分组监控
### 分组状态
监控分组健康状况和活动:
```bash
# 获取分组状态
curl http://localhost:3000/api/groups/web-tools/status \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
```
响应包括:
- 活跃服务器数量
- 工具数量
- 活跃连接
- 最近活动
### 分组分析
跟踪分组使用情况:
```bash
# 获取分组分析
curl http://localhost:3000/api/groups/web-tools/analytics \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
```
指标包括:
- 按工具分类的请求计数
- 响应时间
- 错误率
- 用户活动 */}
{/* ## 高级分组功能
### 嵌套分组
创建层次化分组结构:
```json
{
"groups": {
"development": {
"displayName": "开发工具",
"subGroups": ["frontend-dev", "backend-dev", "devops"]
},
"frontend-dev": {
"displayName": "前端开发",
"servers": ["playwright", "webpack-server"],
"parent": "development"
},
"backend-dev": {
"displayName": "后端开发",
"servers": ["database", "api-server"],
"parent": "development"
}
}
}
```
### 分组模板
使用模板快速创建分组:
```json
{
"groupTemplates": {
"web-project": {
"description": "标准 Web 项目工具集",
"servers": ["fetch", "playwright", "filesystem"],
"accessLevel": "public"
},
"data-science": {
"description": "数据科学和 ML 工具",
"servers": ["python-tools", "jupyter", "vector-db"],
"accessLevel": "private"
}
}
}
```
应用模板:
```bash
curl -X POST http://localhost:3000/api/groups/from-template \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{
"name": "my-web-project",
"template": "web-project",
"displayName": "我的 Web 项目工具"
}'
```
### 分组策略
定义分组行为策略:
```json
{
"groupPolicies": {
"web-tools": {
"maxConcurrentConnections": 10,
"requestTimeout": 30000,
"rateLimiting": {
"requestsPerMinute": 100,
"burstLimit": 20
},
"allowedOrigins": ["localhost", "myapp.com"]
}
}
}
``` */}
## 最佳实践
### 分组组织
**按用例组织**: 根据用户想要完成的任务来组织服务器分组,而不仅仅是技术相似性。
**保持分组聚焦**: 避免创建包含太多不同工具的分组。更小、更聚焦的分组更有用。
**使用描述性名称**: 选择能清楚表明分组目的和内容的名称。
{/* ### 安全考虑
**最小权限原则**: 只给用户访问他们实际需要的分组。
**敏感工具隔离**: 将敏感工具保存在具有适当访问控制的受限分组中。
**定期访问审查**: 定期审查分组成员身份并移除不必要的访问权限。
*/}
### 性能优化
**平衡分组大小**: 非常大的分组可能导致工具发现较慢。考虑拆分为更小的分组。
**监控使用情况**: 使用分析来识别哪些分组被大量使用并相应优化。
## 故障排除
**检查:**
- 用户具有适当权限
- 分组存在且处于活跃状态
- 分组中的服务器正在运行
- 网络连接
**解决方案:**
1. 验证用户分组成员身份
2. 检查分组配置
3. 测试单个服务器连接
4. 查看访问日志
**可能原因:**
- 服务器未正确添加到分组
- 服务器未运行
- 工具发现失败
- 缓存问题
**调试步骤:**
1. 验证服务器在分组配置中
2. 检查服务器状态
3. 强制刷新工具发现
4. 清除分组缓存
**常见问题:**
- 分组中服务器过多
- 服务器响应慢
- 网络延迟
- 资源约束
**优化方案:**
1. 拆分大型分组
2. 监控服务器性能
3. 实施请求缓存
4. 使用连接池
## 下一步
跨分组的 AI 驱动工具发现
用户管理和访问控制
完整的分组管理 API
高级分组配置选项