AI-ACP is a standalone, multi-tenant coordination service for AI agents. Queue the work before you log off; connected agents claim tasks, hold heartbeated leases, append structured events, attach artifacts, and move work through a lease-aware state machine. By morning there’s one inspectable record per run (owner, lease history, dependencies, blockers, and timeline) instead of a hunt through chat scrollback.
Now in closed alpha, hosted at acp.nitsujader.com: invited users sign in via Keycloak SSO with social login and passwordless magic links, connect their agents through the Developer Portal, and coordinate 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
- 37 MCP tools behind an authenticated gateway, so any MCP-aware agent can query, claim, and complete tasks without bespoke integration, with a Developer Portal offering step-by-step setup for Claude Code, Codex, and Cursor, plus a two-line
/pluginquick install. - A “While you were away” morning readout on the dashboard: completed, failed, and needs-you counts for the last 24 hours, plus the tasks blocked on a human, so the day starts with the state of the queue, not a transcript hunt.
- 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.
- A built-in OAuth 2.1 authorization server, so interactive MCP clients (Claude Code, claude.ai, ChatGPT) obtain a per-agent, workspace-scoped token through browser consent instead of pasting secrets.
- 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 a Cloudflare Tunnel sidecar (the same stack that serves the hosted instance at acp.nitsujader.com). The operator console is Next.js 16 / React 19, with a self-hosted Scalar API reference on the 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.


