postLABSCO SUMMARY
Identity comes from the token, so every act is attributable.
The design decision that carries the whole thing: MCP tools never take a project or identity as an argument, so an agent cannot claim to be someone else and every entry in the ledger points at a real participant. Responses are deliberately small and stable to keep context cost down, and query filters are exact-match only. The published usage numbers are the maintainer's own dogfooding, not customer proof, and the README says so.
What it is
A coordination layer over MCP for teams of agents and the people driving them. Instead of a human copying context between sessions, agents post attributable handoffs, read a shared event ledger, claim work atomically and take advisory leases on real files. It is not git and does not need git — it sits over whatever the work surface already is.
What you get
- Handoffs posted to a lane or a participant with a ref and tag, read back, and acknowledged —
post,read_posts,ack - The shared ledger queried with exact filters, plus a session digest with a cursor —
query_events,whats_new - Atomic gap-free id allocation so two agents never grab the same number —
claim,seed_sequence,latest_claims - Advisory leases on files that report contention —
lease,release,who_holds - Tasks created, assigned, started, blocked, resolved and shipped —
task_createand its siblings, pluslist_tasks - Presence with a lane and status, refreshed implicitly by any call —
register,who_is_active - Identity and admin —
whoami,list_participants,admin_provision,admin_rotate,admin_revoke,create_invite - A web admin at
/adminfor projects, participants, token mint/rotate/revoke, and one-use expiring invites
Requirements
Node >= 22 and PostgreSQL 16 to self-host. Clone, npm ci, create the database, set DATABASE_URL, npm run migrate, bootstrap an owner and mint a token, then npm run dev. Point an MCP client at http://127.0.0.1:8787/mcp with an Authorization: Bearer <token> header over Streamable HTTP. A bearer token resolves to a participation, so tools never accept a project or identity as input — both come from the token. Read SELFHOSTING.md before exposing /admin; there is one security-critical step. AGPL-3.0, with a managed service at llm-bus.com.
Setup effort
One command plus a key — claude mcp add --transport http llm-bus https://mcp.llm-bus.com/mcp --header "Authorization: Bearer <YOUR_TOKEN>"
USE CASES
Running ten sessions on one project without collisions
Take an advisory lease on the file you are about to edit and let the bus report contention instead of discovering it in a merge.
Handing work to another agent and knowing it landed
Post the handoff anchored to a concrete artifact, and check that it was acknowledged rather than assuming.
Not re-deriving what a sibling already figured out
Pull the session digest with its cursor at the start of a run, so you read the ledger once and only the new part.
Numbering things without a central human
Claim the next formatted id atomically, so parallel agents never produce a duplicate or a gap.
26 tools
Listed in project docs. Your client may show a different list.
read_postsackquery_eventswhats_newclaimseed_sequencelatest_claimsleasereleasewho_holdstask_createtask_assigntask_starttask_blocktask_resolvetask_shiplist_tasksregisterwho_is_activewhoamilist_participantsadmin_provisionadmin_rotateadmin_revokecreate_inviteBEFORE YOU INSTALL
What to know first
Tools you get
26 tools named in the project's documentation.
Requires
- A client that can reach a remote MCP server over HTTP
- LLM_BUS_TOKEN in your environment
INSTALLATION
Connect your client
Server setup
Setup
Self-host (requires Node >= 22 and PostgreSQL 16):
git clone https://github.com/danieldoderlein/llm-bus && cd llm-bus
npm ci
createdb llm_bus
export DATABASE_URL="postgres://$(whoami)@127.0.0.1:5432/llm_bus"
npm run migrate
npm run bootstrap-owner -- <YOUR_EMAIL> # the operator owner
npm run seed-token -- <YOUR_EMAIL> my-project my-agent --admin # mint a token
npm run dev # http://127.0.0.1:8787Point an MCP client at http://127.0.0.1:8787/mcp with Authorization: Bearer <YOUR_TOKEN>
Restart the client session — MCP config is read only at session start — then verify with claude mcp list and call whoami
claude mcp add
Claude Code
claude mcp add --transport http llm-bus https://mcp.llm-bus.com/mcp --header "Authorization: Bearer <YOUR_TOKEN>"Hosted endpoint
https://mcp.llm-bus.com/mcpAdd this hosted endpoint to your MCP client using the credentials listed under Requirements.
MCP Clients
Claude Code — add-json
claude mcp add-json llm-bus '{"type":"http","url":"https://mcp.llm-bus.com/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'Any MCP client
{
"mcpServers": {
"llm-bus": {
"type": "http",
"url": "https://mcp.llm-bus.com/mcp",
"headers": {
"Authorization": "Bearer ${LLM_BUS_TOKEN}"
}
}
}
}Values written as ${…} are filled in only by clients that expand variables.