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.
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:
backupsanswers the destination's kind and place, never a credential, ornullwith 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.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.