uni-mcp-gateway

One MCP to rule them all.

Open-source gateway that unifies every tool behind a single endpoint. Multi-account. Granular auth. Zero context bloat.

git clone https://github.com/dropoutsanta/uni-mcp-gateway

About

Why this exists

Every AI coding environment makes you configure MCPs individually. You end up with dozens of connections, duplicated credentials, re-auth flows every time you switch tools, and bloated context windows full of tool definitions your agent will never use.

This gateway sits between your agents and your tools. One endpoint, one API key, all your MCPs. Deploy once, connect from anywhere.

+

No more re-authing across environments

Configure once on the gateway. Every agent, IDE, and script gets access through the same endpoint.

+

No more context bloat

Progressive tool discovery via meta-tools. Your agent sees 5 tools instead of 200. Ask for more when needed.

+

Multi-account, single MCP

3 Bison accounts, 2 WhatsApp numbers, 5 Slack workspaces — all on one server. Not 10 MCPs with 10x the tools.

+

REST API bridge included

Every tool is also available as a standard HTTP endpoint. No MCP client needed — just curl.

Security

Granular auth and scoping

API key-based auth with per-key, per-plugin, per-account, and per-tool permissions. Rate limits at every level. IP allowlisting. Key expiry. Data-level scoping (restrict a key to specific WhatsApp JIDs, Slack channels, etc).

Non-admin keys can bring their own credentials (BYOC) — additive accounts that don't touch admin-configured ones. Every tool call is audit-logged with full request/response capture.

# Create a scoped key
$ curl -X POST /api/tools/gateway_create_key \
-d '{"key_id": "intern-bot",
"plugins": {"slack": "read", "linear": "write"},
"rate_limit": 30}'

Plugins

Drop-in plugin architecture

Each MCP is a Python plugin. Ships with WhatsApp, Gmail, Slack, Linear, Notion, Calendly, Bison, AI Ark — and an _example.py template to build your own in minutes. Auto-discovered on startup.

Bridge external MCP servers too — connect any remote Streamable HTTP MCP and the gateway re-exposes its tools with full auth and audit.

WhatsApp
Gmail
Slack
Linear
Notion
Calendly
Bison
AI Ark

Dashboard

Admin UI included

Web dashboard for managing keys, permissions, credentials, rate limits, data scopes, and audit logs. No separate admin tool needed — it's built into the server.

Non-admin users get a self-service view to manage their own accounts and activity. Admins see everything — drillable audit log with full request/response JSON, key CRUD, external MCP management.

Deploy

One command to production

Single Docker container on Fly.io with SQLite. No Postgres, no Redis, no multi-container orchestration. Configure via environment variables and a fly.toml.

$ cp .env.example .env
$ cp fly.toml.example fly.toml
$ fly launch
$ fly deploy

Philosophy

What makes this different

01

Multi-account is first-class

Most gateways treat each MCP as a singleton. We let you run 3 accounts on the same service — same plugin, different credentials, cherry-picked access per key.

02

BYOC — Bring Your Own Credentials

Non-admin keys add their own named accounts without touching admin-set ones. Give someone access to your tools and let them bring their own too.

03

Stealth mode

No login page at the root. No API docs. Hit any unknown route and you get a 404. The gateway is invisible until you know the right key.

04

Context-aware tool discovery

Meta-tools let agents progressively discover capabilities. Your 200-tool gateway looks like 5 tools until the agent needs more.