Replies: 1 comment
-
Closing this in favor of:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Inline comments on details being worked here: #3
Pre-submission Checklist
Discussion Topic
A working group of MCP community members are working towards building the "official MCP server registry". The initial deliverable we are sprinting towards is a REST API that centralizes metadata about MCP servers by leaning on server creators to submit and maintain metadata about their servers in a standardized format.
We envision that MCP client applications and other "server aggregator" type consumers will be able to leverage this metadata in order to power functions like "extensions", "MCP marketplaces", and other UX that involves discovering and installing MCP servers.
An official UI experience will likely come as a next-step after the initial API launch.
Big thank you to everyone who has contributed input on this working group so far: @alexhancock, @dsp-ant, @jspahrsummers, Marc-Antoine Belanger, Benjamin Eckel, Chris Dickinson, @macoughl, @ravinahp, @jerome3o-anthropic, Topher Bullock, Henry Mao
This RFC is the first of several we expect to solicit feedback on before starting to push code. We'd love input to make sure what we're building appropriately serves the MCP community at large.
The scope here: what is the public-facing API we wish to expose to server metadata consumers? The rest of this post is a first pass at this - open to any sort of commentary. As we feel aligned on the high level goals, we can move it into a PR where we iron out the line by line details.
Goals
Non-Goals
Considerations
Terminology
Transport Type is one of: Streamable, SSE, WebSockets, stdio, or any other custom transports over which MCP can be facilitated between client and server. Although “Streamable” involves an SSE connection in its lifecycle, we refer to Streamable (landed in the spec on 2025-03-26) as distinct from purely SSE, which was deprecated in that same revision. Read more here.
A Remote is an HTTP service representing an MCP server, accessible at some URL. An MCP client should be able to HTTP POST to this URL in order to kick off the Initialization step of the MCP lifecycle. A Remote should have exactly one Transport Type. If a Remote supports multiple Transport Types, we represent those as two distinct Remotes. Only multi-tenant enabled remotes would be listed here.
Use Cases & Consumers
MCP client applications should be able to leverage data obtained through this API to facilitate a “one click (or zero-click) install” experience within their user interfaces. This should be possible for both stdio-focused clients and web-focused clients.
Server aggregators facilitating various intermediate value props (e.g. hosting stdio servers as remotes; curation of quality servers) should be able to lean on this data without scraping the internet to discover new servers.
End-users of MCP should be able to leverage data obtained through this API to discover what MCP servers already exist that they may want to leverage within their usage of MCP client apps.
Endpoints
In general, we discourage direct usage of this API by user-powered actions. If you are the creator of an MCP client, we recommend you run a daily poll of this server metadata and maintain your own augmented copy to distribute to your users. This helps us keep scale for the centralized repository manageable.
This API will be defined as an OpenAPI schema.
GET /v1/servers
Request
Response
Server
Response (example)
GET /v1/servers/:id
Request
Response
Registry
Remote
CommandArguments
Subcommand
Argument
PositionalArgument
NamedArgument
EnvironmentVariable
Response (Example)
Notes
registry_canonical
is used to maintain the concept of “version”Beta Was this translation helpful? Give feedback.
All reactions