Describe the bug
APM's SimpleRegistryClient uses the /v0/ API prefix and a /v0/servers/search endpoint that do not exist in the official MCP Registry API specification. This causes apm install --mcp with --registry to fail against any registry implementing the official spec.
The official Generic Registry API defines all endpoints under /v0.1/:
| Endpoint |
Purpose |
GET /v0.1/servers |
List all servers (with pagination) |
GET /v0.1/servers/{serverName}/versions |
List all versions of a server |
GET /v0.1/servers/{serverName}/versions/{version} |
Get specific version (use latest) |
APM's SimpleRegistryClient (src/apm_cli/registry/client.py) instead calls:
| Method |
Endpoint called |
Issue |
list_servers() |
GET /v0/servers |
Wrong prefix (/v0/ vs /v0.1/) |
search_servers() |
GET /v0/servers/search?q=... |
Endpoint does not exist in the spec |
get_server_info() |
GET /v0/servers/{id} |
Spec uses /{serverName}/versions/{version} |
The Official Registry API uses a search query parameter on GET /v0.1/servers?search=..., not a separate /search endpoint.
To Reproduce
- Deploy an MCP registry implementing the official spec (e.g.
https://my-registry.example.com)
- Publish a server (e.g.
my-org/my-server)
- Verify it exists:
curl "https://my-registry.example.com/v0.1/servers?name=my-org/my-server" → server found
- Run:
apm install --mcp my-org/my-server --registry https://my-registry.example.com
- See error:
[>] Looking up 1 MCP server in registry...
[x] Server(s) not found in registry: my-org/my-server
Expected behavior
APM should use the /v0.1/ API prefix and spec-compliant endpoints to resolve servers from any registry implementing the official MCP Registry API. Suggested changes:
- Use
/v0.1/ prefix instead of /v0/
- Replace
GET /v0/servers/search?q=... with GET /v0.1/servers?search=...
- Use
GET /v0.1/servers/{serverName}/versions/latest for individual server lookup
- URL-encode server names in paths (e.g.
my-org%2Fmy-server)
Environment:
- OS: macOS 14.7.3 (23H417)
- APM Version: 0.12.4 (6aceef7)
Additional context
Describe the bug
APM's
SimpleRegistryClientuses the/v0/API prefix and a/v0/servers/searchendpoint that do not exist in the official MCP Registry API specification. This causesapm install --mcpwith--registryto fail against any registry implementing the official spec.The official Generic Registry API defines all endpoints under
/v0.1/:GET /v0.1/serversGET /v0.1/servers/{serverName}/versionsGET /v0.1/servers/{serverName}/versions/{version}latest)APM's
SimpleRegistryClient(src/apm_cli/registry/client.py) instead calls:list_servers()GET /v0/servers/v0/vs/v0.1/)search_servers()GET /v0/servers/search?q=...get_server_info()GET /v0/servers/{id}/{serverName}/versions/{version}The Official Registry API uses a
searchquery parameter onGET /v0.1/servers?search=..., not a separate/searchendpoint.To Reproduce
https://my-registry.example.com)my-org/my-server)curl "https://my-registry.example.com/v0.1/servers?name=my-org/my-server"→ server foundapm install --mcp my-org/my-server --registry https://my-registry.example.comExpected behavior
APM should use the
/v0.1/API prefix and spec-compliant endpoints to resolve servers from any registry implementing the official MCP Registry API. Suggested changes:/v0.1/prefix instead of/v0/GET /v0/servers/search?q=...withGET /v0.1/servers?search=...GET /v0.1/servers/{serverName}/versions/latestfor individual server lookupmy-org%2Fmy-server)Environment:
Additional context