Context
GET /v1/registry/snapshot (src/api/routes.ts:2314) returns the latest full registry snapshot (getLatestRegistrySnapshot) — public, unauthenticated, no path params. Its sibling route GET /v1/registry/changes (a two-snapshot diff over the same underlying data, buildRegistryChangeReport) is already exposed as loopover_get_registry_changes (remote MCP + local stdio). registry/snapshot — the raw current snapshot rather than a diff — has neither.
Requirements
⚠️ Required pattern — mirror loopover_get_registry_changes's two-surface shape exactly (src/mcp/server.ts:2320-2327, stdio registration packages/loopover-mcp/bin/loopover-mcp.ts:1896-1903). This tool takes no input (the REST route has zero path/query params) — use an empty/no-argument input schema, not ownerRepoShape. No separate human CLI verb exists for registry-changes either — do not add one here.
- Register
loopover_get_registry_snapshot as a remote MCP tool in src/mcp/server.ts, no input arguments, calling getLatestRegistrySnapshot exactly as the REST route does — including its not-found case (registry_snapshot_not_found when no snapshot exists yet).
- Add
loopover_get_registry_snapshot to MCP_TOOL_CATEGORIES as "utility" (the category loopover_get_registry_changes uses).
- Register
loopover_get_registry_snapshot as a local stdio MCP tool in packages/loopover-mcp/bin/loopover-mcp.ts, calling GET /v1/registry/snapshot via apiGet.
- Do not add a new human-typable CLI verb.
- Do not change
getLatestRegistrySnapshot, the REST route, or its (lack of) auth.
Deliverables
Test Coverage Requirements
src/mcp/server.ts and packages/loopover-mcp are both under the 99%+ Codecov patch gate — cover both the found and not-found branches. Mirror loopover_get_registry_changes's test for the tool-registration shape.
Expected Outcome
loopover_get_registry_snapshot is reachable via remote MCP and local stdio MCP, matching its existing public REST route — an MCP client can pull the latest registry snapshot the same way it already can pull the registry-changes diff.
Links & Resources
src/api/routes.ts:2314 (existing REST route, public/unauthenticated)
src/mcp/server.ts:2320-2327, packages/loopover-mcp/bin/loopover-mcp.ts:1896-1903 (the loopover_get_registry_changes pattern to mirror)
src/mcp/server.ts:1798-1890 (MCP_TOOL_CATEGORIES map)
Context
GET /v1/registry/snapshot(src/api/routes.ts:2314) returns the latest full registry snapshot (getLatestRegistrySnapshot) — public, unauthenticated, no path params. Its sibling routeGET /v1/registry/changes(a two-snapshot diff over the same underlying data,buildRegistryChangeReport) is already exposed asloopover_get_registry_changes(remote MCP + local stdio).registry/snapshot— the raw current snapshot rather than a diff — has neither.Requirements
loopover_get_registry_snapshotas a remote MCP tool insrc/mcp/server.ts, no input arguments, callinggetLatestRegistrySnapshotexactly as the REST route does — including its not-found case (registry_snapshot_not_foundwhen no snapshot exists yet).loopover_get_registry_snapshottoMCP_TOOL_CATEGORIESas"utility"(the categoryloopover_get_registry_changesuses).loopover_get_registry_snapshotas a local stdio MCP tool inpackages/loopover-mcp/bin/loopover-mcp.ts, callingGET /v1/registry/snapshotviaapiGet.getLatestRegistrySnapshot, the REST route, or its (lack of) auth.Deliverables
loopover_get_registry_snapshotregistered as a remote MCP tool insrc/mcp/server.ts, category"utility", no-argument input.loopover_get_registry_snapshotregistered as a local stdio MCP tool inpackages/loopover-mcp/bin/loopover-mcp.ts.Test Coverage Requirements
src/mcp/server.tsandpackages/loopover-mcpare both under the 99%+ Codecov patch gate — cover both the found and not-found branches. Mirrorloopover_get_registry_changes's test for the tool-registration shape.Expected Outcome
loopover_get_registry_snapshotis reachable via remote MCP and local stdio MCP, matching its existing public REST route — an MCP client can pull the latest registry snapshot the same way it already can pull the registry-changes diff.Links & Resources
src/api/routes.ts:2314(existing REST route, public/unauthenticated)src/mcp/server.ts:2320-2327,packages/loopover-mcp/bin/loopover-mcp.ts:1896-1903(theloopover_get_registry_changespattern to mirror)src/mcp/server.ts:1798-1890(MCP_TOOL_CATEGORIESmap)