多租户MCP网关

logl.ai平台的多租户MCP网关,支持动态MCP编排和管理,适用于企业级应用集成和工作流自动化。

  • by tk-logl
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 tk-logl/logl-mcp-gateway

使用说明

logl MCP网关

多租户MCP网关,为logl.ai平台提供动态MCP编排。

🌟 特性

  • 多租户支持:使用基于角色的访问控制完成工作区隔离
  • 动态MCP注册表:在运行时添加、删除和管理MCP
  • 内置MCP:ClickUp、谷歌日历、Slack、Zoho Mail、黑曜石、n8n
  • 外部MCP支持:连接到任何MCP服务器(HTTP、Stdio、WebSocket)
  • 权限系统:精细的用户和工作区级权限
  • 跨平台:适用于任何设备/操作系统的HTTP+SSE传输
  • 管理员仪表板:面向管理员的全面管理API
  • 健康监测:自动健康检查和重新连接
  • 速率限制:每个用户和每个工作区的费率限制
  • 审计日志:完成活动跟踪

🏗️ 建筑

logl-mcp-gateway/
├── Gateway Core (HTTP + SSE)
├── MCP Registry & Discovery
├── Connection Manager (HTTP, Stdio, WebSocket)
├── Built-in MCPs
│   ├── ClickUp (5 tools)
│   ├── Google Calendar (4 tools)
│   ├── Slack (4 tools)
│   ├── Zoho Mail (4 tools)
│   ├── Obsidian (5 tools)
│   ├── n8n (5 tools)
│   └── Integration (3 tools)
├── External MCP Connector
├── Permission & RBAC System
└── Admin Management API

📋 先决条件

  • Node.js>=18
  • PostgreSQL>=14
  • Redis>=6
  • Oracle云帐户(用于部署)

🚀 安装

本地开发

# Install dependencies
npm install

# Setup environment
cp .env.example .env
# Edit .env with your configuration

# Generate Prisma client
npm run db:generate

# Run database migrations
npm run db:push

# Start development server
npm run dev

Oracle云部署

# SSH into your Oracle Cloud VM
ssh ubuntu@your-vm-ip

# Download and run setup script
wget https://raw.githubusercontent.com/your-repo/logl-mcp-gateway/main/deployment/setup.sh
chmod +x setup.sh
./setup.sh

# Edit environment variables
cd /opt/logl-mcp-gateway
nano .env

# Restart application
pm2 restart logl-mcp-gateway

🔧 配置

环境变量

看 .env.example 对于所有可用的配置选项。

关键变量:

  • DATABASE_URL:PostgreSQL连接字符串
  • REDIS_URL:Redis连接字符串
  • JWT_SECRET:JWT令牌签名的秘密
  • GATEWAY_API_KEY:用于管理员访问的主API密钥
  • 服务凭据(ClickUp、谷歌、Slack等)

数据库模式

数据库架构包括:

  • 用户和身份验证
  • 工作区和会员资格
  • MCP注册表
  • 工具注册表
  • 权限
  • 审计日志
  • 使用情况统计

📡 API终点

MCP协议

POST /mcp/v1/initialize
POST /mcp/v1/tools/list
POST /mcp/v1/tools/call

管理员API

POST   /admin/mcps               # Register new MCP
GET    /admin/mcps               # List all MCPs
GET    /admin/mcps/:id           # Get MCP details
PUT    /admin/mcps/:id           # Update MCP
DELETE /admin/mcps/:id           # Remove MCP
POST   /admin/mcps/:id/enable    # Enable MCP
POST   /admin/mcps/:id/disable   # Disable MCP
POST   /admin/permissions/grant  # Grant user access
POST   /admin/permissions/revoke # Revoke user access
GET    /admin/health             # System health check

🛠️ 内置工具

点击上(5个工具)

  • clickup_list_tasks -列出带有筛选功能的任务
  • clickup_get_task -获取任务详细信息
  • clickup_create_task -创建新任务
  • clickup_update_task -更新任务
  • clickup_add_comment -向任务添加评论

更多内置MCP即将推出。..

🔐 安全

  • 基于JWT的身份验证
  • API密钥加密处于静止状态
  • 基于角色的访问控制(RBAC)
  • 速率限制
  • 审核日志记录
  • 安全的凭证存储

📊 监控

# View logs
pm2 logs logl-mcp-gateway

# Check status
pm2 status

# Monitor resources
pm2 monit

# System health
curl http://localhost:8080/health

🔄 添加外部MCP

通过API(推荐)

curl -X POST http://localhost:8080/admin/mcps \
  -H "x-api-key: your_gateway_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "kipris-enhanced",
    "displayName": "KIPRIS Enhanced",
    "description": "Korean patent search",
    "type": "HTTP",
    "connectionConfig": {
      "type": "HTTP",
      "url": "http://localhost:8001",
      "headers": {
        "Authorization": "Bearer token"
      }
    },
    "tags": ["patent", "search"],
    "category": "legal"
  }'

授予用户访问权限

curl -X POST http://localhost:8080/admin/permissions/grant \
  -H "x-api-key: your_gateway_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "user-uuid",
    "mcpServerId": "mcp-uuid",
    "workspaceId": "workspace-uuid",
    "permissions": ["read", "execute"],
    "allowedTools": ["kipris_search", "kipris_get_patent"]
  }'

🧪 测试

# Run tests
npm test

# Run with coverage
npm run test:coverage

📚 文档

🤝 支持

对于问题和疑问:

  • GitHub问题:https://github.com/your-repo/logl-mcp-gateway/issues
  • 电子邮件:support@logl.ai

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件

🎯 路线图

  • []Web仪表板(Next.js)
  • []更多内置MCP
  • []WebSocket传输
  • []指标和分析
  • []Docker支持
  • []Kubernetes部署

内置于❤️ logl.ai平台