MCP-REG-003
version is present and valid semver
“The MCP Registry recommends semantic versioning, but supports any version string format.” — spec anchor
How to fix this
Give `version` in `server.json` a valid semantic version string. The registry accepts any format, but semver is what its tooling and its consumers expect.
Example: failing and passing
Violates MCP-REG-003 · JSON
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.example/weather",
"description": "Weather forecasts for any city.",
"version": "^1.0.0",
"remotes": [{ "type": "streamable-http", "url": "https://mcp.example.com/mcp" }]
}Complies with MCP-REG-003 · JSON
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.example/weather",
"description": "Weather forecasts for any city.",
"version": "1.0.0",
"remotes": [{ "type": "streamable-http", "url": "https://mcp.example.com/mcp" }]
}How the validator checks this
This rule is catalogued from the specification but is not yet checked automatically. No probe emits a finding for it, so it never appears in a report as pass, warn or fail. It is documented here because it is a real requirement of the specification — it is simply not one this validator can confirm for you yet.
Check your own server against MCP-REG-003
The validator does not check MCP-REG-003 automatically yet, so confirm it by hand against the examples above. It does check 73 of the 79 rules — validate a server to see those.
Background on this topic: how to publish to the official registry.
Other Registry readiness rules
- MCP-REG-001server.json present and valid against the registry schema
- MCP-REG-002Namespace ownership is verifiable (GitHub or DNS TXT)
- MCP-REG-004Declared remote endpoint matches the probed URL