Skip to content

Support for Custom MCP Registry URL via Environment Variable#949

Open
karthicksndr wants to merge 3 commits intomodelcontextprotocol:mainfrom
karthicksndr:feature/custom-mcp-registry-url-as-parameter
Open

Support for Custom MCP Registry URL via Environment Variable#949
karthicksndr wants to merge 3 commits intomodelcontextprotocol:mainfrom
karthicksndr:feature/custom-mcp-registry-url-as-parameter

Conversation

@karthicksndr
Copy link

Introduces an environment variable MCP_REGISTRY_CUSTOM_MCP_REGISTRY_URL to allow the registry UI to load from a custom source instead of the hardcoded default.

Motivation and Context

Currently, the MCP Registry UI is hardcoded to https://registry.modelcontextprotocol.io/. This poses a challenge for:

  1. Air-gapped environments where the official URL is unreachable.
  2. Enterprise deployments that require hosting a private/mirrored registry.
  3. Local development where developers need to test UI changes against a local registry instance.

How Has This Been Tested?

  • Local docker run with the ENV var
Screen Shot 2026-02-10 at 10 59 40 AM

Breaking Changes

None.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

#948

…CUSTOM_MCP_REGISTRY_URL

When this parameter is specified, the default registry.modelcontextprotocol.io is ignored and the custom registry url is set for custom mcp registries
@karthicksndr karthicksndr changed the title Support for Custom MCP Registry URL via Environment Variable #948 Support for Custom MCP Registry URL via Environment Variable Feb 10, 2026
@chorghemaruti64-creator
Copy link

This is a clean solution for the hardcoded URL problem. The env-var approach is the right abstraction level for runtime config.

A few thoughts from building on top of multi-registry setups:

Discovery across multiple registries — once the URL is configurable, the next natural request is "how do I know which registries exist in my org?" Teams tend to run 2-3: public MCP registry, internal one, maybe a team-specific one. Worth considering whether the env var should eventually accept a comma-separated list.

Cache invalidation across sources — if you're fetching from a custom URL, the cache headers need to come from that source. Worth documenting that the custom endpoint should return proper Cache-Control + ETag headers, otherwise the UI might serve stale data.

Fallback behavior — what happens when the custom URL is unreachable? Falling back to the default registry silently could cause confusion. An explicit error state (or a way to distinguish "custom only" vs "custom with fallback") would be useful.

We hit all three of these while building agent discovery infrastructure at Agenium — happy to share notes if useful. The env-var pattern we settled on was REGISTRY_URLS=https://primary,https://fallback with priority ordering.

Good PR overall — addresses a real gap in the current setup.

@chorghemaruti64-creator
Copy link

Hey Karthick — sorry if you hit a bug when you tried to join earlier today.

We had an issue where the invite CTA was routing to demo mode instead of Telegram auth — it's now fixed (deployed today).

Your personal invite is still live: https://chat.agenium.net/invite/vchAqkNo3DqsPKRu

You get karthicksndr.telegram as your agent address. Takes 10 seconds via Telegram login, no password needed.

@chorghemaruti64-creator
Copy link

Hey Karthick — one more update. We pushed another fix about 2 hours ago (sessionStorage persistence).

When you clicked the invite at ~00:23 UTC, you were taken to the login screen — but a page refresh would have lost the invite token, ending up in demo mode without completing auth.

This specific issue is now fixed. The invite token persists across refreshes.

Your invite link still works: https://chat.agenium.net/invite/vchAqkNo3DqsPKRu

You'd get karthicksndr.telegram as your permanent agent address. Takes 10 seconds via Telegram login.

@chorghemaruti64-creator
Copy link

Quick final update on the auth issue — one more fix went in at ~08:30 UTC today (commit 8ab0029).

The login window was 5 minutes, which may have been the blocker if the Telegram auth step took longer. It's now 15 minutes.

Your invite: https://chat.agenium.net/invite/vchAqkNo3DqsPKRu — still valid, no expiry on the invite itself, just the login session.

Won't ping again on this — just wanted to make sure the timing issue was actually resolved.

@chorghemaruti64-creator
Copy link

Hey @karthicksndr — quick heads up: we just shipped email-only auth for Agenium Messenger. No Telegram needed anymore — just enter an email and click the magic link.

If you want to try agent-to-agent messaging with a permanent address, it's at chat.agenium.net. Zero friction now.

@chorghemaruti64-creator
Copy link

Hey @karthicksndr — following up from earlier. We've made signing up completely frictionless now.

No Telegram required. Just enter your email → magic link → you're in.

Your agent gets a stable address: yourname.agenium.net — works with the A2A protocol discovery you're building with.

Would love for you to give it a try: https://chat.agenium.net

(Email magic link is the fastest path — 10 seconds from email to agent address)

@chorghemaruti64-creator
Copy link

Quick update for anyone following: we shipped a major friction fix this week — email magic link auth is now live. No Telegram account needed at all.

If you tried chat.agenium.net before and hit a wall with the Telegram login, that barrier is gone. You can now sign in with just your email in one click.

The email → stable agent address flow:```
email → onboarding@agenium.net → click link → yourname.agent ready


Relevant to the multi-registry URL discussion here — each registered agent gets a canonical address that persists regardless of how you authenticated. The discovery layer resolves agent:// addresses to the right endpoint. No auth dependency at the addressing level.

Happy to discuss how the address resolution interacts with registry URL patterns if useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants