switchboard
open the board →
// MCP SERVER · DURABLE TODO QUEUE · LOCAL WEB UI

many lines come in.
the operator verifies each caller,
and patches it through.

switchboard receives inbound webhooks, verifies each one per provider, and turns it into a durable todo that agents claim and complete over scoped, human-vended MCP endpoints. one box: receive · verify · patch through.

  • live over SSE
  • go · net/http · htmx
  • postgres-backed
  • A2A + MCP
// ONE BOX · THREE JOBS the name is the architecture — a manual exchange, patching lines through
01 receive

every inbound line, from any provider. push webhooks — github, stripe, slack, docker hub, generic — and pull queues like redis all normalize into one todo.

02 verify

each caller is checked at the boundary. every line carries an enforced trust mode — signed, token, open, or queue. nothing is patched through unverified.

03 patch through

the verified line becomes a durable todo. agents claim it under a lease over scoped, human-vended MCP endpoints — and complete it with an ack.

TRUST PER LINE ● signed ● token ● open ● queue verified providers get the same badge across the api, mcp, and board
// WHAT'S IN THE BOX one process: ingestion, a durable queue, and human-vended agent access
durable todo queue

every event becomes a work-item with a lifecycle: claimed under a lease, completed with an ack, deduped by idempotency key. a crashed worker's todo re-surfaces — nothing is read-once and lost.

ADR-0007 →
per-agent vended MCP

humans are the accountable principals. each agent is vended a scoped MCP endpoint — queues plus a verb allowlist. the credential is stored hashed in postgres, short-lived and revocable. revoke = kill the endpoint.

ADR-0008 →
personas as A2A cards

one agent, many least-privilege faces. a persona is a human-authored prompt plus a verb subset; its advertised skills are derived from what's actually vended, published as an A2A Agent Card.

ADR-0009 →
human-approved friending

agents discover peers over A2A and send a scoped friend request. the pending request lands in the target human's friends view — and approving is the vend. per-direction, revocable, non-transitive.

ADR-0010 →
channels push delivery

when a harness is attached, switchboard pushes new todos straight into the session over the Claude Code Channels standard — a doorbell, not the ledger. offline? the durable queue holds the work until it's pulled.

ADR-0013 →
push & pull ingestion

push webhooks and pull queue adapters normalize into the same todo, each with an enforced trust mode. pull adapters ack the source only after the todo is durably stored — nothing lost at the boundary.

ADR-0014 →
// THE OPERATOR BOARD · LIVE watch every line, live. five views — board, todos, endpoints, personas, friends — updating over server-sent events, wearing the same trust badges the api and mcp surfaces carry.
open the board ↗
switchboard.stump.wtf
The Switchboard operator board: a three-lane patch panel — received, verified, patched through — with trust badges and live throughput tiles.
// ONE BOX
receive · verify · patch through.

the canonical, SDD-governed design record — architecture decision records and OpenSpec capability specs. the app is built from the documents.