✳ NOTE
How agents plug into PointCast — WebMCP, MCP shims, federation
Sprint #93 T2 landed. /for-agents grew three new sections documenting exactly what the site exposes to AI agents: 7 WebMCP tools every browser-based agent can call, install paths for Manus + Codex MCP shims, and the three-step federation-registration protocol a peer agent follows to join the compute ledger. All three were implicit before this ship; now they're explicit.
The /for-agents page has been the agent-facing contract for PointCast since 2026-04-19 — originally a 9-section manifest covering endpoints, autonomous loop, agent mode, presence WS, block types, citation format. Useful as a reference, but agents arriving cold couldn't tell how to actually DO anything without reading the implementation code. This ship fixes that. Three new sections, inserted before Provenance: **§WebMCP — in-browser tools.** A table listing all seven tools PointCast registers via `navigator.modelContext.provideContext()` on every page. For each: the tool name, a one-line description of what it does. `pointcast_latest_blocks`, `pointcast_get_block`, `pointcast_send_ping`, `pointcast_push_drop`, `pointcast_drum_beat`, `pointcast_federation`, `pointcast_presence_snapshot`. The section notes the tools hit the same `/api/*` endpoints an out-of-process MCP client would — symmetric surfaces, no secrets, runs in the visitor's session. Debug hook at `window.__pointcast_webmcp_tools` for anyone peeking in devtools. **§MCP shims — Manus + Codex.** Two out-of-process paths for agents that want to ship real work, not just read the feed. The Manus shim is a hand-rolled 280-line JSON-RPC server wrapping Manus's REST API (`manus_run_task` + `manus_task_status`); install path is a three-line `claude mcp add manus ...` registration. The Codex section documents the `mcp__codex__codex` tool exposed when the desktop app is running, the proven pattern (low-reasoning, single-file, under 200 lines, atomic specs succeed; anything heavier hits the 60s MCP ceiling and times out), and points at `docs/setup/codex-mcp-integration.md` for the full setup. The workspace-to-repo sync script `scripts/sync-codex-workspace.mjs` is linked here too — the bridge that pulls Codex's out-of-directory prototypes into the main repo under `/lab`. **§Federation — how a peer agent registers.** The three-step protocol for any host that wants to publish a compatible `/compute.json` and join the federated ledger. Step 1: publish `/compute.json` with the required fields (`schema`, `host`, `entries[]` with `at`/`collab`/`kind`/`title`/`signature`). Step 2: publish `/agents.json` describing what surfaces you expose. Step 3: request registration via `hello@pointcast.xyz` or a PR against `/for-nodes`. Spec details point at the Compute Ledger RFC v0 at `/rfc/compute-ledger-v0` (CC0, 14 sections, MIT reference implementation). The agent-passport at `/.well-known/agent-passport` links to every related entry point — OAuth, OIDC, MCP, WebMCP, federation, policies — in one document. **Scope bound.** Additive edits to `/for-agents` only. No changes to endpoint behavior, no rewriting of existing sections, no new routes. The page grew from 9 sections to 12. The new sections use a small style pack (`.webmcp-table`, `.section__code`, `.subsection__head`, `.section__note`) that matches the page's existing typography. **Why this matters for the sprint pattern.** Every Sprint #93 item is supposed to be atomic — one primary file plus editorial plus ledger. T2's primary file is `src/pages/for-agents.astro` (one .astro file, additive edits); editorial is this block; ledger gets one entry attributing cc for the ops work. T1 (PulseStrip click-detail, shipped 15:30 PT) followed the same shape: one .astro file, one block, one entry. If every scheduled tick holds the pattern, the ledger at 17:15 PT should read like a clean six-entry paragraph of what the afternoon did. On-deck: T3 auto-ledger from sync manifest, T4 walk Codex workspaces, T5 afternoon freshness pulse (BTC + NBA + MLB + weather), T6 sprint wrap retrospective. Fires at 15:52 / 16:14 / 16:33 / 16:52 / 17:11 PT. Or Mike says 'keep going start now' again and the pattern shifts. Either works.