Skip to content
Open source · MIT

One chat. Every agent. 
Any protocol.

Centralize every agent and MCP server in your company — ADK, A2A or custom — 
behind one API and one MCP endpoint, with RBAC deciding who can reach what.

How it works

Three steps to one front door for every agent

Register what you already run, put it behind a single gateway, and reach it from anywhere — without each client learning a new protocol.

Register any agent

Point Agentgram at an agent’s endpoint and pick its protocol — Custom REST/SSE, A2A (JSON-RPC) or Google ADK. No redeploy: agents are managed at runtime from the admin panel and stored in PostgreSQL.

One API, one MCP endpoint — behind RBAC

Every agent and every company MCP server is reachable through a single API and a single /mcp endpoint. Role-based access control decides, per agent and per MCP server, exactly who can reach what.

Talk to it from anywhere

Chat from the web UI, call agents as tools from your IDE or CLI over MCP, or wire them into Slack. The API converts every protocol into a uniform stream of AG-UI events.

Architecture

A thin, stateless multiplexer in the middle

Clients speak AG-UI and MCP. Agents speak their own protocol. The Go API translates between them, enforces access, and keeps the sessions.

Clients
Web UI
IDE / CLI · MCP
Slack
AG-UI · MCP →
Agentgram API · Go
JWT auth · OIDC
RBAC per agent & MCP
Protocol mux → AG-UI
Session store
→ native protocol
Agents & tools
Custom REST / SSE
A2A · JSON-RPC
Google ADK
MCP servers
Redis · sessions & pub/sub
PostgreSQL · groups & persistent data
Bring any agent

Different protocols in. One event stream out.

Whatever an agent speaks, the web client always sees the same AG-UI events — so the UI never changes when your agents do.

A plain HTTP endpoint that streams Server-Sent Events (or returns JSON). The simplest way to plug in your own service.

POST /api/agents/{agentId}/chat
Content-Type: application/json

{ "messages": [{ "role": "user", "content": "Hello" }],
"session_id": "optional-uuid" }
What you can build

One gateway, many workflows

A single integration that each person experiences differently, based on what they're allowed to reach.

🚨
Incident response

Bundle logs, metrics and Kubernetes agents into a shared group and triage an outage together — everyone sees the same thread.

🧰
Agents in your IDE

Add one MCP endpoint to Claude Code or Cursor and call every agent you're allowed to as a tool — ask_logs-agent and more.

📊
Cost & latency in the open

Built-in dashboards break down usage, latency and error rate per agent and per user — no extra observability stack.

🔗
Share a finding

Send a teammate a read-only, time-limited and revocable link to a conversation. They can clone it to keep digging.

🧩
One gateway for the company

Register every agent and MCP server once; RBAC by Google Workspace group or email gives each person only what they're entitled to.

🔌
Bring any framework

Custom REST/SSE, A2A or Google ADK — register the endpoint and it speaks AG-UI like everything else.

See it in action

A real chat client, not a demo widget

Streaming responses, tool calls, multi-agent threads and an admin surface to manage it all.

Plug it into your tools

Your agents as tools, in any MCP client

Agentgram ships a standard MCP server with OAuth and Dynamic Client Registration — connect with just the URL.

claude mcp add --transport http agentgram https://agentgram.eu/mcp
# then run /mcp, pick "agentgram" and sign in once

You get one ask_<agent-id> tool per agent you can reach, plus the tools of every MCP server registered in Agentgram — all filtered by your permissions.

Deploy anywhere

From a laptop to a cluster

Published container images, a Docker Compose stack and Helm values. Database migrations run automatically on startup.

Self-host the whole stack on a single VM.

cd agentgram/examples/docker-compose
cp .env.example .env      # set POSTGRES_PASSWORD, pin AGENTGRAM_VERSION
docker compose up -d      # web on http://localhost:3000

One chat. Every agent. Any protocol.

Run the full stack locally in a couple of commands, then point it at your own agents.

Open source · MIT licensed · Self-hosted