Skip to content

loopover_get_registry_snapshot has a REST route but no remote MCP tool or local stdio MCP tool #7803

Description

@JSONbored

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

  • loopover_get_registry_snapshot registered as a remote MCP tool in src/mcp/server.ts, category "utility", no-argument input.
  • loopover_get_registry_snapshot registered as a local stdio MCP tool in packages/loopover-mcp/bin/loopover-mcp.ts.
  • The tool's not-found case (no snapshot exists yet) is handled as a normal result, not an unhandled throw.
  • No new REST route and no new human CLI verb.

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.help wantedExtra attention is needed

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions