Case file · MCP / Agents
Eric AI is a self-hosted hub that fronts a dozen Model Context Protocol servers — Garmin, Google Workspace, Linear, Synology, Hetzner and more — behind a single gateway. Instead of every agent holding credentials for every service, they talk to one endpoint that handles authentication, billing and routing. Add a server once and every connected agent can use it; rotate a key in one place and nothing else has to know.
The hub is the boring-but-essential layer: a registry of available tools, a policy on who may call what, a meter on usage, and a router that sends each request to the right backend. The agents stay simple because the plumbing is centralised.
Why it exists
MCP makes any tool callable by any agent — which becomes a credential and governance problem the moment you have more than one of each. Building the hub was the way to stop wiring services into agents one cable at a time, and to put a single, auditable wall between the model and everything it can touch.
Shape of the system
agents ──┐
agents ──┼──▶ ┌──────────────┐
agents ──┘ │ gateway │ one endpoint, one auth wall
│ auth · meter│
│ · routing │
└──────┬───────┘
│ routes per policy
┌─────────────┼─────────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ workspace│ │ linear │ │ hetzner │ …a dozen
│ garmin │ │ synology │ │ more │ MCP servers
└─────────┘ └──────────┘ └──────────┘
Three hard lessons
1. The hub is only worth it past the second integration. For one agent and one tool, a gateway is overhead. The value compounds — every new server is now free to every client, and that crossover arrives faster than expected.
2. Auth is the product, not a feature. The single auth wall is the reason the thing exists. Everything else — routing, metering — is convenience layered on top of getting credentials out of the agents.
3. A dozen backends means a dozen ways to fail. Each upstream has its own outages, rate limits and quirks. The gateway has to degrade per-server, not all-or-nothing, or one flaky backend takes down every agent.
Stack