Summary
MCP_REGISTRY_URL is honoured on the install path (via SimpleRegistryClient.__init__ fallback chain) but ignored by the discovery commands, which hardcode the public registry URL.
Where
src/apm_cli/commands/mcp.py:32, 117, 304 instantiate RegistryIntegration("https://api.mcp.github.com")
- Should match
src/apm_cli/install/default_manager.py:115 which calls RegistryIntegration() with no arg, letting SimpleRegistryClient apply the env-var fallback (registry/client.py:19-21)
Impact
Enterprise users pointing APM at a private MCP registry get inconsistent behaviour: apm install --mcp <id> resolves against their internal registry, but apm mcp search, apm mcp list, and apm mcp show keep hitting the public api.mcp.github.com. Discovery is broken for internal-only servers.
Fix
Drop the hardcoded URLs in commands/mcp.py -- construct RegistryIntegration() with no arg in all three call sites.
Docs
Behaviour is documented as a temporary asymmetry in guides/mcp-servers.md (PR #811). Drop the caution callout once this lands.
Found while documenting MCP_REGISTRY_URL in PR #811.
Co-authored-by: Copilot [email protected]
Summary
MCP_REGISTRY_URLis honoured on the install path (viaSimpleRegistryClient.__init__fallback chain) but ignored by the discovery commands, which hardcode the public registry URL.Where
src/apm_cli/commands/mcp.py:32, 117, 304instantiateRegistryIntegration("https://api.mcp.github.com")src/apm_cli/install/default_manager.py:115which callsRegistryIntegration()with no arg, lettingSimpleRegistryClientapply the env-var fallback (registry/client.py:19-21)Impact
Enterprise users pointing APM at a private MCP registry get inconsistent behaviour:
apm install --mcp <id>resolves against their internal registry, butapm mcp search,apm mcp list, andapm mcp showkeep hitting the publicapi.mcp.github.com. Discovery is broken for internal-only servers.Fix
Drop the hardcoded URLs in
commands/mcp.py-- constructRegistryIntegration()with no arg in all three call sites.Docs
Behaviour is documented as a temporary asymmetry in
guides/mcp-servers.md(PR #811). Drop the caution callout once this lands.Found while documenting
MCP_REGISTRY_URLin PR #811.Co-authored-by: Copilot [email protected]