---
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"],
    }
  }
}
``` */}

## 分组类型和用例

<AccordionGroup>
  <Accordion title="Web 自动化分组">
    **用途**: 浏览器自动化和网页抓取
    
    **服务器**:
    - `playwright`: 浏览器自动化
    - `fetch`: HTTP 请求和网页抓取
    - `selenium`: 替代浏览器自动化

    **用例**:
    - 自动化测试
    - 数据收集
    - 网页监控
    - 内容分析

    **端点**: `http://localhost:3000/mcp/web-automation`

  </Accordion>

  <Accordion title="数据处理分组">
    **用途**: 数据操作和分析
    
    **服务器**:
    - `sqlite`: 数据库操作
    - `filesystem`: 文件操作
    - `spreadsheet`: Excel/CSV 处理

    **用例**:
    - 数据分析
    - 报告生成
    - 文件处理
    - 数据库查询

    **端点**: `http://localhost:3000/mcp/data-processing`

  </Accordion>

  <Accordion title="通信分组">
    **用途**: 消息传递和协作
    
    **服务器**:
    - `slack`: Slack 集成
    - `discord`: Discord 机器人
    - `email`: 邮件发送
    - `sms`: 短信通知

    **用例**:
    - 团队通知
    - 客户沟通
    - 警报系统
    - 社交媒体管理

    **端点**: `http://localhost:3000/mcp/communication`

  </Accordion>

  <Accordion title="开发分组">
    **用途**: 软件开发工具
    
    **服务器**:
    - `github`: GitHub 操作
    - `gitlab`: GitLab 集成
    - `docker`: 容器管理
    - `kubernetes`: K8s 操作

    **用例**:
    - 代码部署
    - 仓库管理
    - CI/CD 操作
    - 基础设施管理

    **端点**: `http://localhost:3000/mcp/development`

  </Accordion>

  <Accordion title="AI/ML 分组">
    **用途**: 机器学习和 AI 工具
    
    **服务器**:
    - `openai`: OpenAI API 集成
    - `huggingface`: Hugging Face 模型
    - `vector-db`: 向量数据库操作

    **用例**:
    - 模型推理
    - 数据嵌入
    - 自然语言处理
    - 计算机视觉

    **端点**: `http://localhost:3000/mcp/ai-ml`

  </Accordion>
</AccordionGroup>

{/* ## 分组访问控制

### 访问级别

<Tabs>
  <Tab title="公开">
    **公开分组**:
    - 所有认证用户都可访问
    - 无需额外权限
    - 在分组列表中可见
    - 默认访问级别

    ```json
    {
      "name": "public-tools",
      "accessLevel": "public",
      "servers": ["fetch", "calculator"]
    }
    ```

  </Tab>

  <Tab title="私有">
    **私有分组**:
    - 仅对分组成员可见
    - 需要明确的用户分配
    - 在公开列表中隐藏
    - 管理员控制成员身份

    ```json
    {
      "name": "internal-tools",
      "accessLevel": "private",
      "members": ["user1", "user2"],
      "servers": ["internal-api", "database"]
    }
    ```

  </Tab>

  <Tab title="受限">
    **受限分组**:
    - 基于角色的访问控制
    - 需要特定权限
    - 启用审计日志
    - 限时访问

    ```json
    {
      "name": "admin-tools",
      "accessLevel": "restricted",
      "requiredRoles": ["admin", "operator"],
      "servers": ["system-control", "user-management"]
    }
    ```

  </Tab>
</Tabs>

### 用户管理

将用户分配给分组：

```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 端点：

<Tabs>
  <Tab title="HTTP MCP">
    ```
    http://localhost:3000/mcp/{group-name}
    ```

    示例：
    - `http://localhost:3000/mcp/web-tools`
    - `http://localhost:3000/mcp/data-processing`
    - `http://localhost:3000/mcp/communication`

  </Tab>

  <Tab title="SSE (旧版)">
    ```
    http://localhost:3000/sse/{group-name}
    ```

    示例：
    - `http://localhost:3000/sse/web-tools`
    - `http://localhost:3000/sse/data-processing`
    - `http://localhost:3000/sse/communication`

  </Tab>
</Tabs>

### 分组工具发现

当连接到分组端点时，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` 服务器的工具。

## 动态分组管理

### 向分组添加服务器

<Tabs>
  <Tab title="仪表板">
    1. 在仪表板中导航到分组
    2. 点击"管理服务器"
    3. 选择要添加的其他服务器
    4. 点击"保存更改"
  </Tab>

  <Tab title="API">
    ```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"}'
    ```
  </Tab>
</Tabs>

### 从分组中移除服务器

<Tabs>
  <Tab title="仪表板">
    1. 在仪表板中导航到分组
    2. 点击"管理服务器"
    3. 取消选择要移除的服务器
    4. 点击"保存更改"
  </Tab>

  <Tab title="API">
    ```bash
    curl -X DELETE http://localhost:3000/api/groups/web-tools/servers/server-name \
      -H "Authorization: Bearer YOUR_JWT_TOKEN"
    ```
  </Tab>
</Tabs>

{/* ### 批量服务器更新

一次更新多个服务器：

```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"]
    }
  }
}
``` */}

## 最佳实践

### 分组组织

<Tip>
  **按用例组织**: 根据用户想要完成的任务来组织服务器分组，而不仅仅是技术相似性。
</Tip>

<Tip>
  **保持分组聚焦**: 避免创建包含太多不同工具的分组。更小、更聚焦的分组更有用。
</Tip>

<Tip>
  **使用描述性名称**: 选择能清楚表明分组目的和内容的名称。
</Tip>

{/* ### 安全考虑

<Warning>
  **最小权限原则**: 只给用户访问他们实际需要的分组。
</Warning>

<Warning>
  **敏感工具隔离**: 将敏感工具保存在具有适当访问控制的受限分组中。
</Warning>

<Warning>
  **定期访问审查**: 定期审查分组成员身份并移除不必要的访问权限。
</Warning> */}

### 性能优化

<Info>
  **平衡分组大小**: 非常大的分组可能导致工具发现较慢。考虑拆分为更小的分组。
</Info>

<Info>
  **监控使用情况**: 使用分析来识别哪些分组被大量使用并相应优化。
</Info>

## 故障排除

<AccordionGroup>
  <Accordion title="分组无法访问">
    **检查：**
    - 用户具有适当权限
    - 分组存在且处于活跃状态
    - 分组中的服务器正在运行
    - 网络连接

    **解决方案：**
    1. 验证用户分组成员身份
    2. 检查分组配置
    3. 测试单个服务器连接
    4. 查看访问日志

  </Accordion>

  <Accordion title="分组中缺少工具">
    **可能原因：**
    - 服务器未正确添加到分组
    - 服务器未运行
    - 工具发现失败
    - 缓存问题

    **调试步骤：**
    1. 验证服务器在分组配置中
    2. 检查服务器状态
    3. 强制刷新工具发现
    4. 清除分组缓存

  </Accordion>

  <Accordion title="分组性能问题">
    **常见问题：**
    - 分组中服务器过多
    - 服务器响应慢
    - 网络延迟
    - 资源约束

    **优化方案：**
    1. 拆分大型分组
    2. 监控服务器性能
    3. 实施请求缓存
    4. 使用连接池

  </Accordion>
</AccordionGroup>

## 下一步

<CardGroup cols={2}>
  <Card title="智能路由" icon="route" href="/zh/features/smart-routing">
    跨分组的 AI 驱动工具发现
  </Card>
  <Card title="身份认证" icon="shield" href="/zh/features/authentication">
    用户管理和访问控制
  </Card>
  <Card title="API 参考" icon="code" href="/zh/api-reference/groups">
    完整的分组管理 API
  </Card>
  <Card title="配置" icon="cog" href="/zh/configuration/mcp-settings">
    高级分组配置选项
  </Card>
</CardGroup>
