Docs/Architecture

Architecture

How SatGate is built — open-source core, enterprise gateway, and cloud platform.

Open-core model

SatGate follows an open-core model:

  • OSS Core (github.com/SatGate-io/satgate) — reverse proxy, macaroon auth, MCP JSON-RPC parser, admin API. Written in Go.
  • Enterprise Gateway — multi-tenant dashboard, MCP cost attribution, delegation hierarchies, SCIM, SSO, billing. Private repo.
  • SatGate Cloud (cloud.satgate.io) — managed SaaS. Sign up, connect agents, zero infrastructure.

Component overview

┌──────────────────────────────────────────────┐
│  Agent (Cursor / Claude Code / Custom)       │
│  ↓ SSE/Streamable HTTP                       │
├──────────────────────────────────────────────┤
│  SatGate MCP Proxy                           │
│  ├─ Macaroon auth (tenant + budget caveats)  │
│  ├─ MCP JSON-RPC parser                      │
│  ├─ Per-tool cost attribution                │
│  ├─ Budget enforcement (JSON-RPC -32000)     │
│  └─ Real-time event pipeline                 │
│  ↓                                           │
├──────────────────────────────────────────────┤
│  Upstream MCP Servers                        │
│  (your tools, hosted anywhere)               │
├──────────────────────────────────────────────┤
│  Enterprise Gateway                          │
│  ├─ Dashboard API (BFF)                      │
│  ├─ Tenant management                        │
│  ├─ Delegation tree                          │
│  ├─ Shadow Report engine                     │
│  └─ WebSocket event hub                      │
├──────────────────────────────────────────────┤
│  Data Layer                                  │
│  ├─ Relational DB (tenants, tokens, config)  │
│  └─ Cache + event bus (sessions, events)     │
└──────────────────────────────────────────────┘

Key design decisions

  • Inline proxy. SatGate sits in the request path. No sidecar, no SDK, no agent code changes. Point your MCP client at SatGate instead of your upstream — everything else is transparent.
  • Macaroons, not JWTs. Macaroons support delegation without server roundtrips. A team lead can mint a sub-token for an agent without calling any API — just add caveats and HMAC.
  • Event-driven monitoring. Every request generates events pushed to the dashboard via WebSocket in real-time. No polling.
  • Multi-tenant by design. Every request is scoped to a tenant ID extracted from the macaroon. Data isolation is enforced at the query layer.

Deployment options

SatGate Cloud

Fully managed. Sign up and connect agents. No infrastructure to manage.

Self-host

Enterprise customers run the same SatGate binary in their own environment. Docker, Kubernetes, or bare metal. Contact contact@satgate.io.

Related