Token导航 LogoToken导航TokenDH.com
Arka MCP Gateway logo
运维云端stdio官方级别未说明来源级核验

Arka MCP Gateway

MCP Server

Arka MCP Gateway是一个集中式网关,用于管理和连接多个MCP服务器,提供安全、可扩展的访问,包括SSO认证、会话隔离和集中管理功能。

工具数

0

提示词数

0

GitHub Stars

51

资源数

0
Python云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

KenisLabs

提供方

KenisLabs

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

详细介绍

Arka MCP网关

用于管理和连接到多个MCP(模型上下文协议)服务器的集中式网关。通过SSO身份验证、会话隔离和集中管理,提供对MCP服务器的安全、可扩展的访问。

![Discord](https://discord.gg/YVBgb8wh) ![Website](https://www.arka.kenislabs.com) ](https://github.com/KenisLabs/arka-mcp-gateway) ![License](LICENSE)

📢 社区版 -这是免费的开源版本。有关Azure AD SSO、团队、AI护栏、白标签等企业功能,请参阅 COMMERCIAL.md

功能(社区版)

  • 🔐 GitHub OAuth -使用GitHub进行用户身份验证
  • 👤 管理面板 -创建和管理用户
  • 🎯 MCP服务器管理 -配置GitHub、Gmail、谷歌任务、Slack等
  • 🔑 OAuth提供者管理 -每台服务器的集中式OAuth凭据
  • 🛠️ 工具管理 -在组织范围内启用/禁用工具
  • 🔒 每用户会话隔离 -每个MCP服务器的独立用户上下文
  • 👥 用户黑板 -连接并授权MCP服务器
  • 🚀 Docker编写部署 -单命令部署
  • 📚 API 文档 -完整的OpenAPI/Swagger文档

企业版

需要更高级的功能吗?查看我们的 企业版 其中包括:

  • Azure AD/SAML单点登录 -企业身份集成
  • 👥 团队和小组 -组织用户,基于团队的权限
  • 🛡️ AI护栏 -内容过滤、PII检测、DLP
  • 🎨 白色标签 -自定义品牌、域名、删除Arka品牌
  • 📊 高级权限 -每个用户/团队工具覆盖
  • 📈 审计日志 -完全合规性跟踪,SIEM集成
  • 💰 成本管理 -使用分析、预算控制
  • 🔒 企业安全 -CMEK、MFA、IP控制
  • 🚀 24/7支持 -SLA优先支持

了解有关企业版的更多信息→

快速开始

先决条件

  • Docker和Docker Compose
  • 域名(用于生产)或localhost(用于本地开发)

1.克隆存储库

git clone https://github.com/KenisLabs/arka-mcp-gateway.git
cd arka-mcp-gateway

2.生成秘密

# Generate JWT secret key (save this output)
openssl rand -hex 32

# Generate encryption key (save this output)
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

3.配置环境

创建 .env.production 根目录中的文件:

# Database Configuration
POSTGRES_DB=arka_mcp_gateway
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_secure_password
POSTGRES_PORT=5432

# JWT Configuration (use output from openssl command)
ARKA_JWT_SECRET_KEY=
ARKA_JWT_ALGORITHM=HS256
ARKA_JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
ARKA_JWT_REFRESH_TOKEN_EXPIRE_DAYS=7

# Encryption (use output from python command)
ARKA_ENCRYPTION_KEY=

# Application URLs
# For local development:
ARKA_FRONTEND_URL=http://localhost
ARKA_BACKEND_URL=http://localhost:8000
# For production:
# ARKA_FRONTEND_URL=https://your-domain.com
# ARKA_BACKEND_URL=https://your-domain.com

ARKA_WORKER_URL=http://worker:8001

# GitHub User OAuth (for user login)
# Create OAuth App at: https://github.com/settings/developers
# Callback URL: http://localhost:8000/auth/github/callback
ARKA_GITHUB_USER_OAUTH_CLIENT_ID=your_github_oauth_client_id
ARKA_GITHUB_USER_OAUTH_CLIENT_SECRET=your_github_oauth_client_secret

# Optional: Azure OAuth (for user login)
# ARKA_AZURE_CLIENT_ID=your_azure_client_id
# ARKA_AZURE_CLIENT_SECRET=your_azure_client_secret
# ARKA_AZURE_TENANT_ID=your_azure_tenant_id

# Ports
FRONTEND_PORT=80
BACKEND_PORT=8000
WORKER_PORT=8001

4.启动应用程序

docker-compose --env-file .env.production -f docker-compose.yml up -d

5.Bootstrap管理员用户

# Create the initial admin user
curl -X POST http://localhost:8000/auth/admin/bootstrap

# Response will contain admin credentials - save them securely!
# Default: admin@example.com / 

6.访问申请

  • 前端: http://localhost
  • 管理员登录:使用引导步骤中的凭据
  • API文件: http://localhost:8000/docs

建筑

┌─────────────┐
│   Nginx     │  ← Frontend (React + Vite)
│  (Port 80)  │
└──────┬──────┘
       │
       ├── /api/* ──────────────┐
       │                        ▼
       │              ┌──────────────┐      ┌──────────────┐
       │              │   Backend    │──────│  PostgreSQL  │
       │              │  (Port 8000) │      │  (Port 5432) │
       │              └──────┬───────┘      └──────────────┘
       │                     │
       │                     │
       └── /mcp ────────────┘
                             │
                             ▼
                   ┌──────────────┐
                   │    Worker    │  ← MCP Server Processes
                   │  (Port 8001) │
                   └──────┬───────┘
                          │
                ┌─────────┴────────┬──────────┬─────────┐
                ▼                  ▼          ▼         ▼
           GitHub MCP        Gmail MCP   Slack MCP    ...

配置

为用户登录设置OAuth

GitHub OAuth(推荐)

  1. 首选https://github.com/settings/developers
  2. 创建新的OAuth应用程序
  3. 设置这些值:

- 应用程序名称:Arka MCP网关 - 你的家园: http://localhost (或您的域名) - 授权回调URL: http://localhost:8000/auth/github/callback

  1. 将客户端ID和客户端密码复制到 .env.production

Azure OAuth(可选)

  1. 转到Azure门户→ 应用程序注册
  2. 创建新注册
  3. 添加重定向URI: http://localhost:8000/auth/azure/callback
  4. 创建客户端密钥
  5. 将值复制到 .env.production

配置MCP服务器OAuth

重要提示: 必须通过管理UI配置所有MCP服务器OAuth凭据。MCP服务器不支持环境变量。

以管理员身份登录后:

  1. 引导到 管理员仪表板MCP服务器管理
  2. 点击 添加MCP服务器 或配置现有服务器
  3. 为每个MCP服务器添加OAuth凭据:

- GitHub MCP:需要GitHub OAuth应用程序 - Gmail MCP:需要Google Cloud OAuth凭据 - 谷歌日历MCP:需要Google Cloud OAuth凭据 - 谷歌任务MCP:需要Google Cloud OAuth凭据 - 松弛MCP:需要Slack应用程序凭据

添加新的MCP服务器

  1. 以管理员身份登录
  2. 首选 MCP服务器管理
  3. 点击 浏览目录 查看可用服务器
  4. 选择服务器并配置OAuth凭据
  5. 为您的组织启用服务器
  6. 然后,用户可以授权并连接到服务器

本地开发

后端开发

cd backend

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run backend
uvicorn main:app --reload --host 0.0.0.0 --port 8000

前端开发

cd frontend

# Install dependencies
npm install

# Run dev server
npm run dev

数据库(地方发展)

docker run -d \
  --name arka-postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=arka_mcp_gateway \
  -p 5432:5432 \
  postgres:16-alpine

故障排除

集装箱问题

# View logs
docker-compose logs backend
docker-compose logs frontend
docker-compose logs postgres

# Restart services
docker-compose restart backend

# Rebuild after code changes
docker-compose build frontend
docker-compose up -d

常见问题

1.数据库连接失败

# Check if postgres is running
docker-compose ps

# Check database logs
docker-compose logs postgres

2.OAuth回调错误

  • 验证OAuth提供程序设置中的回调URL是否与您的 ARKA_BACKEND_URL
  • GitHub:应该是 {BACKEND_URL}/auth/github/callback
  • 对于MCP服务器:应该是 {BACKEND_URL}/servers/{server-id}/auth-callback

3.管理员引导失败

# Check if admin already exists in database
docker-compose exec postgres psql -U postgres -d arka_mcp_gateway -c "SELECT email, role FROM users WHERE role='admin';"

# If admin exists, you can reset password via database

4.前端无法到达后端

  • 在中检查nginx配置 frontend/nginx.conf
  • 验证后端容器是否正在运行: docker-compose ps backend
  • 检查后端运行状况: curl http://localhost:8000/health

技术栈

后端

  • 快速API -现代异步Python web框架
  • PostgreSQL -主数据库
  • SQLAlchemy -异步ORM
  • JWT -基于令牌的身份验证
  • 密码学 -OAuth机密的Fernet加密
  • 乌维科恩 -ASGI服务器

前端

  • 反应18 -UI库
  • 维特 -构建工具和开发服务器
  • 顺风 CSS -造型
  • shadcn/ui -组件库
  • React路由器 -客户端路由

基础设施

  • 码头工人 -集装箱化
  • Docker Compose -多容器编排
  • Nginx -反向代理和静态文件服务

安全

  • JWT代币:仅支持HTTP的Cookie可防止XSS攻击
  • OAuth凭据:使用Fernet(AES-128)在静止时加密
  • 密码散列:bcrypt用于管理员密码
  • 跨域资源共享:仅限于前端URL
  • 速率限制:应用于身份验证端点
  • HTTPS就绪:在生产环境中使用SSL/TLS

项目结构

arka-mcp-gateway/
├── backend/                 # FastAPI backend
│   ├── main.py             # Application entry point
│   ├── auth/               # Authentication modules
│   ├── gateway/            # MCP gateway logic
│   ├── database.py         # Database configuration
│   └── requirements.txt    # Python dependencies
├── frontend/               # React frontend
│   ├── src/
│   │   ├── pages/         # Page components
│   │   ├── components/    # Reusable components
│   │   └── lib/           # Utilities
│   ├── nginx.conf         # Nginx configuration
│   └── package.json       # Node dependencies
├── shared/                # Shared configuration
│   └── mcp_servers_catalog.json
├── docker-compose.yml     # Docker orchestration
├── .env.production        # Production environment variables
└── README.md             # This file

贡献

欢迎投稿!拜托:

  1. 复刻仓库
  2. 创建要素分支: git checkout -b feature/your-feature
  3. 提交更改: git commit -am 'Add feature'
  4. 推送到分支: git push origin feature/your-feature
  5. 提交拉取请求

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

支持

______________________________________________________________________

内置于❤️ KenisLabs

目录标签

目录标签

Python云端部署Docker网关管理本地部署SSO认证会话隔离集中管理MCP服务器

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP