MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

Enterprise MCP Server Management Platform - Multi-tenancy, RBAC, Audit Logging & Cost Tracking

创建于 4/23/2026
更新于 about 3 hours ago
Repository documentation and setup instructions

MCP Hub - 企业级 MCP 服务治理平台

Go Version License Status

基于 Anthropic MCP 协议的企业级服务治理平台

English | 简体中文


📖 简介

MCP Hub 是一个企业级的 Model Context Protocol (MCP) 服务治理平台,提供统一的 MCP Server 管理、权限控制、审计日志和成本追踪功能。

核心特性

  • 🚀 统一管理 - 集中管理所有 MCP Server 的注册、配置和生命周期
  • 🔐 权限控制 - 基于 RBAC 的细粒度权限管理,支持 JWT 认证
  • 📊 多租户 - 完整的工作区隔离,支持团队协作
  • 📝 审计日志 - 完整的操作审计追踪
  • 💰 成本追踪 - API 调用成本统计和分析
  • 🗄️ 轻量级 - 使用 SQLite 数据库,无需额外依赖
  • 🔌 协议适配 - 完整的 MCP 协议支持

🏗️ 架构设计

┌─────────────────────────────────────────────────────────┐
│                      API Gateway                         │
│              (RESTful API + JWT Auth)                    │
└─────────────────────────────────────────────────────────┘
                            │
        ┌───────────────────┼───────────────────┐
        │                   │                   │
┌───────▼────────┐  ┌──────▼──────┐  ┌────────▼────────┐
│ Permission     │  │  Workspace  │  │  Server         │
│ Engine         │  │  Manager    │  │  Manager        │
│ (RBAC + JWT)   │  │  (Multi-    │  │  (Lifecycle)    │
│                │  │   Tenant)   │  │                 │
└────────────────┘  └─────────────┘  └─────────────────┘
        │                   │                   │
        └───────────────────┼───────────────────┘
                            │
        ┌───────────────────┼───────────────────┐
        │                   │                   │
┌───────▼────────┐  ┌──────▼──────┐  ┌────────▼────────┐
│ Audit Logger   │  │ Cost        │  │  Protocol       │
│                │  │ Tracker     │  │  Adapter        │
└────────────────┘  └─────────────┘  └─────────────────┘
                            │
                    ┌───────▼────────┐
                    │  SQLite Store  │
                    │  (Data Layer)  │
                    └────────────────┘

🚀 快速开始

前置要求

  • Go 1.20 或更高版本
  • Git

安装步骤

1. 克隆仓库

git clone https://github.com/yourusername/mcp-hub.git
cd mcp-hub

2. 安装依赖

# 如果在中国大陆,建议配置代理
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=off

# 下载依赖
go mod download

3. 运行服务

# 直接运行
go run cmd/server/main.go

# 或者编译后运行
go build -o mcp-hub cmd/server/main.go
./mcp-hub

服务将在 http://localhost:8080 启动

4. 验证安装

curl http://localhost:8080/health
# 响应: {"status":"healthy"}

📚 使用指南

默认凭据

首次启动时,系统会自动创建管理员账户:

  • 用户名: admin
  • 密码: admin

⚠️ 生产环境请立即修改默认密码!

API 使用示例

1. 用户登录

curl -X POST http://localhost:8080/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "username": "admin",
    "password": "admin"
  }'

响应:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "id": "user_admin",
    "username": "admin",
    "email": "admin@mcp-hub.local"
  }
}

2. 创建工作区

TOKEN="your-jwt-token"

curl -X POST http://localhost:8080/api/v1/workspaces \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "我的工作区",
    "description": "团队协作空间"
  }'

3. 注册 MCP Server

curl -X POST http://localhost:8080/api/v1/servers \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "文件系统服务",
    "source": "npm",
    "version": "1.0.0",
    "workspace_id": "your-workspace-id",
    "config": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/files"]
    }
  }'

4. 查询 Servers

curl http://localhost:8080/api/v1/servers?workspace_id=your-workspace-id \
  -H "Authorization: Bearer $TOKEN"

5. 启动 Server

curl -X POST http://localhost:8080/api/v1/servers/{server_id}/start \
  -H "Authorization: Bearer $TOKEN"

6. 查看审计日志

curl "http://localhost:8080/api/v1/audit/logs?workspace_id=your-workspace-id&limit=50" \
  -H "Authorization: Bearer $TOKEN"

7. 查看成本统计

curl "http://localhost:8080/api/v1/cost/stats?workspace_id=your-workspace-id&start_time=2024-01-01T00:00:00Z&end_time=2024-12-31T23:59:59Z" \
  -H "Authorization: Bearer $TOKEN"

🔧 配置说明

环境变量

| 变量名 | 说明 | 默认值 | |--------|------|--------| | PORT | 服务监听端口 | 8080 | | JWT_SECRET | JWT 签名密钥 | default-secret-change-in-production | | MCP_HUB_DATA_DIR | 数据存储目录 | ~/.mcp-hub/data |

配置示例

# Linux/Mac
export PORT=3000
export JWT_SECRET="your-super-secret-key-change-me"
export MCP_HUB_DATA_DIR="/var/lib/mcp-hub"

# Windows
set PORT=3000
set JWT_SECRET=your-super-secret-key-change-me
set MCP_HUB_DATA_DIR=C:\mcp-hub\data

📡 API 端点

认证相关

| 方法 | 路径 | 说明 | |------|------|------| | POST | /api/v1/auth/login | 用户登录 | | POST | /api/v1/auth/logout | 用户登出 | | POST | /api/v1/auth/refresh | 刷新 Token |

用户管理

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/v1/users | 列出用户 | | POST | /api/v1/users | 创建用户 | | GET | /api/v1/users/{id} | 获取用户详情 | | PUT | /api/v1/users/{id} | 更新用户 | | DELETE | /api/v1/users/{id} | 删除用户 |

工作区管理

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/v1/workspaces | 列出工作区 | | POST | /api/v1/workspaces | 创建工作区 | | GET | /api/v1/workspaces/{id} | 获取工作区详情 | | PUT | /api/v1/workspaces/{id} | 更新工作区 | | DELETE | /api/v1/workspaces/{id} | 删除工作区 |

Server 管理

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/v1/servers | 列出 Servers | | POST | /api/v1/servers | 注册 Server | | GET | /api/v1/servers/{id} | 获取 Server 详情 | | PUT | /api/v1/servers/{id} | 更新 Server | | DELETE | /api/v1/servers/{id} | 删除 Server | | POST | /api/v1/servers/{id}/start | 启动 Server | | POST | /api/v1/servers/{id}/stop | 停止 Server |

审计日志

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/v1/audit/logs | 查询审计日志 |

成本统计

| 方法 | 路径 | 说明 | |------|------|------| | GET | /api/v1/cost/stats | 获取成本统计 |

系统

| 方法 | 路径 | 说明 | |------|------|------| | GET | /health | 健康检查 |


🔐 权限系统

内置角色

| 角色 | 权限 | |------|------| | admin | 完全访问权限 | | developer | Server 管理权限 | | viewer | 只读权限 |

权限矩阵

| 资源 | admin | developer | viewer | |------|-------|-----------|--------| | 用户管理 | ✅ | ❌ | ❌ | | 工作区管理 | ✅ | ✅ | ❌ | | Server 管理 | ✅ | ✅ | ❌ | | 查看数据 | ✅ | ✅ | ✅ | | 审计日志 | ✅ | ✅ | ✅ |


🗄️ 数据库结构

核心表

  • users - 用户信息
  • roles - 角色定义
  • user_roles - 用户角色关联
  • workspaces - 工作区
  • servers - MCP Server 注册信息
  • audit_logs - 审计日志
  • cost_records - 成本记录

详细的数据库 Schema 请参考 internal/datastore/sqlite.go


🧪 测试

运行测试

# 运行所有测试
go test ./...

# 运行单元测试
go test ./tests/unit/...

# 运行集成测试
go test ./tests/integration/...

# 运行 E2E 测试
go test ./tests/e2e/...

# 生成覆盖率报告
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out

测试报告

查看完整的测试报告:RUNTIME_TEST_REPORT.md


📦 部署

Docker 部署

# Dockerfile
FROM golang:1.20-alpine AS builder

WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o mcp-hub cmd/server/main.go

FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/mcp-hub .

EXPOSE 8080
CMD ["./mcp-hub"]
# 构建镜像
docker build -t mcp-hub:latest .

# 运行容器
docker run -d \
  -p 8080:8080 \
  -e JWT_SECRET=your-secret-key \
  -v /path/to/data:/root/.mcp-hub/data \
  --name mcp-hub \
  mcp-hub:latest

Systemd 服务

# /etc/systemd/system/mcp-hub.service
[Unit]
Description=MCP Hub Service
After=network.target

[Service]
Type=simple
User=mcp-hub
WorkingDirectory=/opt/mcp-hub
ExecStart=/opt/mcp-hub/mcp-hub
Restart=on-failure
Environment="JWT_SECRET=your-secret-key"
Environment="PORT=8080"

[Install]
WantedBy=multi-user.target
# 启动服务
sudo systemctl daemon-reload
sudo systemctl enable mcp-hub
sudo systemctl start mcp-hub
sudo systemctl status mcp-hub

🛠️ 开发指南

项目结构

mcp-hub/
├── cmd/
│   └── server/          # 主程序入口
│       └── main.go
├── internal/
│   ├── api/             # API 网关层
│   ├── audit/           # 审计日志
│   ├── cost/            # 成本追踪
│   ├── datastore/       # 数据持久层
│   ├── permission/      # 权限引擎
│   ├── protocol/        # MCP 协议适配
│   ├── server/          # Server 管理
│   └── workspace/       # 工作区管理
├── tests/
│   ├── unit/            # 单元测试
│   ├── integration/     # 集成测试
│   └── e2e/             # 端到端测试
├── go.mod
├── go.sum
└── README.md

添加新功能

  1. internal/ 下创建新模块
  2. 实现业务逻辑
  3. internal/api/ 中添加 API 端点
  4. 编写测试用例
  5. 更新文档

代码规范

  • 遵循 Go 官方代码规范
  • 使用 gofmt 格式化代码
  • 使用 golint 检查代码质量
  • 编写单元测试,保持测试覆盖率 > 80%

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

提交规范

feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
chore: 构建/工具链相关

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🙏 致谢


📞 联系方式


🗺️ 路线图

v1.0 (当前版本)

  • ✅ 核心功能实现
  • ✅ RESTful API
  • ✅ JWT 认证
  • ✅ RBAC 权限控制
  • ✅ 审计日志
  • ✅ 成本追踪

v1.1 (计划中)

  • ⏸️ Web 管理界面
  • ⏸️ CLI 命令行工具
  • ⏸️ Server 健康检查
  • ⏸️ 性能监控

v2.0 (未来)

  • ⏸️ PostgreSQL 支持
  • ⏸️ 分布式部署
  • ⏸️ 插件系统
  • ⏸️ 监控告警

⭐ 如果这个项目对你有帮助,请给个 Star!⭐

Made with ❤️ by MCP Hub Team

快速设置
此服务器的安装指南

安装命令 (包未发布)

git clone https://github.com/Mhunzi/MCP_hub
手动安装: 请查看 README 获取详细的设置说明和所需的其他依赖项。

Cursor 配置 (mcp.json)

{ "mcpServers": { "mhunzi-mcp-hub": { "command": "git", "args": [ "clone", "https://github.com/Mhunzi/MCP_hub" ] } } }