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

MCP `backups`: where snapshots go and the last ones taken, for a forge admin #5448

shipped production is serving it opened this has it
opened this

Replaces #5415, the same done started fresh from main. Both tries went red on tests the change never touched, and this waits for their fixes.

Done:

  • [ ] A read-only tool backups answers the destination's kind and place, never a credential, or null with the page's sentence when none is set. It also answers the last snapshots the store holds (key, when, size) and the off-box mirror's state. It reads through the same functions /settings/backups uses (src/web/pages/backups.ts: resolveDestination, the snapshot listing, mirrorNeed), behind the page's admin check, so anyone else is refused in the page's words.
  • [ ] One row in docs/MCP.md.
  • [ ] test/mcp-backups.test.ts covers three cases: an admin with no destination gets the sentence; an admin with a local destination and one snapshot sees it; a non-admin is refused. Each fails without the tool.
  • [ ] Before pushing, run test/mcp-backups.test.ts, test/mcp.test.ts, test/mcp-docs.test.ts, test/mcp-size.test.ts and bun x tsc --noEmit. A red test elsewhere that main also has is named in the pull, not a reason to stop.

Files: src/http/mcp.ts, docs/MCP.md, test/mcp-backups.test.ts. Risk: test/mcp-size.test.ts caps tools/list. Keep the description to one short sentence and give the tool no arguments.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs