项目介绍
MCPHub 是一个位于 AI 客户端和多个 MCP 服务器之间的自托管网关与控制面。它把全部服务器、分组、单服务器和智能路由分别暴露为统一端点,并在同一网页控制台中管理认证、可见性、用户凭据、运行状态与日志。它更像团队级 MCP 基础设施,而不是单一工具服务器。采用前应先划定上游服务器权限、凭据存储、活动日志和网络暴露范围。

核心功能
统一 MCP 端点
把已配置服务器聚合到 /mcp,也可以通过 /mcp/{group} 和 /mcp/{server} 将访问范围限制到分组或单台服务器。
认证与访问控制
支持 Bearer Key、JWT、MCP OAuth 与 Better Auth,并可把服务器可见性设置为私有、分组或公开。
按用户隔离凭据
管理员可为服务器声明环境变量或请求头凭据槽,用户各自提交的值经 AES-256-GCM 加密存储并在运行时隔离注入。
智能工具路由
可索引工具名称、描述和参数,在 $smart 端点用向量相似度检索相关工具,并支持按分组限定搜索范围。
控制台与运行观察
网页控制台提供服务器状态、日志和活动视图;/health 无需认证,数据库模式可持久化工具调用活动。
安装与连接
官方推荐先用 Docker 启动单实例并持久化 data 目录,再在首次登录后添加最小权限的上游服务器;只有确实需要智能路由或多实例时再引入 PostgreSQL、pgvector 和嵌入服务。
让 AI Agent 帮你安装
把这段话发送给 Codex、Claude Code 或其他可以操作本地环境的 AI Agent。
请帮我部署 MCPHub v1.0.36。项目地址:https://github.com/samanhappy/mcphub。先阅读 README、quickstart、authentication、per-user-credentials 和 monitoring 文档。优先使用 Docker,将 data 目录持久化;为 ADMIN_PASSWORD、JWT_SECRET 和 MCPHUB_CREDENTIAL_ENCRYPTION_KEY 生成强随机值并通过秘密管理方式注入,不要把值写进版本库或聊天记录。启动后只添加一个低权限测试 MCP 服务器,检查 /health、管理员登录、服务器列表和工具列表。不要启用 skipAuth,也不要启用智能路由或连接生产凭据,除非我明确授权。遇到开放公网端口、挂载敏感目录、写入现有配置、调用外部嵌入服务或要求额外权限时先询问我。- Docker 可用,宿主机 3000 端口未被占用
- 为管理控制台准备强随机密码并通过环境或秘密管理器注入
- 如挂载配置文件,在当前目录准备 mcp_settings.json
- 确认要接入的上游 MCP 服务器所需文件、命令、网络和凭据权限
- 智能路由另需 PostgreSQL、pgvector 与兼容的嵌入服务
docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json -v ./data:/app/data samanhappy/mcphub- 1准备最小配置与秘密
确认端口和 data 持久化目录,为管理员密码、JWT 会话和用户凭据加密分别准备随机秘密;不要提交到 Git。
- 2启动持久化 Docker 实例
按获取区的 Docker 命令启动 MCPHub;如暂时没有自定义服务器,可先不挂载 mcp_settings.json,但应保留 data 卷。
- 3登录并添加低权限服务器
访问 http://localhost:3000,以管理员账号登录,在 Servers 页面添加一台无需生产凭据的测试服务器,并限制其可见性。
- 4连接客户端并验证
让 MCP 客户端连接 http://localhost:3000/mcp 或范围更小的分组、服务器端点,确认能列出并调用预期工具,且未暴露其他服务器。
- 5按需升级运行模式
仅在需要多实例、持久活动、Better Auth 或智能路由时迁移到 PostgreSQL;启用智能路由前审查嵌入服务的数据处理政策。
容器启动后访问 http://localhost:3000,使用首次启动日志中的管理员密码或预设密码登录;添加一个最小测试服务器,再运行 `mcphub servers list` 和 `mcphub tools list`。能看到该服务器及其工具,并且 /health 返回健康状态,才算基础安装成功。
- 未设置 ADMIN_PASSWORD 时,首次启动会在日志中生成随机管理员密码;应立即保存并避免把日志暴露给无关人员。
- 生产环境显式设置 JWT_SECRET,否则重启会使会话失效,多副本也无法共享会话。
- 凭据加密密钥必须持久化和备份;丢失后已有个人凭据无法解密。
- 不要在可被非受信用户访问的环境启用 skipAuth。
使用场景
团队统一 MCP 入口
多个客户端只维护一个网关地址,由管理员集中更新服务器配置、别名和可见性。
按团队或环境分组
通过 /mcp/{group} 把开发、测试、生产或部门工具隔离到不同端点和访问范围。
个人凭据共享服务器定义
团队共享同一上游服务器模板,每位用户只提交自己的 API Key 或请求头,运行时互不混用。
大型工具目录的语义发现
在 PostgreSQL 模式中通过 $smart 根据自然语言查询检索相关工具,并用渐进披露减少完整参数模式占用的上下文。
使用评价
MCPHub 的价值在于把分散的 MCP 服务器变成可集中治理的共享基础设施。统一端点、分组、按用户凭据和清晰的 Docker 路径让它适合小团队逐步落地;代价是网关会集中承载高权限工具、秘密和调用内容,运维与审计责任也随之集中。当前仓库活跃且 v1.0.36 针对凭据和稳定性持续修复,但活跃度不能替代独立安全评估。
值得一试的地方
- 覆盖 stdio、SSE 与 Streamable HTTP 三类上游传输
- 同时提供全局、分组、单服务器和智能路由端点
- 按用户加密凭据降低共享配置中的秘密串用风险
- Docker、npm 与本地开发路径都有仓库文档
- Apache-2.0 许可证明确,近期发布和提交活跃
使用前要知道
- 缺少 SECURITY.md 和公开漏洞报告流程
- 数据库活动表会持久化完整请求输入与响应输出
- 智能路由依赖数据库和外部或自托管嵌入服务
- 内建观察能力不等同于完整指标、追踪和告警体系
- 集中式网关一旦配置过宽,会放大上游 MCP 权限风险
README
MCPHub
Overview
MCPHub 是连接 AI 客户端与多个 MCP 服务器的自托管网关,集中提供端点聚合、分组路由、访问控制、凭据隔离、运行日志和可选的向量智能路由。 Self-hosted MCP gateway and control plane for connecting, controlling, and operating MCP servers.
Getting started
- 官方推荐先用 Docker 启动单实例并持久化 data 目录,再在首次登录后添加最小权限的上游服务器;只有确实需要智能路由或多实例时再引入 PostgreSQL、pgvector 和嵌入服务。
- 项目定位为自托管 MCP 网关与控制面,支持将全部服务器、指定分组、单台服务器或智能路由暴露为独立 MCP 端点。
- 服务器可通过 stdio、SSE 或 Streamable HTTP 接入;控制台提供服务器与分组管理、别名、访问控制、日志、健康状态和热更新。
- 容器启动后访问 http://localhost:3000,使用首次启动日志中的管理员密码或预设密码登录;添加一个最小测试服务器,再运行 `mcphub servers list` 和 `mcphub tools list`。能看到该服务器及其工具,并且 /health 返回健康状态,才算基础安装成功。
Configuration
docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json -v ./data:/app/data samanhappy/mcphub在 GitHub 阅读完整 README →