多租户服务器

n8n MCP多租户服务器,支持多n8n实例共享一个MCP服务器,兼容n8n MCP客户端,无需访问令牌,提供速率和内存限制。

  • by kaewz-manga
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kaewz-manga/n8n-mcp-multi-tenant-n8n

使用说明

n8n MCP多租户服务器(n8n兼容)

分叉自: n8n-mcp多租户
修改为:完全兼容n8n MCP客户端

有什么不同?

此版本添加 SSE到JSON中间件 使多租户MCP服务器与n8n MCP客户端协同工作。

问题

  • 原始仓库使用MCP SDK
  • MCP SDK要求: Accept: application/json, text/event-stream
  • n8n MCP客户端发送: Accept: application/json (无SSE)
  • 结果: 401不可接受 错误

解决方案

添加了中间件:

  1. 注入SSE集管 用于SDK验证
  2. 将SSE响应转换为JSON n8n兼容性

特性

✅ 多租户模式 -多个n8n实例可以使用一个MCP服务器
✅ n8n兼容 -与n8n MCP客户端开箱即用
✅ 没有访问令牌 -简单 x-n8n-url + x-n8n-key 标头
✅ 速率限制 -每个实例的限制
✅ 内存限制 -512MB容器限制,防止泄漏

快速开始

0.安装(手动)

如果手动安装(不使用Docker):

git clone https://github.com/kaewz-manga/n8n-mcp-multi-tenant-n8n.git
cd n8n-mcp-multi-tenant-n8n
npm install
npm run build
npm run rebuild

1.环境变量

# Multi-tenant mode
ENABLE_MULTI_TENANT=true
MULTI_TENANT_SESSION_STRATEGY=instance

# MCP mode
MCP_MODE=http
PORT=3000

# Auth (for backwards compatibility)
AUTH_TOKEN=your-server-token

# Rate limits
RATE_LIMIT_PER_MINUTE=50
DAILY_LIMIT=100

2.Docker编写

version: 3.8

services:
  n8n-mcp-dynamic:
    build: .
    ports:
      - 127.0.0.1:3011:3000
    environment:
      - ENABLE_MULTI_TENANT=true
      - MCP_MODE=http
      - PORT=3000
    mem_limit: 512m
    restart: unless-stopped

3.n8n配置

在n8n中添加MCP客户端:

统一资源定位符: https://your-domain.com/mcp

标头:

x-n8n-url: https://your-n8n-instance.com
x-n8n-key: your-n8n-api-key

测试

# Initialize session
curl -X POST https://your-domain.com/mcp   -H Content-Type: application/json   -H Accept: application/json   -H x-n8n-url: https://your-n8n.com   -H x-n8n-key: your-api-key   -d '{jsonrpc:2.0,method:initialize,params:{protocolVersion:2024-11-05,capabilities:{},clientInfo:{name:n8n,version:1.0.0}},id:1}'

# Expected response (JSON, not SSE):
# {result:{protocolVersion:2024-11-05,capabilities:{tools:{}},serverInfo:{name:n8n-documentation-mcp,version:2.33.2}},jsonrpc:2.0,id:1}

关键变化

文件 更改 原因
src/http-server/sse-middleware.ts 将SSE添加到JSON中间件 n8n不发送SSE标头
docker-compose.yml 更新环境变量 多租户配置

与原版的差异

功能 原始 此版本
n8n兼容 ❌ 否(需要SSE) ✅ 是(自动转换)
访问令牌 ✅ 具有访问令牌层 ❌ 已删除(不需要)
响应格式 仅限SSE JSON+SSE(自动检测)
需要标题 x-access-token + x-n8n-url/key x-n8n-url + x-n8n-key 只有

许可证

麻省理工学院(与原版相同)

学分

基于 n8n-mcp多租户
修改者:kaewz漫画
日期:2026年1月22日