RunbookMCP
LOCAL STDIO COMPANIONNO HARD GATEWAYNO LIVE BROKER CONNECTIONADVISORY ONLY

Runbook MCP companion · local-first cockpit

Record beside the agent. Never as the broker.

Install the local Runbook MCP next to your coding agent. Server v0.4.5 · 45 closed tools: discovery, six ledger writers/readers, seven offline analysis tools, six shadow self-improvement tools, thirteen control-plane session tools, and eleven elite process tools. Preflight is deterministic and advisory. A direct brokerage tool can always bypass Runbook—so the first pilot stays disconnected.

Surface lock · static cockpit display

runbook v0.4.5 · 45 tools · attests Runbook only

toolCount45
brokerExecutionTools[] empty
openWorldHintfalse
attestsRunbook only
hasPlaceOrCancelToolsfalse
brokerEffectfalse

Closed Runbook surface: 45 tools, brokerExecutionTools=[], openWorldHint=false. Attests Runbook inventory only — not host MCP set. Not a hard gateway.

  • runbook-surface-only-not-host-inventory
  • not-broker-authorization
  • not-proof-host-has-no-other-mcps
  • static-cockpit-display-not-live-receipt

Golden journey checklist

Steps agents should take · 0/6

  1. Read the boundary

    Load runbook://docs/boundary (or prompt runbook_explain_boundary). No credentials. No trades. Advisory only.

    runbook://docs/boundary
  2. Create equity-only experiment

    runbook_create_experiment with approvalRequired true and instruments limited to equity.

    runbook_create_experiment
  3. Preflight a synthetic proposal

    runbook_preflight_trade with caller-supplied position, drawdown, and trade-count fields — not broker truth.

    runbook_preflight_trade
  4. Hard stop (day-1 shadow)

    Do not call runbook_record_approval or runbook_record_execution unless the human operator explicitly requests it.

    HARD STOP
  5. Verify the ledger

    runbook_verify_ledger — local tamper evidence only. Anyone who rewrites the whole file can recompute the chain.

    runbook_verify_ledger
  6. Run pilot-doctor

    Offline readiness. Assurance is local-attestation-and-ledger-only — not system-wide broker absence.

    runbook_pilot_doctor

Install in Codex

Wire the local server

From the repository root. The server defaults to ~/.runbook/events.jsonl. Point RUNBOOK_DATA_DIR only at a private absolute path outside synced folders.

pnpm setup:elite
# or: pnpm install && pnpm --filter @runbook/mcp build
codex mcp add runbook -- node "$PWD/packages/mcp/dist/server.js"
codex mcp list

Start a new Codex task after adding the server so tools are discovered. Remove later with codex mcp remove runbook. Never put broker credentials in tool arguments, event notes, environment values intended for logs, or the ledger.

{
  "name": "runbook_preflight_trade",
  "arguments": {
    "experimentId": "RUN-SHADOW-001",
    "proposalId": "proposal-vti-001",
    "symbol": "VTI",
    "instrument": "equity",
    "side": "buy",
    "notional": 100,
    "projectedPositionNotional": 100,
    "dailyTradesAfter": 1,
    "currentDrawdownPercent": 0.6,
    "hasThesis": true,
    "hasInvalidation": true,
    "evidenceSourceCount": 2,
    "idempotencyKey": "preflight-vti-001"
  }
}

Full tool inventory · 45 tools

1 discovery + 6 ledger + 7 offline + 6 shadow + 13 session + 7 elite · broker effect: none

Operator docs: packages/mcp/OPERATOR_GUIDE.md. 45 closed tools; brokerEffect always false.

ToolLaneEffectAssurance
runbook_list_surfacediscoveryClosed inventory of tools, resources, promptslocal-discovery-only
runbook_create_experimentledgerRecords experiment + charter v1local-ledger-write
runbook_preflight_tradeledgerRecords proposal + advisory checksadvisory-caller-supplied-state
runbook_record_approvalledgerCaller-asserted human decision (unauthenticated)caller-owned-observation-only
runbook_record_executionledgerImports owner-controlled fill datacaller-owned-observation-only
runbook_list_eventsledgerReads local ledger eventslocal-ledger-read
runbook_verify_ledgerledgerVerifies sequence, idempotency, hash chainlocal-tamper-evidence-only
runbook_verify_capsuleofflineOffline capsule verifyself-asserted-author-key-integrity
runbook_verify_capability_snapshotofflineOffline snapshot verifyoffline-reviewed-claim-analysis
runbook_diff_capabilitiesofflineOffline capability diffoffline-reviewed-claim-analysis
runbook_admit_capabilitiesofflineOffline admission analysis (no head mutation)offline-reviewed-claim-analysis
runbook_inspect_public_auth_metadataofflineOffline public-auth parseoffline-fixture-or-operator-capture-analysis
runbook_pilot_doctorofflineShadow pilot readiness checklocal-attestation-and-ledger-only
runbook_export_public_snapshotofflineMetadata-only public exportlocal-ledger-read
runbook_run_shadow_curriculumshadowMulti-axis synthetic curriculum reportsynthetic-curriculum-process-quality-only
runbook_improve_chartershadowRecursive offline refinement (no ledger write)synthetic-curriculum-process-quality-only
runbook_shadow_tournamentshadowMulti-charter Pareto front (weak + elite + mutants)synthetic-curriculum-process-quality-only
runbook_activate_refined_chartershadowExplicit charter.activated appendlocal-ledger-write
runbook_agent_evalshadowLocal ledger process axes (not trading performance)process-observation-only
runbook_expand_curriculum_from_ledgershadowLedger-derived synthetic deny scenariosledger-derived-synthetic-process-labels-only
runbook_session_createsessionCreate local control-plane sessionlocal-session-only
runbook_session_usesessionMark active session (local marker only)local-session-only
runbook_session_getsessionRead control-plane session by idlocal-session-only
runbook_session_exportsessionExport session evidence packlocal-control-plane-export-only
runbook_session_set_chartersessionBind advisory charter + digestlocal-session-only
runbook_session_pin_inventorysessionPin admitted tool inventorylocal-session-only
runbook_session_check_inventorysessionFail-closed observed tools vs pinlocal-session-only
runbook_session_import_tools_listsessionImport local tools/list JSON and check vs pinlocal-session-only
runbook_session_bind_experimentsessionBind local ledger experimentId (+ optional head hash)local-session-only
runbook_session_attach_dossiersessionAttach architecture dossier evidencearchitecture-evidence-not-certification
runbook_session_record_shadowsessionRecord shadow hardFalse metricssynthetic-curriculum-process-quality-only
runbook_approval_create_signedsessionEphemeral Ed25519 approval intentlocal-device-key-attestation-only
runbook_approval_verifysessionVerify signed approval intentlocal-device-key-attestation-only
runbook_surface_lock_receipteliteDigest closed TOOL_NAMES + version attestationrunbook-surface-only-not-host-inventory
runbook_process_tickeliteSupervisor tick: inventory + dual-eval → proceed|warn|stopprocess-layer-not-hard-gateway
runbook_session_import_packeliteImport session evidence pack JSONlocal-session-only
runbook_session_seal_capsuleeliteSeal session as synthetic .runbook capsuleself-asserted-author-key-only
runbook_drift_sentinelelitetools/list + pin fail-closed drift receiptoperator-provided-not-runtime-confirmed
runbook_session_clone_challengeeliteClone session with charter challenge mutationlocal-session-only
runbook_dual_check_diffeliteCheck-by-check ledger vs session charter theaterprocess-layer-not-capital-risk-grade
runbook_session_attach_surface_lockeliteAttach surface lock receipt as session operator-notearchitecture-evidence-not-certification
runbook_gateway_quorum_demoeliteLocal gateway quorum authorize/deny/replay theaterlocal-policy-theater-only
runbook_session_list_process_tickseliteList process_tick ring buffer (last 64)local-session-only
runbook_operator_scenario_evaleliteClosed curriculum + operator scenarios → HFA/HFDsynthetic-curriculum-process-quality-only
runbook_session_process_healtheliteMulti-axis process health (ticks + shadow HFA)process-observation-not-composite-grade

MCP annotations are descriptive, not authorization. runbook_record_approval requires actor type human but every argument is caller-supplied—an agent can claim human authority. Execution evidence always reports humanAuthorityEstablished: false. Offline tools never mutate a durable registry head or establish a broker session.

Discovery resources

Boundary + assurance first

  • runbook://docs/boundaryHard safety boundary: no credentials, no trades, advisory only.
  • runbook://docs/tool-contractMachine-readable tool effects and brokerEffect flags.
  • runbook://docs/assuranceSeparate assurance axes. Composite scores prohibited.
  • runbook://docs/robinhood-agentic-contractDated public-doc research map. Not live inventory.
  • runbook://schemas/shadow-pilot-manifestStrict shadow-pilot.v1 manifest schema.
  • runbook://examples/shadow-pilot.manifestDisconnected zero-capital example.
  • runbook://examples/equity-only-charter-policyEquity-only charter policy sample.
  • runbook://ledger/verificationCurrent local ledger verification summary.

Offline fixture demos

Closed catalog cards

Diff 45 → 50Documentation delta · five observation tools

Compare registry.trading-45 vs registry.trading-50 via runbook_diff_capabilities. Exercises fail-closed drift — not a historical runtime claim.

{
  "name": "runbook_diff_capabilities",
  "arguments": {
    "leftFixtureId": "registry.trading-45",
    "rightFixtureId": "registry.trading-50"
  }
}
Reject risk-correctionReject · unknownRiskDecision: reject

Admit registry.trading-50-risk-correction against the public-docs-review-required policy. Active head does not advance.

{
  "name": "runbook_admit_capabilities",
  "arguments": {
    "snapshotFixtureId": "registry.trading-50-risk-correction",
    "policyFixtureId": "registry.policy.public-docs-review-required"
  }
}
Capsule twinValid root · invalid tampered twin

Verify capsule.minimal-root (valid) then capsule.minimal-tampered (payload tamper). Integrity relative to self-asserted author key only.

{
  "name": "runbook_verify_capsule",
  "arguments": {
    "fixtureId": "capsule.minimal-root"
  }
}

Owned-data bridge

Paste a public snapshot

Validate runbook.public-snapshot.v1 locally with the same strict schema used by Trust Center. Metadata only—no payloads, actor IDs, symbols, or notionals. Limit 2,097,152 bytes. No upload.

Shadow pilot doctor

Offline readiness CLI

pilot-doctor is a deterministic offline readiness check. It does not call Robinhood, inspect a remote MCP, authenticate, move capital, or execute an order. A pass means local-attestation-and-ledger-only—not system-wide broker absence.

export RUNBOOK_SHADOW_DATA_DIR="$HOME/.runbook-shadow-pilot"
pnpm --filter @runbook/mcp build
node packages/mcp/dist/cli.js pilot-doctor \
  packages/mcp/examples/shadow-pilot.manifest.json \
  --data-dir "$RUNBOOK_SHADOW_DATA_DIR" \
  --ledger-id shadow-pilot \
  --workspace-root "$PWD"

Export a metadata snapshot after a valid ledger with node packages/mcp/dist/cli.js export-public RUN-001, then paste it above or in Trust Center.

“Allowed” on preflight means the submitted proposal passed recorded charter checks. It does not mean an account-wide control prevented other actions. Human confirmation must remain enabled and independently performed at the broker. This page never establishes a live broker session.