You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have verified this would not be more appropriate as a feature request in a specific repository
I have searched existing discussions to avoid duplicates
Your Idea
Context
The current handling of ui.domain in the MCP apps spec leads to fragmentation across host implementations.
Today:
OpenAI requires a URL and derives a domain like: https://mydomain.com → mydomain-com.oaicontent.com
Anthropic (Claude) derives a domain from a hash of the MCP URL: $hash.claudemcpcontent.com
This creates a portability issue:
-The same MCP app results in different origins depending on the host
-Developers must understand host-specific policies
No stable origin → limits reuse of browser primitives (e.g. localStorage, cookies, origin-scoped caching)
Problem
ui.domain is currently underspecified in terms of:
-Deterministic derivation
-Cross-host consistency
-Intended use (security boundary vs persistence vs isolation)
As a result:
-Implementations diverge
-Apps are not portable without adaptation
-Cross-platform state persistence is effectively impossible
Proposal
Introduce a standardized, host-agnostic origin scheme.
Reserved shared domain
Allocate: mcpappscontent.com
We (mcpappsbuilders.com) have bought this domain, and are really happy to offer it for this purpose.
Governance: neutral body (e.g. Agentic AI Foundation or equivalent)
Deterministic origin format
hash.mcpappscontent.com
hash = stable hash of MCP app identifier (e.g. MCP URL or manifest digest)
Opt-in mechanism (optional)
{
"ui": {
"request_portability": true
}
}
Host behavior
If request_portability = true:
Host MUST use: hash.mcpappscontent.com
Host only needs to serve a blank HTML shell, Actual UI content is still injected from MCP resources (unchanged model)
Rationale
Portability
Same app → same origin across all compliant hosts
Predictability
Developers can reason about storage, caching, and security once
Makes MCP apps closer to a true “write once, run anywhere” model
Open Questions
What should be the canonical input for the hash?
MCP URL?
Manifest digest?
App ID?
Should hosts be REQUIRED to honor request_portability, or is MAY sufficient?
Should the spec define: Hash algorithm? Length / encoding?
Is a foundation-managed domain necessary, or could this be purely spec-defined without DNS ownership?
Conclusion
Standardizing ui.domain behind an opt-in portability flag removes unnecessary divergence while preserving host flexibility. The implementation cost is minimal, and the upside for developer experience and ecosystem cohesion is significant.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Pre-submission Checklist
Your Idea
Context
The current handling of ui.domain in the MCP apps spec leads to fragmentation across host implementations.
Today:
This creates a portability issue:
-The same MCP app results in different origins depending on the host
-Developers must understand host-specific policies
Problem
ui.domain is currently underspecified in terms of:
-Deterministic derivation
-Cross-host consistency
-Intended use (security boundary vs persistence vs isolation)
As a result:
-Implementations diverge
-Apps are not portable without adaptation
-Cross-platform state persistence is effectively impossible
Proposal
Introduce a standardized, host-agnostic origin scheme.
Allocate: mcpappscontent.com
We (mcpappsbuilders.com) have bought this domain, and are really happy to offer it for this purpose.
Governance: neutral body (e.g. Agentic AI Foundation or equivalent)
hash.mcpappscontent.com
hash = stable hash of MCP app identifier (e.g. MCP URL or manifest digest)
If request_portability = true:
Host MUST use: hash.mcpappscontent.com
Host only needs to serve a blank HTML shell, Actual UI content is still injected from MCP resources (unchanged model)
Rationale
Same app → same origin across all compliant hosts
Developers can reason about storage, caching, and security once
Hosts already generate synthetic origins
This only standardizes the derivation
Backward compatibility
Fully opt-in
Existing host-specific schemes remain valid
Ecosystem alignment
Enables consistent behavior across:
Security Considerations
Additional Benefits
Open Questions
What should be the canonical input for the hash?
Conclusion
Standardizing ui.domain behind an opt-in portability flag removes unnecessary divergence while preserving host flexibility. The implementation cost is minimal, and the upside for developer experience and ecosystem cohesion is significant.
Scope
Beta Was this translation helpful? Give feedback.
All reactions