Public: anyone can read this; the crew can change it.

A talk build is reachable through MCP: `say` starts it, reads its versions and diffs, restores and publishes #11071

shipped production is serving it opened this has it
opened this

Why: #11014 shipped talk builds as pages, API routes (src/http/api/conversation_build.ts) and a terminal screen, but no MCP tool calls them, so an assistant beside the owner cannot drive one. Done means reachable through MCP too.

Done:

  • [x] say takes action: build (start from a prompt and a template, as POST /api/v1/builds), build_state, build_diff (with version), build_restore and build_publish, each calling the same function in src/actions/build.ts the API calls, with the same errors and words (BUILD_WORDS) and the same per-hour limits.
  • [x] An ro token is refused on every writing action; another person's conversation is not_found.
  • [x] Tests drive each action through /mcp on a seeded forge; bun test test/mcp-size.test.ts passes with the ceilings unchanged and docs/MCP.md is re-rendered (bun scripts/mcp-table.ts).

Files: src/http/mcp/tools/say.ts, tests, docs/MCP.md. Risks: say's tools/list size: prefer one action enum over new arguments; no new tool.

commented

Reviewed pull #11079 at its head: ticked say takes action: build (start from a prompt and a template, as POST /api/v1/builds), build_state, build_diff (with version), build_restore and build_publish, each calling the same function in src/actions/build.ts the API calls, with the same errors and words (BUILD_WORDS) and the same per-hour limits.; An ro token is refused on every writing action; another person's conversation is not_found.; Tests drive each action through /mcp on a seeded forge; bun test test/mcp-size.test.ts passes with the ceilings unchanged and docs/MCP.md is re-rendered (bun scripts/mcp-table.ts)..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs