Skip to content

update schema url point to the actual location - #884

Merged
tadasant merged 1 commit into
modelcontextprotocol:mainfrom
deerajkumar18:fix-server-schema-url
Feb 10, 2026
Merged

tadasant merged 1 commit into
modelcontextprotocol:mainfrom
deerajkumar18:fix-server-schema-url

Conversation

@deerajkumar18

@deerajkumar18 deerajkumar18 commented Jan 11, 2026 •

Copy link
Copy Markdown
Contributor

Motivation and Context

This PR ensures that the draft URL points to the actual draft schema
improvement suggested in #814

How Has This Been Tested?

Breaking Changes

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

@tadasant tadasant left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for jumping in on this!

"$schema": {
"description": "JSON Schema URI for this server.json format",
"example": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"example": "https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/server.schema.json",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's keep the example the static. URL since that is more representative of what should live here

@deerajkumar18 deerajkumar18 Jan 19, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted back to the static schema URL in the example field . Auto-generated after updating the openapi.yaml spec

Comment thread docs/reference/api/openapi.yaml Outdated
format: uri
description: JSON Schema URI for this server.json format
example: "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json"
example: "https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/server.schema.json"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same with this one

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted back to the static schema URL in the example field .

{
"$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/server.schema.json",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"$id": "https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/server.schema.json",
"$id": "https://raw.githubusercontent.com/modelcontextprotocol/registry/main/docs/reference/server-json/draft/server.schema.json",

Just for clarity, I think we should preserve draft in the ID; which means we should move the file inside a folder called draft

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the server.schema.json file to the draft directory . Made necessary changes to schemaOutputDir and schemaID in the tools/extract-server-schema/main.go file .

@deerajkumar18
deerajkumar18 force-pushed the fix-server-schema-url branch 4 times, most recently from 8b343da to 2eadc5b Compare January 19, 2026 18:20
@tadasant

tadasant commented Jan 23, 2026 •

Copy link
Copy Markdown
Member

I had Claude do a first pass at reviewing (see summary below) -- I haven't had the chance to dig in and verify its findings yet, but would appreciate help ensuring we're not missing things here.


2. Missing file references that should be updated

Several documentation files still reference ./server.schema.json (without draft/) that should be updated:

  • docs/contributing/add-package-registry.md lines 7, 36 - references ../../reference/server-json/server.schema.json
  • docs/reference/server-json/generic-server-json.md line 11 - references ./server.schema.json
  • docs/reference/server-json/CONTRIBUTING.md line 9 - references updating server.schema.json
  • docs/modelcontextprotocol-io/about.mdx line 19 - links to the schema in the repo

These relative links will break after the file is moved to draft/.

3. Workflow file may need updates

.github/workflows/sync-schema.yml has logic looking for server.schema.json files. The pattern may need adjustment if the draft schema is now in a draft/ subdirectory.


Edit: I just took a closer look and it appears (3) was not helpful but at least (2) seems right (we should update those references). Can you please do another pass making sure we haven't missed other references?

@deerajkumar18

Copy link
Copy Markdown
Contributor Author

@tadasant I have updated the references in the files that you have highlighted above and also in few other files :

  • complete.md
  • docs/design/proposed-enhanced-validation.md

rdimitrov
rdimitrov previously approved these changes Feb 5, 2026
@deerajkumar18

Copy link
Copy Markdown
Contributor Author

@rdimitrov merge conflict resolved by rebasing with the main branch

@tadasant tadasant left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @deerajkumar18!

@tadasant
tadasant merged commit b5f38fc into modelcontextprotocol:main Feb 10, 2026
2 checks passed
dsp-ant added a commit to modelcontextprotocol/modelcontextprotocol that referenced this pull request Nov 12, 2026
<!-- claude-slack-attribution -->
_Requested by **Den Delimarsky, David Soria Parra** · [Slack
thread](https://ant-mcp-oss.slack.com/archives/C0BDGKP4PC6/p1793430342149349)_

Squash-merge with this description as the commit message. The two
trailers on the last lines must stay in it, so that the next subtree
pull starts from this one.

**Before:** `docs/registry/` reflects the registry docs as of 2026-01-22
(registry commit 817e1216), plus six local edits made since. The FAQ
says servers cannot be deleted, the P-384 login command lacks the
`--algorithm` flag, the organization namespace rules are missing, and
the remote servers page says a remote URL can be used by only one server
name.

**After:** `docs/registry/` is byte-identical to
`docs/modelcontextprotocol-io` in modelcontextprotocol/registry at tag
`v1.8.9` (commit ba94f657). Seven pages change (+308/-25):
authentication, faq, github-actions, package-types, quickstart,
registry-aggregators and remote-servers.

## How

`scripts/pull-registry-docs.sh` was run against a clone of the registry,
first at `v1.8.7` and then at `v1.8.9`. The script splits
`docs/modelcontextprotocol-io` and squash-pulls the result into
`docs/registry/`. `npm run prep` passes, link check included.

The `v1.8.9` pull adds two upstream changes. Since `v1.8.8` several
server names can share one remote URL
(modelcontextprotocol/registry#1806), which replaces the sentence at
remote-servers.mdx L41. The aggregators page gains an "Efficient
synchronization" section (modelcontextprotocol/registry#1798).

A later run of the script was tested against a single squash commit that
carries these trailers. It merged cleanly and changed only
`docs/registry/`.

## Conflict resolutions

Three files conflicted in the `v1.8.7` pull. In each case upstream had
added content next to a line that a local commit had also touched, and
upstream already carried the local change, so upstream's side was taken.
The `v1.8.9` pull had no conflicts.

- `github-actions.mdx`: new troubleshooting row for the `"invalid
audience"` error.
- `package-types.mdx`: new paragraph on the `mcp-name:` token boundary,
placed before the Cargo section that both sides carry identically.
- `quickstart.mdx`: the npm account prerequisite reworded to apply to
package-based servers only.

## Local commits since January

All six are carried by upstream, so nothing needs to go upstream.

- 5abdf44 removed `.mdx` suffixes from internal links. Upstream did the
same in modelcontextprotocol/registry#1052, and no suffixed links remain
there.
- 31dae91 pointed the server.json schema link at
`draft/server.schema.json`. Upstream has it from
modelcontextprotocol/registry#884.
- 91dcd51 added the SSE deprecation note to remote-servers. It was
superseded locally by 85bbf0e.
- 85bbf0e set the final SSE deprecation wording. Upstream has the
identical sentence from modelcontextprotocol/registry#1590.
- 0d17c43 changed `PyPi` to `PyPI` in the FAQ. Upstream has it at
faq.mdx L55.
- c0b3579 added the Cargo (Rust) package type section. Upstream has the
identical section from modelcontextprotocol/registry#1207 and
modelcontextprotocol/registry#1331.

## Upstream follow-ups for the registry repo (not fixed here)

1. `authentication.mdx` contradicts itself on stale DNS records. L81
says a stale TXT record left behind "will be tried first and cause
verification to fail". L404 says the registry tries all published keys
and a different key in another record does not take precedence. The code
agrees with L404: `VerifySignatureWithKeys` in
`internal/api/handlers/v0/auth/common.go` accepts the first matching key
and fails only when none match.
2. `quickstart.mdx` L130 and L134 install `mcp-publisher` from
`releases/latest`, while `github-actions.mdx` L14-17 tells readers not
to use that URL. The three workflow examples in `github-actions.mdx`
(L35, L115, L191) pin `MCP_PUBLISHER_VERSION: v1.8.1`, behind the
`v1.8.9` tag.
3. `registry-aggregators.mdx` L78 still says a `"deleted"` status
typically indicates a moderation takedown. Since publisher-managed
deletion (modelcontextprotocol/registry#893) publishers set that status
themselves. `moderation-policy.mdx` also needs attention. Neither
passage has changed upstream.

This PR was drafted with AI assistance (Claude Code).

git-subtree-dir: docs/registry
git-subtree-split: 5d7060497a1d4535dc448dd56ec699ea03c89efd

---------

Co-authored-by: Claude <[email protected]>
Co-authored-by: David Soria Parra <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants