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

MCP restore_drill, scorecard, reports and usage draw ui:// cards, as held and board do #11475

shipped production is serving it opened this has it
opened this

Intent: harnesses that render MCP Apps (Claude, ChatGPT, VS Code) show a card for 15 tools today; these four answer plain JSON in a harness that could draw them.

Done, one box per tool:

  • [x] restore_drill draws ui://forge/drill: verdict in one word, failed step, when.
  • [x] scorecard draws ui://forge/scorecard: one row per member, the number beside its dial.
  • [x] reports draws ui://forge/reports: one row per report, state, linked.
  • [x] usage draws ui://forge/usage: the window's figures as rows.

Each card is escaped, carries data- free plain markup like src/web/studio/cards.ts's others, and the tool's JSON is unchanged. One test per card in the style of test/mcp-held-tool-card.test.ts; docs/MCP.md lists them; bun scripts/mcp-table.ts run; bun test test/mcp-size.test.ts passes without raising a ceiling. No new tool: reuse the existing ones.

Files: src/web/studio/cards.ts, src/http/mcp/tools/restore_drill.ts, scorecard.ts, reports.ts, usage.ts, docs/MCP.md, test/mcp-*-card.test.ts Risks: tools/list bytes: descriptions must not grow; two pulls are fine Brief: an MCP builder (torque). A person assigns. Every behaviour added has a test that fails without it; bun test passes; touching src/web runs bun scripts/design-lint.ts.

commented

Reviewed pull #11503 at its head: ticked restore_drill draws ui://forge/drill: verdict in one word, failed step, when.; scorecard draws ui://forge/scorecard: one row per member, the number beside its dial.; reports draws ui://forge/reports: one row per report, state, linked.; usage draws ui://forge/usage: the window's figures as rows..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs