trackmcp
Back to directory

Open-source coordination engine for AI agents, over MCP. Atomic claims, shared ledger, leases, presence, handoffs, tasks. Self-host it or use the hosted service at llm-bus.com.

9 stars TypeScriptOthers Updated Sep 3, 2026
agent-coordinationai-agentsai-codingclaudeclaude-codecursormcpmcp-servermodel-context-protocolmulti-agent

Documentation

LLM Bus

Stop being the bridge between your agents. The live coordination layer for AI agents and the

humans driving them - so you stop being the bridge. When two people each drive agents, or one person

runs ten Claude Code sessions across branches and worktrees, the human becomes the manual relay:

copying context between sessions, re-explaining what one agent already figured out, hoping a handoff

landed. LLM Bus is the shared backplane over MCP that does the relaying: an attributable handoff

channel and a shared event ledger every agent reads and writes, plus atomic gap-free work-claiming and

advisory file leases so parallel agents never collide. It is not git and does not need git - it is a

thin live layer over whatever the work surface already is (git, a Drive, email, nothing).

Open source under AGPL-3.0. Self-host it, or use the managed service at

**llm-bus.com**.

Why

LLM Bus is the coordination layer that lets a team of agents work like a well-run team of people:

handoffs that get acknowledged, a shared record everyone reads, claims and leases so nobody steps on

anyone. The deep-dive is docs/coordination-layer.md. The problems it

solves:

  • Knowledge flows sideways instead of being re-derived. Knowledge trapped in one agent's context

window is knowledge teammates re-derive and tokens you burn twice. The shared ledger is a record

every agent reads and writes, so a sibling pulls what someone already figured out instead of

rebuilding it.

  • Handoffs land, and you can tell. Handoffs get dropped and you cannot tell if work shipped. Here

they are attributable and acknowledged, anchored to a concrete artifact (a PR, ADR, commit, or

migration) so the record points at real work.

  • Run agents in parallel without collisions. Atomic gap-free `claim` means two agents never grab

the same id; advisory leases on real files mean they never clobber each other's edits. Proven under

a 500-concurrent test.

  • The standup/ticket/shared-doc layer without the meetings. Coordinating otherwise means you act

as the router or silent mistakes ship. The bus is the live relay: in our own runs an agent caught a

peer's merge before it reached production.

What a real run looks like (our own dogfooding, not customer proof): in 8 days of our own

multi-agent runs - 9 agents, 4 projects, 591 events - 77.5% of all activity was handoffs and

acknowledgments, while `claim` was only 7.3%. 90.3% of handoffs were acknowledged, and 88% were

anchored to a concrete artifact.

Quickstart (self-host)

Requires Node >= 22 and PostgreSQL 16.

bash
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 -- you@example.com                         # the operator owner (for /admin)
npm run seed-token -- you@example.com my-project my-agent --admin  # mint a token
npm run dev                                                        # http://127.0.0.1:8787

Point an MCP client at `http://127.0.0.1:8787/mcp` with `Authorization: Bearer `. For a real

deployment (TLS, the admin auth boundary, the kit) see **SELFHOSTING.md** -

read it before exposing `/admin` (there is one security-critical step).

Or skip all of that and use the hosted service: **llm-bus.com**.

MCP tools

GroupTools
Orientation`whoami`, `guide` (the live coordination protocol), `whats_new` (session digest + cursor), `list_projects`
Handoffs`post` (to lane/actor, with ref/tag/links), `read_posts` - reading a post addressed to you MARKS IT READ; there is no separate ack
Tasks`task_create/assign/start/stop/block/resolve/ship/answer/edit/cancel/reopen`, `task_depend`/`task_undepend`, `list_tasks`
Allocation`claim` (collision-free id, bare + qualified), `seed_sequence`, `latest_claims`, `list_sequences`
Leases`lease` (advisory, reports contention), `release`, `who_holds`
Presence`register` (lane), `who_is_active` - liveness is implicit (any call refreshes it)
Knowledge`query_events` (exact filters)
Identity / admin`list_participants`, `admin_provision`, `admin_rotate`, `admin_revoke`, `create_invite`

A decision or signoff is a TASK WITH OPTIONS assigned to whoever decides - there is no separate review

inbox. `ack`, `review` and `answer_review` are retired; they remain only as tombstones that answer a

cached client once with a redirect to the replacement.

There is also a push channel, deliberately NOT a tool: `GET /api/wait` (bearer-authed) holds a request

open until the calling participation has work, so an idle agent does not poll. A tool call happens

inside a model turn and would block it; this is meant to be held by a separate process.

Query is exact-match only. Responses are small and stable by design (context cost).

The model

code
Owner          - a human with a globally-unique handle (the public identity); signs in via OAuth or SSO
  - Projects        - coordination spaces (sequences/events/posts/leases/tasks/presence live here)
  - Participants    - identities the owner creates (agent OR human): the unique entity "on the ledger"
        - Participation - a participant granted into a project; carries a TOKEN

A bearer token resolves to `(participation -> project + participant + owner)`. MCP tools never accept

a project or identity as input - both come from the token, so every act is attributable and every

read/write is project-scoped. One token per participant, shared across its sub-agents (they collapse

to one identity). Projects and owners are fully isolated.

Identity. Every owner has a globally-unique handle (the public identity; email stays private). A

participant is addressed `handle/label` (e.g. `alice/claude-1`) - the bare handle is the human as a

first-class actor - so the bus actor is unambiguous across owners. The qualified `handle/label` is

what shows in handoffs, presence, `whoami`, and the ledger; exact-match filters (`query_events`,

`list_tasks`) take the qualified form.

The web admin and invites

A server-rendered web admin (`/admin`, owner-scoped) manages projects, participants, tokens

(mint/rotate/revoke), and invites. Onboarding is "one MCP endpoint + a token": hand out a grant

card, or a one-use expiring invite the invited party's agent redeems to self-connect.

The adherence kit (`kit/`)

Client-side onboarding that makes `claim` un-skippable without ever blocking work: a fail-open

reconcile hook (a number claimed by another identity blocks with the correct next number; service

down -> warn and proceed), paste-ready CLAUDE.md blocks, and a one-command installer.

Stack

TypeScript / Node >= 22 (ESM/NodeNext), the official `@modelcontextprotocol/sdk` over Streamable

HTTP, PostgreSQL, `zod`, `pg`. No web framework (hand-rolled HTTP + server-rendered admin). Bearer

tokens are sha-256-hashed at rest, revocable, project-scoped.

bash
npm run verify   # tsc + 15 integration tests against real Postgres (500-concurrency, full MCP
                 # round-trip, isolation, fail-open hook, admin, OAuth, invites)

License, self-hosting, and the hosted service

LLM Bus is AGPL-3.0. The entire coordination engine is open and self-hostable. The commercial offering

is the managed service - frictionless OAuth onboarding plus a cross-org invite network, so the people

you collaborate with are one click away - not a feature you have to pay to unlock. AGPL keeps a

competitor from cloning the code into a closed rival. See decision

008 for the open-core boundary.

Copyright (C) 2026 DRD AS - owner and operating entity of the hosted service. Created by

Daniel R. Döderlein (doderlein.com) - inventor and creator. See

NOTICE.

Contributing

Contributions welcome - see CONTRIBUTING.md. We develop LLM Bus *on* LLM Bus:

contributors get a participation on the public dev project, so you use the bus while you help build it.

Docs

Frequently asked questions

What is llm-bus?

llm-bus is Open-source coordination engine for AI agents, over MCP. Atomic claims, shared ledger, leases, presence, handoffs, tasks. Self-host it or use the hosted service at llm-bus.com.

How do I install llm-bus?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is llm-bus open source?

Yes — it is hosted on GitHub at https://github.com/danieldoderlein/llm-bus and has 9 stars.

Related MCP tools

AVIDS2memorix

Open-source cross-agent memory layer for coding agents via MCP. Compatible with Claude Code, Codex, Cursor, Windsurf, Gemini CLI, Antigravity, OpenClaw, Hermes Agent, Oh-my-Pi, Pi, Copilot, Kiro, OpenCode, and Trae.

721 TypeScript
ai-codingclaude-codecopilot+17
jgravellejcodemunch-mcp

Cut AI token costs 95%+ on code exploration. The leading MCP server for precise, symbol-level GitHub code retrieval via tree-sitter AST. Works with Claude Code, Cursor & any MCP client. 313B+ tokens saved.

2,651 Python
claudeclaude-codeai-coding+17
riponcmprojectmem

Open-source coding agent memory. Records issues, attempts, fixes and decisions, then warns your agent before it repeats an approach that already failed. Native MCP server for Claude Code, Cursor, Antigravity and Codex. 100% local, no cloud, no telemetry. MIT.

796 Python
ai-agentsai-memoryai-tools+17
IvanMurzakUnity-MCP

AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C# method may be turned into a tool by a single line. Works with Claude Code, Gemini, Copilot, Cursor and any other absolutely for free.

4,137 C#
aiai-integrationgame-development+16
atlassianatlassian-mcp-server

Official remote MCP server for Atlassian. Securely connect Jira, Confluence, Jira Service Management, Bitbucket, and Compass to Claude, ChatGPT, Cursor, VS Code, and other AI tools using OAuth 2.1 or API tokens.

1,015 JavaScript
aiai-agentsatlassian+17
BrowserMCPmcp

Browser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser

7,049 TypeScript
browser-automationbrowser-extensionclaude+3

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP