Skip to main content

MCP 设置配置

本指南说明如何使用 mcp_settings.json 文件和相关配置在 MCPHub 中配置 MCP 服务器。

配置文件概述

MCPHub 使用几个配置文件:
  • mcp_settings.json:主要的 MCP 服务器配置
  • servers.json:服务器元数据和分组
  • .env:环境变量和密钥

基本 MCP 设置结构

mcp_settings.json

示例配置

服务器配置选项

必需字段

可选字段

常见 MCP 服务器示例

Web 和 API 服务器

Fetch 服务器

使用 Playwright 进行网页抓取

会话级客户端隔离(有状态服务器)

默认情况下,MCPHub 为每个服务器仅保持一个上游连接,并在所有下游 MCP 会话间共享。 对于有状态服务器来说,这意味着所有客户端共享同一份状态——以 Playwright 为例,每个会话都会 操作同一个浏览器实例及其标签页。 设置 perSessionClient: true 可以让 MCPHub 改为为每个下游会话创建独立的上游客户端。 每个会话拥有各自的连接(对于 stdio 服务器,还会拥有各自的子进程),在首次工具调用时惰性创建, 并在会话结束时自动销毁。
perSessionClientMCPHub 侧的设置:它控制 MCPHub 打开多少个上游连接。它与 Playwright MCP 自身的 --isolated 标志不同,后者控制 Playwright 侧的浏览器配置隔离。二者天然互补——同时 启用即可获得完全隔离的浏览器会话。
或者使用本地启动并带有 --isolated 标志的 Playwright MCP:
仅对真正持有会话级状态的服务器启用 perSessionClient。它会让上游连接(以及 stdio 子进程) 数量随并发会话数成倍增长,因此对无状态服务器请保持关闭。

文件和系统服务器

文件系统服务器

SQLite 服务器

通信服务器

Slack 服务器

邮件服务器

开发和 API 服务器

GitHub 服务器

Google Drive 服务器

地图和位置服务

高德地图服务器

OpenStreetMap 服务器

高级配置

环境变量替换

MCPHub 支持使用 ${VAR_NAME} 语法进行环境变量替换:
可以使用 ${VAR_NAME:default} 指定默认值:

条件配置

根据环境使用不同配置:

自定义服务器脚本

本地 Python 服务器

本地 Node.js 服务器

服务器元数据配置

servers.json

使用服务器元数据补充 mcp_settings.json

组管理

组配置

访问控制

动态配置

热重载

MCPHub 支持配置热重载:

配置验证

MCPHub 在启动和重新加载时验证配置:

工具结果压缩

MCPHub 可以在工具结果返回 MCP 客户端前,透明压缩较大的文本结果。它适合处理大型日志、diff、搜索输出、JSON 数组或长文本,避免这些内容占用过多模型上下文。 工具结果压缩默认关闭。可以在 设置 → 工具结果压缩 中实时开关,也可以在 systemConfig.toolResultCompression 下配置:
压缩只作用于成功的工具响应。带有 isError: true 的响应会原样返回,非文本内容块会被保留,每个文本块会独立判断是否需要压缩。MCPHub 压缩结果时会在文本开头加入类似下面的标记:
活动日志仍记录上游工具的原始输出,压缩只发生在返回 MCP 客户端之前,因此运维人员仍可在 MCPHub 中查看完整结果。

最佳实践

安全

  1. 对敏感数据使用环境变量
  2. 限制服务器权限

性能

  1. 设置适当的超时
  2. 资源限制

监控

  1. 启用健康检查
  2. 日志配置

故障排除

常见问题

服务器无法启动:检查命令和参数
找不到环境变量:验证 .env 文件
权限错误:检查文件权限和路径

调试配置

启用调试模式进行详细日志记录:

验证错误

常见验证错误和解决方案:
  1. 缺少必需字段:添加 commandargs
  2. 无效超时:使用数字,不是字符串
  3. 找不到环境变量:检查 .env 文件
  4. 找不到命令:验证安装和 PATH
这个全面的指南涵盖了在 MCPHub 中为各种用例和环境配置 MCP 服务器的所有方面。