Skip to content

Commit a25f166

Browse files
rdimitrovclaude
andauthored
docs: remove stale complete.md and fix remaining stale references (#1522)
Deletes `complete.md` and cleans up the last references to the pre-restructuring docs layout. ## Why `complete.md` goes It is 2,944 lines (31% of all documentation lines in the repo) self-described as *"all documentation from the docs/ directory compiled into a single markdown file"*. But: - **No generator exists.** No make target, no workflow, no script. `grep -rn "complete\.md"` finds **zero** references anywhere in the repo. - **It mirrors a docs tree that no longer exists** — `docs/guides/`, `docs/explanations/`, `docs/concepts/`. - **All 72 of its relative links are broken**, and six of the basenames it references exist nowhere in the repo. - **~14 current docs are missing from it entirely** (`about.mdx`, `authentication.mdx`, `package-types.mdx`, both CHANGELOGs, ...). - **Its `server.json` examples pin the superseded `2025-07-09` schema** (current is `2025-12-11`). The strongest argument is its own last commit. [PR #1278](#1278) closed [issue #767](#767) — a real user-reported CLI flag bug — by editing **only `complete.md`**. A genuine fix landed in a file nobody reads, while the docs a reader would actually find stayed wrong. A generated file with no generator degrades into a trap: authoritative enough that people edit it, with nothing validating it. If the LLM-consumption use case is worth keeping, the right shape is a `make docs-bundle` target plus a `check-docs-bundle` CI job mirroring the existing `check-schema` pattern — happy to do that instead if you would rather keep it. ## Remaining stale references | File | Was | Now | |---|---|---| | `contributing/add-package-registry.md` | Add `docs/guides/publishing/publish-[yourregistry].md`, update `docs/guides/publishing/README.md` | Add a section to `package-types.mdx`. These were the **last live references** to the obsolete `docs/guides/` layout outside `complete.md` | | `administration/maintainer-onboarding.md` | Add them to "Current key maintainers" in README | "Registry Working Group" — the section that actually exists | | `reference/README.md` | Omitted 6 reference docs | Adds `api/extensions.md`, `api/openapi.yaml`, `api/CHANGELOG.md`, `server-json/CHANGELOG.md`, `server-json/CONTRIBUTING.md`, `server-json/draft/` | | `docs/README.md` | Index omitted `community-projects.md` | Listed | | `reference/api/generic-registry-api.md` | `PUT .../versions/{version}` "not implemented by official registry" | It **is** implemented ([edit.go:36](https://github.com/modelcontextprotocol/registry/blob/main/internal/api/handlers/v0/edit.go#L36)), and `official-registry-api.md` already lists it as an admin endpoint | | `reference/api/official-registry-api.md` | Omitted 3 registered routes | Adds `POST /v0.1/validate` (which `mcp-publisher validate` calls), `GET /v0.1/ping`, `GET /v0.1/version`, and notes these plus `/health` are absent from `openapi.yaml` | | `server-json/official-registry-requirements.md` | Per-registry verification → `quickstart.mdx` | → `package-types.mdx`, which has an Ownership Verification section per registry | | `design/design-principles.md` | Sections 1,2,3,4,**6**,7 | Renumbered 1–6 | | `contributing/releasing.md` | Steps 1,2,3,**5**,6 | Renumbered 1–5 | I left the sibling `DELETE` claim in `generic-registry-api.md` alone — it is accurate, no DELETE route is registered (the `http.MethodDelete` hit in `server.go` is CORS config, not a route). ## Staleness banners rather than rewrites **`design/tech-architecture.md`** is substantially fictional. Rather than a vague "may be outdated", the banner lists what I verified is wrong: - Describes Helm-chart deployment; the registry is a plain `Deployment` ([registry.go:65](https://github.com/modelcontextprotocol/registry/blob/main/deploy/pkg/k8s/registry.go#L65)). Helm is used only for third-party components. - Diagram shows a `StatefulSet` on port **27017** — MongoDB's port. The DB is PostgreSQL on 5432 via the CloudNativePG operator. - Documents a `verify-domain` challenge flow (`POST /verify-domain`, `/verify-domain/check`, server-issued tokens) that **was never built**. - Documents `/admin/*` routes that are not registered. - Says the DB stores user auth state and DNS verification records; only `servers` and `server_extensions` tables exist. **`design/roadmap.md`** still says "Phase 1: MVP/Go-Live (Current Focus)" ~11 months after launch. I added a dated note rather than inventing a current phase — that is a working-group call. ## Verification All **101** remaining relative links across every `.md`/`.mdx` in the repo resolve. The only two non-resolving matches are the intentional `[project-name](link)` template placeholder and the moderation link fixed in #1518. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 3e463e5 commit a25f166

12 files changed

Lines changed: 54 additions & 2956 deletions

complete.md

Lines changed: 0 additions & 2945 deletions
This file was deleted.

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ The MCP registry provides MCP clients with a list of MCP servers, like an app st
1717
- 📖 [Reference](./reference/) - Technical specifications
1818
- 🔧 [Contributing guides](./contributing/) - How to contribute
1919
- 🔒 [Administration](./administration/) - Admin operations
20+
- 🤝 [Community projects](./community-projects.md) - Notable registry-related work from the community

docs/administration/maintainer-onboarding.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ When onboarding a new maintainer, complete the following steps:
1616

1717
### 3. README.md
1818

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

2121
### 4. Discord
2222

docs/contributing/add-package-registry.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,5 @@ These steps may evolve as additional validations or details are discovered and m
5151
- Add corresponding unit tests: `internal/validators/registries/yourregistry_test.go`
5252
- Register your validator in `internal/validators/validators.go`
5353
- Update the publishing documentation:
54-
- 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`)
55-
- Include instructions on how to prepare packages for your registry, including any specific validation requirements
56-
- Update `docs/guides/publishing/README.md` to reference your new publishing guide
54+
- Add a section for your registry to `docs/modelcontextprotocol-io/package-types.mdx`, following the pattern of the existing registries (npm, PyPI, NuGet, ...)
55+
- Include instructions on how to prepare packages for your registry, and an `### Ownership Verification` subsection describing the validation your registry requires

docs/contributing/releasing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
1. **Go to GitHub**: Navigate to https://github.com/modelcontextprotocol/registry/releases
66
2. **Click "Draft a new release"**
77
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`)
8-
5. **Generate notes**: Click "Generate release notes" to auto-populate the name and description
9-
6. **Publish**: Click "Publish release"
8+
4. **Generate notes**: Click "Generate release notes" to auto-populate the name and description
9+
5. **Publish**: Click "Publish release"
1010

1111
The release workflow will automatically:
1212
- Build binaries for 6 platforms (Linux, macOS, Windows × amd64, arm64)

docs/design/design-principles.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ The registry serves as the authoritative metadata repository for publicly-availa
2525
- Use mechanisms like DNS verification, OAuth to provide base layer of authentication and trust
2626
- Implement rate limiting, field validation, and blacklisting to prevent abuse
2727

28-
## 6. Reusable, Extensible Shapes; Not Infrastructure
28+
## 5. Reusable, Extensible Shapes; Not Infrastructure
2929

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

34-
## 7. Progressive Enhancement
34+
## 6. Progressive Enhancement
3535

3636
- Start with MVP that provides immediate value
3737
- Build foundation that supports future features

docs/design/roadmap.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,15 @@ This roadmap may occasionally drift out of date. Please review [Issues](https://
66

77
## Current Status
88

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

11-
## Phase 1: MVP/Go-Live (Current Focus)
17+
## Phase 1: MVP/Go-Live
1218

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

docs/design/tech-architecture.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# MCP Registry Technical Architecture
22

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

526
## System Overview

docs/reference/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,17 @@ Technical specifications and quick lookups for the MCP Registry.
77
- [Generic Registry API](./api/generic-registry-api.md)
88
- [Registry Authorization](./api/registry-authorization.md)
99
- [Official Registry API](./api/official-registry-api.md)
10+
- [API Extensions](./api/extensions.md) - The `_meta` extension namespaces
11+
- [OpenAPI Specification](./api/openapi.yaml)
12+
- [API Changelog](./api/CHANGELOG.md)
1013

1114
## server.json Reference
1215

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

1622
## CLI Reference
1723

docs/reference/api/generic-registry-api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ The official registry has some more endpoints and restrictions on top of this. S
1818
- **`GET /v0.1/servers/{serverName}/versions`** - List all versions of a server
1919
- **`GET /v0.1/servers/{serverName}/versions/{version}`** - Get specific version of server. Use the special version `latest` to get the latest version.
2020
- **`POST /v0.1/publish`** - Publish new server (optional, registry-specific authentication)
21-
- **`PUT /v0.1/servers/{serverName}/versions/{version}`** - Update specific server version (optional, not implemented by official registry)
21+
- **`PUT /v0.1/servers/{serverName}/versions/{version}`** - Update specific server version (optional; the official registry implements this as an admin endpoint)
2222
- **`DELETE /v0.1/servers/{serverName}/versions/{version}`** - Delete specific server version (optional, not implemented by official registry)
2323
- **`PATCH /v0.1/servers/{serverName}/versions/{version}/status`** - Update server version status (optional)
2424
- **`PATCH /v0.1/servers/{serverName}/status`** - Update status for all versions (optional)

0 commit comments

Comments
 (0)