registry/docs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tadas Antanavicius a5f417b6f5
Split "general" server.json from "registry-specific" server.json (#167)
Closes #155

The "generalized" `server.json` is the one that can be used in a variety
of situations:

- Discoverability on a centralized registry (i.e. our official Registry
work)
- Discoverability on a decentralized .well-known endpoint
- As a response to an initialization call, so the client knows
information about the MCP server to which it is connecting
- As an input into crafting a [DXT
file](https://www.anthropic.com/engineering/desktop-extensions)
- Packaged in with the source code of an MCP server, so as to have a
structured way context

Of these, the official Registry is but one use case. The Registry has a
unique set of concerns for which we are optimizing, like whitelisting of
specific registries we trust to host MCP server source code for the
public community (`npm`, `pypi`, etc). It is not necessary to have such
a constraint for the generalized server.json, which may be used in, for
example, an internal context where such a validation doesn't make sense.

So I've done the following at a high level:
- Renamed the prior `schema.json` to be `registry-schema.json`
- Introduced a more generic `schema.json` to serve as the schema for the
generalized `server.json`
- Refactored `registry-schema.json` to be simply a constraint on the
base `schema.json`

I made a few small changes in this transition:
- Removed `gitlab` as an option in `repository.source` for
`registry-schema.json`. I'm fine going live with just GitHub support;
would be happy to take a contribution from e.g. Gitlab employees or a
motivated Gitlab customer to expand anytime.
- Removed `homebrew` as an option in `packages.registry_name`; never
really made sense, not a place where folks are publishing MCP servers
- Added `docker` to `packages.runtime_hint`; was just a missing
oversight
- Gave both schemas a global `$id`
~- Removed `release_date` from both schemas. Certainly not something
that makes sense for the generalized schema. It actually doesn't make
sense for the Registry schema either, because this is the server.json
that _users will submit_, i.e. the _input_ into the Registry publication
API. `release_date` will be a piece of _output_ metadata. The Registry
API will be free to append such extra metadata for GET /:id requests of
servers, and the data can be present in the OpenAPI spec, but it does
not need to be in the registry-server.json JSON schema.~
  - Note this is no longer in this PR; rebased on #168 which included it
- Removed unnecessary enums from the generalized `schema.json`
2025-07-09 14:02:43 -07:00
..
server-json Split "general" server.json from "registry-specific" server.json (#167) 2025-07-09 14:02:43 -07:00
api_examples.md Add 2025-05-26 15:42:55 -07: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 Add NuGet to the MCP Registry, similar to npm and Python 2025-07-07 12:28:19 -06: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
openapi.yaml Align the server.json schema with the YAML (#168) 2025-07-09 10:27:38 -07: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