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
{{ message }}
Repository navigation
Discovery: consider GET-on-server-URL instead of (or alongside) .well-known for single-server cards #12
Server Card discovery is currently specified as a static document served from a .well-known path (/.well-known/mcp/server-card). This issue argues we should seriously consider not using .well-known at all for the single-server case, and instead let ai-catalog.json (or temporarily mcp/catalog.json) point to a (non-.well-known) URI containing the Server Card.
The use of .well-known for discovering applications like MCP Servers and A2A agents that are hosted on some origin is a misuse of .well-known, because applications are not "site-wide metadata".
AI Catalog/MCP Catalog is responsible for initial discovery. So there is no value in using the .well-known standard for placing the final Server Card; an MCP client only needs to be aware of the Catalog's .well-known URI and the Server Card URI can live anywhere.
Proposed resolution
@SamMorrowDrums and I are thinking some spec wording roughly like so:
In the course of Discovery, after an MCP Client identifies a Server Card URL from an AI Catalog or MCP Catalog, MCP Clients SHOULD set Content-Type to `application/mcp-server-card+json` when performing a GET request to the Server Card's URL.
MCP Servers MAY host their Server Card at `GET <streamable http url>/server-card`, which we reserve for this purpose, though any unreserved URI is valid. MCP Servers SHOULD respect Content-Type `application/mcp-server-card+json` wherever they choose to host it.
Alternative guidance considered: GET directly on <streamable http url>. Choosing not to recommend this just to avoid overloading that endpoint that is already used for establishing the SSE connection, but it would technically be spec-compliant (as written above) to put it there as well.
@SamMorrowDrums and I think using .well-known here is a legacy decision back from when we thought Server Card would also be the discovery entrypoint, and also back when we made the decision to not allow reverse-engineering the location of a Server Card based on the reverse DNS name (i.e. com.example/my-mcp would have its Card at example.com/mcp/server-card/my-mcp -- we don't want this because that tightly couples name to this unintuitive reverse engineering).
Activity
tadasant commentedon Jun 1, 2026
@SamMorrowDrums and I think using
.well-knownhere is a legacy decision back from when we thought Server Card would also be the discovery entrypoint, and also back when we made the decision to not allow reverse-engineering the location of a Server Card based on the reverse DNSname(i.e.com.example/my-mcpwould have its Card atexample.com/mcp/server-card/my-mcp-- we don't want this because that tightly couplesnameto this unintuitive reverse engineering).References:
Server Cards: recommend `/server-card` over `.well-known` (resolves #12)
docs: require Server Card to be consistent with runtime behavior (#25)