docs: clarify reverse DNS namespacing rules for server names and extension metadata#926
Conversation
Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
Signed-off-by: Shingo OKAWA <shingo.okawa.g.h.c@gmail.com>
|
Looks good, it's helpful to have this written out clearly. From the MCP Protocol spec, it's less strict, more of a recommendation. Also not sure it mentiones the key name after the reverse domain: https://modelcontextprotocol.io/specification/2025-11-25/basic/index#_meta
Will this be a consistency problem? We have a strictly defined How do you see this fitting together @ognis1205 ? |
|
Thank you for the review @Fannon !
Good catch, thanks for sharing the reference!
Regarding this point, I re-read the shared documents and the MCP core spec schema definitions. On the other hand, as you pointed out, there is a potential concern about inconsistency specifically around how
My impression is that, even if it isn't stated explicitly in the current Given that assumption, it seems to me that the next step that best maintains both compatibility and consistency would be not to strengthen constraints at the OpenAPI description level, but instead to clearly document At least for What do you think @Fannon ? |
|
In my understanding the server.json is more strict and I clearly prefer having this fully specified out. But this strictness may not be able to be enforced on all So would you on the root level For |
|
FWIW I have been focusing the iterations on modelcontextprotocol/modelcontextprotocol#2127 rather than updating Registry docs for now. There are other omissions that I think we will need to bring up to speed on the Registry side (for example Also maybe relevant to this discussion (clarifying intent around core spec's _meta): modelcontextprotocol/modelcontextprotocol#1788 Generally on this PR: I had always just assumed "reverse DNS" essentially implied that subdomains were OK. I don't think this is the only way to ensure "uniqueness", in that the path after the prefix can also be used to make a |
I agree that the handling of the At the same time, my understanding is that the changes in this PR do not introduce a breaking change to the existing conventions, but rather make the intended convention more explicit for the affected part. Given that, I think it's reasonable to proceed with this PR as-is, and revisit the broader |
I agree with that approach. Focusing on landing SEP-2127 first, while using the Registry docs as a reference and limiting changes to deliberate ones, seems like the most efficient way to move forward.
Thanks for sharing this! I'll take a look at it as well.
I share that understanding as well. What I wanted to highlight here is that "reverse DNS namespacing" isn't strictly defined by any RFC; it's a convention rather than a strictly mechanical transformation. Because of that, it doesn't always feel obvious how a reverse DNS namespace should be derived from a given domain, and I worry that readers of the spec could reasonably be confused about what is expected. For example, given So my concern is that simply saying "use reverse DNS namespacing" doesn't make it clear whether this is meant to imply a strict, literal reversal, or whether including only selected subdomain levels is acceptable. The clarification is intended to make that flexibility explicit and reduce potential ambiguity for users reading the spec.
That's fair and to clarify, the uniqueness I'm concerned with here is not the uniqueness of the full
The motivation for this change comes from the example in the Registry docs: As shown there, the reverse DNS namespacing derived from This made me feel it would be helpful to explicitly clarify that a strict, literal application of reverse DNS is not required to determine a unique namespace. |
|
Thanks for the feedback, @Fannon and @tadasant . I completely agree that prioritizing SEP-2127 is the most efficient path forward. Since my point about reverse DNS is mainly to resolve the existing ambiguity in the docs, I'm happy to leave this as a reference or have it integrated into another PR later. If it helps reduce your review overhead, I can close this PR for now and revisit it once the core spec lands. |
Clarifies how reverse DNS namespacing is used in
server.json, explicitly documenting that subdomains may be included as necessary for uniqueness, and that there is no fixed limit on the number of domain segments.Motivation and Context
The current specification and examples use reverse DNS identifiers, but do not explicitly state whether subdomains are allowed or how many domain segments are valid.
This has led to potential ambiguity, especially when examples appear to use a fixed number of segments, which can be interpreted as an implicit constraint rather than a convention.
This change adds a short clarification to make it explicit that:
This aligns the documentation with common reverse DNS usage and helps avoid accidental namespace collisions.
How Has This Been Tested?
This change is documentation-only.
Breaking Changes
None.
Types of changes
Checklist
Additional context
modelcontextprotocol/modelcontextprotocol#2127