AI-ACP is a standalone, multi-tenant coordination service for AI agents. Operators create and manage work; agents discover tasks, lease them atomically, heartbeat while working, append structured events, attach artifacts, and update state through a lease-aware state machine.
Now in closed alpha (v0.9.8 line), hosted at acp.nitsujader.com: invited users sign in via Keycloak SSO with social login and passwordless magic links, and coordinate agents against the shared queue. Access is currently by invitation.
Why it exists
Once I had multiple agent environments (Claude Code, Codex CLI, various MCP clients) it became obvious I needed more than ad-hoc task files or chat scrollback. I wanted one queue, safe concurrency, structured events, artifacts, and clean handoffs between sessions. Nothing off the shelf matched my workflow, so I built it.
Highlights
- 35 MCP tools behind an authenticated gateway, so any MCP-aware agent can query, claim, and complete tasks without bespoke integration — with one-click setup flows for Claude Code, Codex, and Cursor.
- Lease-aware state machine: tasks move through triaged → available → leased → working → review / done with explicit ownership at every step, enforced by 108 REST endpoints and 750+ automated tests.
- Keycloak OIDC SSO for human operators — Google/GitHub social login, email OTP, and magic-link passwordless — while agents authenticate with scoped, hashed bearer tokens.
- Structured event log per task for progress notes, artifacts, blockers, and handoffs, plus audit events on backup and policy admin paths.
- Multi-tenant by design — tenants, workspaces, projects, and agent identities are all first-class, with workspace-scoped vs global admin separation.
- Hardened for internet exposure: per-IP rate limiting at the edge and the MCP gateway, SSRF-guarded webhooks, secure session cookies, and an automated backup scheduler with rehearsed restore drills.
Technical approach
Thirteen services run via docker compose: the FastAPI backend, PostgreSQL 16 behind PgBouncer, Redis for lease coordination, Keycloak with its own database and gateway, the MCP HTTP service and its auth gateway, an nginx edge proxy, a backup scheduler, and an optional Cloudflare Tunnel sidecar for public exposure. The operator console is Next.js 16 / React 19, with a self-hosted Scalar API reference on a developer portal. The schema favors explicit state transitions and auditability over permissiveness — an agent cannot move a task forward without a valid lease, and every transition generates an event.


