Reflow Gateway solves the MCP authentication segregation problem. Each user, group, and role gets exactly the credentials they're allowed — and nothing more.
The gateway sits between your AI clients and all your MCP servers. It handles auth, routes requests, and injects credentials — automatically.
When multiple users share AI agents connected to the same MCP servers, credentials and permissions bleed across users — or every user needs their own server.
Built for teams that need auditability and fine-grained control over AI agent access.
Aggregate tools, resources, and prompts from multiple MCP servers into one endpoint. Prefixed automatically when needed.
Fine-grained policies at target, tool, resource, and prompt level. No access without an explicit allow.
Gateway resolves credentials per user, group, or role — and injects them upstream. Clients never see downstream secrets.
Streamable HTTP, SSE, STDIO processes, and Kubernetes pods. Auto-detect between Streamable HTTP and SSE.
All stored credentials encrypted with AES-256-GCM. Keys never appear in logs or API responses.
Every MCP request logged with user identity, method, target, response status, and duration.
Distributed traces and metrics via OTLP. Grafana + Loki + Tempo stack included in Docker Compose.
Auto-detects JWT claim changes on every request and refreshes sessions without client intervention.
One-command Docker Compose setup. Production-grade Helm chart with checksum-triggered rollouts.
Remote HTTP services, local CLI tools, or Kubernetes workloads — the gateway handles it.
For remote MCP servers. Auto-detects between Streamable HTTP and legacy SSE transports.
For legacy MCP servers using the SSE transport. Maintains persistent connection.
Spawn local processes (npx, python…) with isolated credentials per user, group, or role.
Create isolated pods via MCPInstance CRDs. Operator manages lifecycle, GC, and secrets.
# One-line install curl -fsSL https://raw.githubusercontent.com/JulianPedro/reflow-gateway/main/install.sh | bash # Or manually: git clone https://github.com/JulianPedro/reflow-gateway.git && cd gateway cp .env.example .env && cp config.yaml.example config.yaml # Edit .env with your secrets docker compose up -d # Register the first admin user curl -X POST http://localhost:3000/api/auth/register \ -H "Content-Type: application/json" \ -d '{"email":"admin@example.com","password":"secure123"}'
# Install with Helm (external PostgreSQL required) helm install reflow-gateway ./chart \ --set secrets.jwtSecret="$(openssl rand -hex 32)" \ --set secrets.encryptionKey="$(openssl rand -base64 24 | cut -c1-32)" \ --set secrets.dbPassword="$(openssl rand -hex 16)" \ --set config.database.host=my-postgres.default.svc # Port-forward to test kubectl port-forward svc/reflow-gateway 3000:3000
git clone https://github.com/JulianPedro/reflow-gateway.git && cd gateway # Start only PostgreSQL docker compose up -d postgres # Run the backend export DB_PASSWORD=dev JWT_SECRET=dev-secret ENCRYPTION_KEY=12345678901234567890123456789012 cd backend && go run cmd/server/main.go -config ../config.yaml # Run the frontend (optional) cd frontend && npm install && npm run dev
One gateway, all your MCP servers, fully under your control.