Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,945 changes: 0 additions & 2,945 deletions complete.md

This file was deleted.

1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ The MCP registry provides MCP clients with a list of MCP servers, like an app st
- 📖 [Reference](./reference/) - Technical specifications
- 🔧 [Contributing guides](./contributing/) - How to contribute
- 🔒 [Administration](./administration/) - Admin operations
- 🤝 [Community projects](./community-projects.md) - Notable registry-related work from the community
2 changes: 1 addition & 1 deletion docs/administration/maintainer-onboarding.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ When onboarding a new maintainer, complete the following steps:

### 3. README.md

- [ ] Add them to the "Current key maintainers" section in [README.md](../../README.md)
- [ ] Add them to the "Registry Working Group" section in [README.md](../../README.md)

### 4. Discord

Expand Down
5 changes: 2 additions & 3 deletions docs/contributing/add-package-registry.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,5 @@ These steps may evolve as additional validations or details are discovered and m
- Add corresponding unit tests: `internal/validators/registries/yourregistry_test.go`
- Register your validator in `internal/validators/validators.go`
- Update the publishing documentation:
- Add a new publishing guide: `docs/guides/publishing/publish-[yourregistry].md`, following the pattern of existing publishing guides (e.g., `publish-npm.md`, `publish-pypi.md`)
- Include instructions on how to prepare packages for your registry, including any specific validation requirements
- Update `docs/guides/publishing/README.md` to reference your new publishing guide
- Add a section for your registry to `docs/modelcontextprotocol-io/package-types.mdx`, following the pattern of the existing registries (npm, PyPI, NuGet, ...)
- Include instructions on how to prepare packages for your registry, and an `### Ownership Verification` subsection describing the validation your registry requires
4 changes: 2 additions & 2 deletions docs/contributing/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
1. **Go to GitHub**: Navigate to https://github.com/modelcontextprotocol/registry/releases
2. **Click "Draft a new release"**
3. **Choose a tag**: Click "Choose a tag" and type a new semantic version that follows the last one available (e.g., `v1.0.0`)
5. **Generate notes**: Click "Generate release notes" to auto-populate the name and description
6. **Publish**: Click "Publish release"
4. **Generate notes**: Click "Generate release notes" to auto-populate the name and description
5. **Publish**: Click "Publish release"

The release workflow will automatically:
- Build binaries for 6 platforms (Linux, macOS, Windows × amd64, arm64)
Expand Down
4 changes: 2 additions & 2 deletions docs/design/design-principles.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ The registry serves as the authoritative metadata repository for publicly-availa
- Use mechanisms like DNS verification, OAuth to provide base layer of authentication and trust
- Implement rate limiting, field validation, and blacklisting to prevent abuse

## 6. Reusable, Extensible Shapes; Not Infrastructure
## 5. Reusable, Extensible Shapes; Not Infrastructure

- API shapes (OpenAPI, server.json) designed for reuse
- Enable private/internal registries using same formats
- Don't mandate infrastructure reuse - focus on interface compatibility

## 7. Progressive Enhancement
## 6. Progressive Enhancement

- Start with MVP that provides immediate value
- Build foundation that supports future features
Expand Down
8 changes: 7 additions & 1 deletion docs/design/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,15 @@ This roadmap may occasionally drift out of date. Please review [Issues](https://

## Current Status

> [!NOTE]
> **The phase labelling below is out of date as of 2026-08-10.** The registry launched in preview on
> 2025-09-08 and the v0.1 API entered a freeze on 2025-10-24, so "Go-Live" has already happened. The
> phases are retained for historical context. See
> [Issues](https://github.com/modelcontextprotocol/registry/issues) for current work.

The initial version of the MCP Registry is actively being developed. The initial focus is on delivering a REST API to which server creators can publish, and aggregator/marketplace consumers can ETL.

## Phase 1: MVP/Go-Live (Current Focus)
## Phase 1: MVP/Go-Live

See the [go-live blocker issues](https://github.com/modelcontextprotocol/registry/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22go-live%20blocker%22).

Expand Down
21 changes: 21 additions & 0 deletions docs/design/tech-architecture.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# MCP Registry Technical Architecture

> [!WARNING]
> **This document has drifted from the shipped system and is kept as a design record.**
> For the architecture as deployed, see [deploy/README.md](../../deploy/README.md); for the API as
> implemented, see the [API reference](../reference/api/official-registry-api.md).
>
> Known inaccuracies below, as of 2026-08-10:
> - The registry is not deployed via a Helm chart. It is a plain Kubernetes `Deployment` created by
> Pulumi; Helm is used only for third-party components (ingress-nginx, cert-manager,
> cloudnative-pg, k8up, monitoring).
> - The database diagram shows a `StatefulSet` on port `27017` (MongoDB). The database is PostgreSQL
> on `5432`, provisioned by the CloudNativePG operator.
> - The DNS verification sequence (`mcp verify-domain`, `POST /verify-domain`,
> `POST /verify-domain/check`, server-issued challenge tokens) describes a design that was never
> built. The shipped flow signs a timestamp with the operator's key and posts it to
> `POST /v0/auth/dns`, with the public key published in a `v=MCPv1; k=...; p=...` TXT record.
> - No `/admin/*` routes exist. Admin actions use the regular server endpoints with an
> admin-permissioned token.
> - The CLI is `mcp-publisher`, not `mcp`, and publishing posts to `/v0/publish`.
> - The database stores servers and server extensions only; it holds no user authentication state
> and no DNS verification records.

This document describes the technical architecture of the MCP Registry, including system components, deployment strategies, and data flows.

## System Overview
Expand Down
6 changes: 6 additions & 0 deletions docs/reference/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,17 @@ Technical specifications and quick lookups for the MCP Registry.
- [Generic Registry API](./api/generic-registry-api.md)
- [Registry Authorization](./api/registry-authorization.md)
- [Official Registry API](./api/official-registry-api.md)
- [API Extensions](./api/extensions.md) - The `_meta` extension namespaces
- [OpenAPI Specification](./api/openapi.yaml)
- [API Changelog](./api/CHANGELOG.md)

## server.json Reference

- [Generic server.json Format](./server-json/generic-server-json.md)
- [Official Registry Requirements](./server-json/official-registry-requirements.md)
- [Schema Changelog](./server-json/CHANGELOG.md)
- [Schema Change Process](./server-json/CONTRIBUTING.md) - How to propose a schema change
- [Draft Schema](./server-json/draft/) - The in-progress next schema version

## CLI Reference

Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/generic-registry-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The official registry has some more endpoints and restrictions on top of this. S
- **`GET /v0.1/servers/{serverName}/versions`** - List all versions of a server
- **`GET /v0.1/servers/{serverName}/versions/{version}`** - Get specific version of server. Use the special version `latest` to get the latest version.
- **`POST /v0.1/publish`** - Publish new server (optional, registry-specific authentication)
- **`PUT /v0.1/servers/{serverName}/versions/{version}`** - Update specific server version (optional, not implemented by official registry)
- **`PUT /v0.1/servers/{serverName}/versions/{version}`** - Update specific server version (optional; the official registry implements this as an admin endpoint)
- **`DELETE /v0.1/servers/{serverName}/versions/{version}`** - Delete specific server version (optional, not implemented by official registry)
- **`PATCH /v0.1/servers/{serverName}/versions/{version}/status`** - Update server version status (optional)
- **`PATCH /v0.1/servers/{serverName}/status`** - Update status for all versions (optional)
Expand Down
10 changes: 10 additions & 0 deletions docs/reference/api/official-registry-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,17 @@ The `GET /v0.1/servers/{serverName}/versions` endpoint returns all versions of a

**Authentication:** Requires `publish` or `edit` permission for the server namespace.

#### Validation endpoint
- POST `/v0.1/validate` - Validate a `server.json` without publishing it. Used by `mcp-publisher validate`.

#### Service endpoints
- GET `/v0.1/ping` - Liveness check
- GET `/v0.1/version` - Registry version information

#### Admin endpoints
- GET `/metrics` - Prometheus metrics endpoint
- GET `/v0.1/health` - Basic health check endpoint
- PUT `/v0.1/servers/{serverName}/versions/{version}` - Edit specific server version

Note that `/v0.1/validate`, `/v0.1/ping`, `/v0.1/version` and `/v0.1/health` are not described in
[openapi.yaml](./openapi.yaml), which covers the server and publish endpoints only.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ See the [publishing guide](../../modelcontextprotocol-io/quickstart.mdx) for aut

All packages must include metadata proving the publisher owns them. This prevents impersonation and ensures authenticity (see more reasoning in [#96](https://github.com/modelcontextprotocol/registry/issues/96)).

For detailed verification requirements for each registry type, see the [publishing guide](../../modelcontextprotocol-io/quickstart.mdx).
For detailed verification requirements for each registry type, see [package types](../../modelcontextprotocol-io/package-types.mdx), which has an "Ownership Verification" section per registry.

## Restricted Registry Base URLs

Expand Down
Loading