Skip to content
Open
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
4 changes: 2 additions & 2 deletions complete.md
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ The MCP Registry project is a **metaregistry**, meaning that it hosts metadata f

For local MCP servers, the MCP Registry has pointers in the `packages` node of the [`server.json`](../../reference/server-json/generic-server-json.md) schema that refer to packages in supported package managers.

The list of supported package managers for hosting MCP servers is defined by the `properties.packages[N].properties.registry_type` string enum in the [`server.json` schema](../../reference/server-json/server.schema.json). For example, this could be "npm" (for npmjs.com packages) or "pypi" (for PyPI packages).
The list of supported package managers for hosting MCP servers is defined by the `properties.packages[N].properties.registry_type` string enum in the [`server.json` schema](../../reference/server-json/draft/server.schema.json). For example, this could be "npm" (for npmjs.com packages) or "pypi" (for PyPI packages).

For remote MCP servers, the package registry is not relevant. The MCP client consumes the server via a URL instead of by downloading and running a package. In other words, this document only applies to local MCP servers.

Expand Down Expand Up @@ -567,7 +567,7 @@ These steps may evolve as additional validations or details are discovered and m
1. [Create a feature request issue](https://github.com/modelcontextprotocol/registry/issues/new?template=feature_request.md) on the MCP Registry repository to begin the discussion about adding the package registry.
- Example for NuGet: https://github.com/modelcontextprotocol/registry/issues/126
1. Open a PR with the following changes:
- Update the [`server.json` schema](../../reference/server-json/server.schema.json)
- Update the [`server.json` schema](../../reference/server-json/draft/server.schema.json)
- Add your package registry name to the `registry_type` example array.
- Add your package registry base url to the `registry_base_url` example array.
- Add the single-shot CLI command name to the `runtime_hint` example value array.
Expand Down
4 changes: 2 additions & 2 deletions docs/contributing/add-package-registry.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The MCP Registry project is a **metaregistry**, meaning that it hosts metadata f

For local MCP servers, the MCP Registry has pointers in the `packages` node of the [`server.json`](../../reference/server-json/generic-server-json.md) schema that refer to packages in supported package managers.

The list of supported package managers for hosting MCP servers is defined by the `properties.packages[N].properties.registryType` string enum in the [`server.json` schema](../../reference/server-json/server.schema.json). For example, this could be "npm" (for npmjs.com packages) or "pypi" (for PyPI packages).
The list of supported package managers for hosting MCP servers is defined by the `properties.packages[N].properties.registryType` string enum in the [`server.json` schema](../../reference/server-json/draft/server.schema.json). For example, this could be "npm" (for npmjs.com packages) or "pypi" (for PyPI packages).

For remote MCP servers, the package registry is not relevant. The MCP client consumes the server via a URL instead of by downloading and running a package. In other words, this document only applies to local MCP servers.

Expand Down Expand Up @@ -33,7 +33,7 @@ These steps may evolve as additional validations or details are discovered and m
1. [Create a feature request issue](https://github.com/modelcontextprotocol/registry/issues/new?template=feature_request.md) on the MCP Registry repository to begin the discussion about adding the package registry.
- Example for NuGet: https://github.com/modelcontextprotocol/registry/issues/126
1. Open a PR with the following changes:
- Update the [`server.json` schema](../../reference/server-json/server.schema.json)
- Update the [`server.json` schema](../../reference/server-json/draft/server.schema.json)
- Add your package registry name to the `registryType` example array.
- Add your package registry base url to the `registryBaseUrl` example array.
- Add the single-shot CLI command name to the `runtimeHint` example value array.
Expand Down
8 changes: 4 additions & 4 deletions docs/design/proposed-enhanced-validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -421,10 +421,10 @@ The validation system supports testing against draft schemas or custom schema ve

#### Setup Steps

1. **Copy the schema file**: Copy your schema file (e.g., `docs/reference/server-json/server.schema.json`) to `internal/validators/schemas/{version}.json`
1. **Copy the schema file**: Copy your schema file (e.g., `docs/reference/server-json/draft/server.schema.json`) to `internal/validators/schemas/{version}.json`
- Example: Copy to `internal/validators/schemas/draft.json` for draft schema testing
- Ensure the schema file's `$id` field matches: `https://static.modelcontextprotocol.io/schemas/{version}/server.schema.json`
- For draft schema, the `$id` should be: `https://static.modelcontextprotocol.io/schemas/draft/server.schema.json`
- For draft schema, the `$id` should be: `https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/draft/server.schema.json`

2. **Rebuild**: Recompile the Go binary to embed the new schema file (schemas are embedded at compile time)

Expand Down Expand Up @@ -473,10 +473,10 @@ To test with a draft schema as if it were the current schema (no warnings/errors

```bash
# 1. Copy draft schema
cp docs/reference/server-json/server.schema.json internal/validators/schemas/draft.json
cp docs/reference/server-json/draft/server.schema.json internal/validators/schemas/draft.json

# 2. Verify the $id field in draft.json is correct
# Should be: "https://static.modelcontextprotocol.io/schemas/draft/server.schema.json"
# Should be: "https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/draft/server.schema.json"

# 3. Rebuild
go build ./...
Expand Down
2 changes: 1 addition & 1 deletion docs/modelcontextprotocol-io/about.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ The MCP Registry provides:
- A REST API for MCP clients and aggregators to discover available servers
- Standardized installation and configuration information

Server metadata is stored in a standardized [`server.json` format](https://github.com/modelcontextprotocol/registry/blob/main/docs/reference/server-json/server.schema.json), which contains:
Server metadata is stored in a standardized [`server.json` format](https://github.com/modelcontextprotocol/registry/blob/main/docs/reference/server-json/draft/server.schema.json), which contains:

- The server's unique name (e.g., `io.github.user/server-name`)
- Where to locate the server (e.g., npm package name, remote server URL)
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/server-json/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Changes to the server.json schema and format.

## Draft (Unreleased)

This section tracks changes that are in development and not yet released. The draft schema is available at [`server.schema.json`](./server.schema.json) in this repository.
This section tracks changes that are in development and not yet released. The draft schema is available at [`server.schema.json`](./draft/server.schema.json) in this repository.

### Changed

Expand Down
2 changes: 1 addition & 1 deletion docs/reference/server-json/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ When the draft changes are ready for release:

## Schema Versioning

- **Draft schema**: `https://static.modelcontextprotocol.io/schemas/draft/server.schema.json` - For in-progress changes, may change without notice.
- **Draft schema**: `https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/draft/server.schema.json` - For in-progress changes, may change without notice.
- **Released schemas**: `https://static.modelcontextprotocol.io/schemas/YYYY-MM-DD/server.schema.json` - Stable, versioned by release date.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$comment": "This file is auto-generated from docs/reference/api/openapi.yaml. Do not edit manually. Run 'make generate-schema' to update.",
"$id": "https://static.modelcontextprotocol.io/schemas/draft/server.schema.json",
"$id": "https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/draft/server.schema.json",
"$ref": "#/definitions/ServerDetail",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/server-json/generic-server-json.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Also see:

## Browse the Complete Schema

**📋 View the full specification interactively**: Open [server.schema.json](./server.schema.json) in a schema viewer like [json-schema.app](https://json-schema.app/view/%23?url=https%3A%2F%2Fstatic.modelcontextprotocol.io%2Fschemas%2F2025-09-29%2Fserver.schema.json).
**📋 View the full specification interactively**: Open [server.schema.json](./draft/server.schema.json) in a schema viewer like [json-schema.app](https://json-schema.app/view/%23?url=https%3A%2F%2Fstatic.modelcontextprotocol.io%2Fschemas%2F2025-09-29%2Fserver.schema.json).

The schema contains all field definitions, validation rules, examples, and detailed descriptions.

Expand Down
4 changes: 2 additions & 2 deletions tools/extract-server-schema/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (

const (
openAPIPath = "docs/reference/api/openapi.yaml"
schemaOutputDir = "docs/reference/server-json"
schemaOutputDir = "docs/reference/server-json/draft"
)

func main() {
Expand Down Expand Up @@ -93,7 +93,7 @@ func main() {
// When releasing, the schema is published to a versioned URL (e.g., 2025-10-17)
// on https://github.com/modelcontextprotocol/static
_ = version // version from OpenAPI spec available if needed
schemaID := "https://static.modelcontextprotocol.io/schemas/draft/server.schema.json"
schemaID := "https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/draft/server.schema.json"
jsonSchema := map[string]interface{}{
"$comment": "This file is auto-generated from docs/reference/api/openapi.yaml. Do not edit manually. Run 'make generate-schema' to update.",
"$schema": "http://json-schema.org/draft-07/schema#",
Expand Down
2 changes: 1 addition & 1 deletion tools/validate-examples/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func runValidation() error {
},
}

schemaPath := filepath.Join("docs", "reference", "server-json", "server.schema.json")
schemaPath := filepath.Join("docs", "reference", "server-json", "draft", "server.schema.json")
baseSchema, err := compileSchema(schemaPath)
if err != nil {
return fmt.Errorf("failed to compile server.schema.json: %w", err)
Expand Down
2 changes: 1 addition & 1 deletion tools/validate-schemas/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func main() {
}

func runValidation() error {
basePath := filepath.Join("docs", "reference", "server-json")
basePath := filepath.Join("docs", "reference", "server-json", "draft")

schemas := []struct {
name string
Expand Down
Loading