Skip to content

No MCP coverage for the /api/backup/* family (30 endpoints) #202

Description

@strausmann

npm run api:validate reports 32 endpoints without an MCP tool. 30 of them are the entire /api/backup/* family — not a 1.0.42 regression, it has never been covered.

Of the remaining two, neither is a real gap:

So the backup family is the only outstanding coverage gap in the server.

What is uncovered

Area Endpoints
Destinations GET/POST /destinations, GET/PUT/DELETE /destinations/{id}, POST /destinations/test, /destinations/{id}/test, /{id}/init, /{id}/rotate-key, /{id}/verify, /{id}/task
Configs GET/POST /configs, GET/PUT/DELETE /configs/{id}, POST /configs/{id}/run, /configs/{id}/stop
Snapshots GET /snapshots, DELETE /snapshots/{id}, GET /snapshots/diff, /{id}/browse, /{id}/dump, /{id}/metadata
Restore POST /restore, /restore/preview, /restore/stop
Misc GET /instance, GET /stack-dir-listing, GET /stack-path

Worth thinking about before implementing

Credentials. Destinations almost certainly carry storage credentials (S3 keys, repository passwords) in their config, and rotate-key is explicitly about key material. The same asymmetry as the secret providers likely applies: responses redacted, requests not. The TOOL_DESCRIPTION_SUFFIXES mechanism added in #201 is the place for that, but each endpoint needs checking against its handler first — not assumed.

Destructive surface. POST /restore overwrites live data, and DELETE /snapshots/{id} is irreversible. These deserve more care than a mechanical port of the endpoint list.

Streaming/binary. /snapshots/{id}/dump and /snapshots/{id}/browse return archive content; same payload considerations as images/load. They may be better left out than half-supported.

Scope. 30 endpoints is too much for one PR. A sensible cut is read-only first (list/get destinations, configs, snapshots, instance) — immediately useful for "what backups exist, when did they last run" without touching a single destructive or credential-carrying path. Write and restore operations can follow once the read side has proven the shapes.

Refs #196.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions