registry/docs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tadas Antanavicius 05422afffb
Split OpenAPI specs into base and official registry versions (#171)
Closes #149

As noted in the FAQ update here, this is a helpful starting point in
thinking about this:

```
### What is the difference between "Official MCP Registry", "MCP Registry", "MCP registry", "MCP Registry API", etc?

There are four underlying concepts:
- "MCP Server Registry API" (or "MCP Registry API"): The OpenAPI specification defined in [openapi.yaml](./server-registry-api/openapi.yaml). This is a reusable API specification that anyone building any sort of "MCP server registry" should consider adopting / aligning with.
- "Official MCP Registry" (or "MCP Registry"): The application that lives at `https://registry.modelcontextprotocol.io`. This registry currently only catalogs MCP servers, but may be extended in the future to also catalog MCP client/host apps and frameworks.
- "Official MCP Registry API": The REST API that lives at `https://registry.modelcontextprotocol.io/api`, with an OpenAPI specification defined at [official-registry-openapi.yaml](./server-registry-api/official-registry-openapi.yaml)
- "MCP server registry" (or "MCP registry"): A third party, likely commercial, implementation of the MCP Server Registry API or derivative specification.
```

Prior to this PR, we were just treating "MCP Server Registry API" and
"Official MCP Registry API" to be the same thing. They are not the same:
the latter is inherently a more constrained version of the former. A
private deployment of a similar registry need not have constraints like
"the only valid source code repositories are `github` and `gitlab`".

This PR separates out the definitions to match that path forward.

## Notable Changes

### Base OpenAPI spec (`openapi.yaml`)
- Removed official-registry-specific constraints:
  - No maximum limit on `/servers` endpoint
  - No enum constraint on `Repository.source`
  - No enum constraint on `Package.registry_name`
- Removed `/v0` prefix from paths (it's now just baked into the
`official` one's URL prefix)
- Added `$id` for proper schema identification

### Official Registry OpenAPI spec (`official-registry-openapi.yaml`)
- Created as a derivative of the base spec using `$ref`
- Re-adds official-registry-specific constraints:
  - `Repository.source` enum: `[github]`
  - `Package.registry_name` enum: `[npm, docker, pypi, nuget]`

### Documentation updates
- Added `server-registry-api/README.md` explaining the relationship
between specs
- Updated FAQ to clarify terminology
- Reorganized docs structure
2025-07-10 00:46:01 +00:00
..
server-json Split "general" server.json from "registry-specific" server.json (#167) 2025-07-09 14:02:43 -07:00
server-registry-api Split OpenAPI specs into base and official registry versions (#171) 2025-07-10 00:46:01 +00:00
architecture.md Add NuGet to the MCP Registry, similar to npm and Python 2025-07-07 12:28:19 -06:00
design_principles.md Add NuGet to the MCP Registry, similar to npm and Python 2025-07-07 12:28:19 -06:00
faq.md Split OpenAPI specs into base and official registry versions (#171) 2025-07-10 00:46:01 +00:00
MCP Developers Summit 2025 - Registry Talk Slides.pdf Add 2025-05-26 15:42:55 -07:00
new_package_registry.md Add new package registry document 2025-07-07 12:28:19 -06:00
README.md Add new package registry document 2025-07-07 12:28:19 -06:00
roadmap.md Rogue section 2025-06-26 17:18:34 -07:00

Official Registry Documentation

Project Documentation

design_principles.md - Core constraints and principles guiding the registry design

faq.md - Frequently asked questions about the MCP Registry

roadmap.md - High-level roadmap for the MCP Registry development

MCP Developers Summit 2025 - Registry Talk Slides.pdf - Slides from a talk given at the MCP Developers Summit on May 23, 2025, with an up-to-date vision of how we are thinking about the official registry.

API & Technical Specifications

openapi.yaml - OpenAPI specification for the official registry API

api_examples.md - Examples of what data will actually look like coming from the official registry API

architecture.md - Technical architecture, deployment strategies, and data flows

server.json README - description of the server.json purpose and schema

new_package_registry.md - steps to add a new package registry for local server packages