Skip to main content

概述

MCPHub 的服务器管理系统允许您从单个仪表板集中配置、监控和控制多个 MCP(模型上下文协议)服务器。所有更改都会实时应用,无需重启服务器。

添加 MCP 服务器

通过仪表板

  1. 访问仪表板: 导航到 http://localhost:3000 并登录
  2. 点击”添加服务器”: 位于服务器部分
  3. 填写服务器详细信息:
    • 名称: 服务器的唯一标识符
    • 命令: 可执行命令(例如 npxuvxpython
    • 参数: 命令参数数组
    • 环境变量: 环境设置的键值对
    • 工作目录: 命令的可选工作目录

通过配置文件

编辑您的 mcp_settings.json 文件:
{
  "mcpServers": {
    "server-name": {
      "command": "command-to-run",
      "args": ["arg1", "arg2"],
      "env": {
        "API_KEY": "your-api-key",
        "CONFIG_VALUE": "some-value"
      },
      "cwd": "/optional/working/directory"
    }
  }
}

通过 API

使用 REST API 以编程方式添加服务器:
curl -X POST http://localhost:3000/api/servers \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "name": "fetch-server",
    "command": "uvx",
    "args": ["mcp-server-fetch"],
    "env": {}
  }'

流行的 MCP 服务器示例

提供网页抓取和 HTTP 请求功能:
{
  "fetch": {
    "command": "uvx",
    "args": ["mcp-server-fetch"]
  }
}
可用工具:
  • fetch: 发起 HTTP 请求
  • fetch_html: 抓取网页
  • fetch_json: 从 API 获取 JSON 数据
用于网页交互的浏览器自动化:
{
  "playwright": {
    "command": "npx",
    "args": ["@playwright/mcp@latest", "--headless"]
  }
}
可用工具:
  • playwright_navigate: 导航到网页
  • playwright_screenshot: 截取屏幕截图
  • playwright_click: 点击元素
  • playwright_fill: 填写表单
文件和目录管理:
{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
  }
}
可用工具:
  • read_file: 读取文件内容
  • write_file: 写入文件
  • create_directory: 创建目录
  • list_directory: 列出目录内容
数据库操作:
{
  "sqlite": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/database.db"]
  }
}
可用工具:
  • execute_query: 执行 SQL 查询
  • describe_tables: 获取表结构
  • create_table: 创建新表
Slack 工作空间集成:
{
  "slack": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-slack"],
    "env": {
      "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
      "SLACK_TEAM_ID": "T1234567890"
    }
  }
}
可用工具:
  • send_slack_message: 发送消息到频道
  • list_slack_channels: 列出可用频道
  • get_slack_thread: 获取线程消息
GitHub 仓库操作:
{
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token"
    }
  }
}
可用工具:
  • create_or_update_file: 创建/更新仓库文件
  • search_repositories: 搜索 GitHub 仓库
  • create_issue: 创建问题
  • create_pull_request: 创建拉取请求
Google Drive 文件操作:
{
  "gdrive": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-gdrive"],
    "env": {
      "GDRIVE_CLIENT_ID": "your-client-id",
      "GDRIVE_CLIENT_SECRET": "your-client-secret",
      "GDRIVE_REDIRECT_URI": "your-redirect-uri"
    }
  }
}
可用工具:
  • gdrive_search: 搜索文件和文件夹
  • gdrive_read: 读取文件内容
  • gdrive_create: 创建新文件
中国地图和位置服务:
{
  "amap": {
    "command": "npx",
    "args": ["-y", "@amap/amap-maps-mcp-server"],
    "env": {
      "AMAP_MAPS_API_KEY": "your-api-key"
    }
  }
}
可用工具:
  • search_location: 搜索位置
  • get_directions: 获取路线指引
  • reverse_geocode: 将坐标转换为地址

服务器生命周期管理

启动服务器

服务器会在以下情况下自动启动:
  • MCPHub 启动时
  • 通过仪表板或 API 添加服务器时
  • 服务器配置更新时
  • 手动重启已停止的服务器时

停止服务器

您可以通过以下方式停止服务器:
  • 通过仪表板: 切换服务器状态开关
  • 通过 API: 发送 POST 请求到 /api/servers/{name}/toggle
  • 自动停止: 服务器崩溃或遇到错误时会自动停止

重启服务器

服务器会在以下情况下自动重启:
  • 配置更改时
  • 环境变量更新后
  • 通过仪表板或 API 手动触发时

服务器状态监控

状态指示器

每个服务器都显示状态指示器:
  • 🟢 运行中: 服务器处于活动状态并响应
  • 🟡 启动中: 服务器正在初始化
  • 🔴 已停止: 服务器未运行
  • ⚠️ 错误: 服务器遇到错误

实时日志

实时查看服务器日志:
  1. 仪表板日志: 点击服务器查看其日志
  2. API 日志: 通过 /api/logs 端点访问日志
  3. 流式日志: 通过 WebSocket 订阅日志流

健康检查

MCPHub 自动执行健康检查:
  • 初始化检查: 验证服务器成功启动
  • 工具发现: 确认检测到可用工具
  • 响应检查: 测试服务器响应性
  • 资源监控: 跟踪 CPU 和内存使用情况

配置管理

环境变量

服务器可以使用环境变量进行配置:
{
  "server-name": {
    "command": "python",
    "args": ["server.py"],
    "env": {
      "API_KEY": "${YOUR_API_KEY}",
      "DEBUG": "true",
      "MAX_CONNECTIONS": "10"
    }
  }
}
环境变量展开:
  • ${VAR_NAME}: 展开为环境变量值
  • ${VAR_NAME:-default}: 如果变量未设置则使用默认值
  • ${VAR_NAME:+value}: 如果变量已设置则使用指定值

命令变体

指定服务器命令的不同方式:
  • npm/npx
  • Python/uvx
{
  "npm-server": {
    "command": "npx",
    "args": ["-y", "package-name", "--option", "value"]
  }
}

高级功能

热重载

MCPHub 支持服务器配置的热重载:
  1. 仪表板更新: 立即应用通过 Web 界面进行的更改
  2. API 更新: 通过 REST API 调用进行实时更新
  3. 零停机时间: 优雅的服务器重启,不影响其他服务器

故障排除

检查以下项目:
  • 命令在 PATH 中可用
  • 已设置所有必需的环境变量
  • 工作目录存在且可访问
  • 网络端口未被阻塞
  • 依赖项已安装
调试步骤:
  1. 在仪表板中检查服务器日志
  2. 在终端中手动测试命令
  3. 验证环境变量展开
  4. 检查文件权限
常见原因:
  • 无效的配置参数
  • 缺少 API 密钥或凭据
  • 超出资源限制
  • 依赖项冲突
解决方案:
  1. 查看服务器日志中的错误消息
  2. 使用最小配置进行测试
  3. 验证所有凭据和 API 密钥
  4. 检查系统资源可用性
可能的问题:
  • 服务器未完全初始化
  • 工具发现超时
  • 通信协议不匹配
  • 服务器报告错误
调试步骤:
  1. 等待服务器初始化完成
  2. 检查服务器日志中的工具注册消息
  3. 测试与服务器的直接通信
  4. 验证 MCP 协议兼容性

下一步

I