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
At the moment I think server.json is a bit of a pain because it conflates two things:
information about the server itself
information that the registry uses to manage the server, e.g. tags like is_latest, published_at or the registry-generated id
I think we should split these up. That means tools can upload a complete server.json, without actually being some special weird subset of server.json without the registry values
I agree that server.json should be immutable per version per MCP server entry. The intent is for server.json (here) to be that universal, static artifact, and for the /servers/:id endpoint (as defined here) to serve as that "registry management" information (a large subset of which is aligned with server.json)
But I think this already the state of things? Maybe there is some implementation quirk leading to this not currently being the case. From a requirements perspective --
information that the registry uses to manage the server, e.g. tags like is_latest, published_at or the registry-generated id
These three fields are part of the /servers/:id response in the OpenAPI spec, but not part of the server.json spec; which I think is aligned with what you're proposing here. Are you seeing otherwise somewhere?
I'm not opposed to that, but what do you think is the motivation for the change?
The registry-specific data seems like it could just be considered "MCP Registry vendor metadata" in line with this issue (though indeed whatever we conclude there might influence the precise final shape here). My gut would be to align with that as if the MCP Registry is just another "vendor" rather than introduce a one-off opinionated shape.
That means tools can upload a complete server.json
I think they still could even if we don't change anything; the uploaded artifact doesn't need to contain the registry-specific metadata.
@tadasant Yeah that's fair! I guess I'd be happier with putting all the extra stuff under a x-official-registry property then (or whatever we do agree in #201) - rather than having it spread over the model as it is now. Will continue discussions there about what this looks like then move things over to that.
@rdimitrov I think metadata could be added at two points:
at publish time, a publisher might add extra vendor extension properties
when registries host server.json's they might want to add extra vendor extension properties (e.g. the Anthropic registry might want to add something like x-anthropic.com/security-scanned-at or x-anthropic.com/featured-on-connectors-homepage)
Activity
tadasant commentedon Aug 13, 2025
I agree that
server.jsonshould be immutable perversionper MCP server entry. The intent is forserver.json(here) to be that universal, static artifact, and for the/servers/:idendpoint (as defined here) to serve as that "registry management" information (a large subset of which is aligned withserver.json)But I think this already the state of things? Maybe there is some implementation quirk leading to this not currently being the case. From a requirements perspective --
These three fields are part of the /servers/:id response in the OpenAPI spec, but not part of the server.json spec; which I think is aligned with what you're proposing here. Are you seeing otherwise somewhere?
domdomegg commentedon Aug 14, 2025
Ah okay - I guess maybe my proposal is:
/servers/:idand/serversshould return a shape that looks more like:{ "id": "75d362b1-0490-46e9-a3c1-f4ad2d5cb7c9", "serverJson": { /* the immutable server json */ }, "registryMeta": { "is_latest": true, "published_at": ... } }tadasant commentedon Aug 18, 2025
I'm not opposed to that, but what do you think is the motivation for the change?
The registry-specific data seems like it could just be considered "MCP Registry vendor metadata" in line with this issue (though indeed whatever we conclude there might influence the precise final shape here). My gut would be to align with that as if the MCP Registry is just another "vendor" rather than introduce a one-off opinionated shape.
I think they still could even if we don't change anything; the uploaded artifact doesn't need to contain the registry-specific metadata.
rdimitrov commentedon Aug 18, 2025
I think the vendor metadata extensions are supposed to be part of
serverJsonas this is what is being published by vendors or that's not correct?domdomegg commentedon Aug 18, 2025
@tadasant Yeah that's fair! I guess I'd be happier with putting all the extra stuff under a
x-official-registryproperty then (or whatever we do agree in #201) - rather than having it spread over the model as it is now. Will continue discussions there about what this looks like then move things over to that.@rdimitrov I think metadata could be added at two points:
server.json's they might want to add extra vendor extension properties (e.g. the Anthropic registry might want to add something likex-anthropic.com/security-scanned-atorx-anthropic.com/featured-on-connectors-homepage)domdomegg commentedon Aug 19, 2025
To join up this and a couple other issues, I opened a discussion here with a concrete proposal for that tackles this and others: #284
domdomegg commentedon Aug 23, 2025
Resolved in #298