chore: Release server.json schema version 2025-12-11 (#841)

Prepared by Claude Code, iterated and reviewed by me.

## Summary

This PR releases the server.json schema version `2025-12-11`,
incorporating URL template variables for remote servers from #570.

### What's New

- **URL Template Variables for Remote Servers** - Remote servers can now
define configurable variables in URLs using `{curly_braces}` notation,
enabling multi-tenant deployments.

### Schema Version
- `2025-10-17` → `2025-12-11`

## Release Sequence

1. ~~**First: Merge static repo PR** -
https://github.com/modelcontextprotocol/static/pull/11 (publishes schema
to versioned URL)~~
2. **Then: Merge this PR** - Updates registry code to reference the new
schema version

## Changes in This PR

- [x] Update CHANGELOG.md with release notes
- [x] Update `CurrentSchemaVersion` in `pkg/model/constants.go`
- [x] Update schema example URL in `docs/reference/api/openapi.yaml`
- [x] Update schema URL in `pkg/api/v0/types.go`
- [x] Update all documentation examples to use new schema version
- [x] Regenerate `server.schema.json`

## Test Plan
- [x] `make check` passes (lint, schema validation, example validation)
- [x] Unit tests pass for validators and publisher commands

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Tadas Antanavicius 2025-12-12 09:33:57 -08:00 • committed by GitHub
commit 453956d975
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 124 additions and 38 deletions

View file

@ -44,8 +44,8 @@ func TestPublishCommand_DeprecatedSchema(t *testing.T) {
errorSubstr: "deprecated schema detected", errorSubstr: "deprecated schema detected",
}, },
{ {
name: "current 2025-10-17 schema should pass validation", name: "current 2025-12-11 schema should pass validation",
schema: "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", schema: "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
expectError: false, expectError: false,
}, },
{ {

View file

@ -1,6 +1,6 @@
[ [
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.domdomegg/airtable-mcp-server", "name": "io.github.domdomegg/airtable-mcp-server",
"description": "Read and write access to Airtable database schemas, tables, and records.", "description": "Read and write access to Airtable database schemas, tables, and records.",
"repository": { "repository": {
@ -62,7 +62,7 @@
] ]
}, },
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.domdomegg/airtable-mcp-server", "name": "io.github.domdomegg/airtable-mcp-server",
"description": "Read and write access to Airtable database schemas, tables, and records.", "description": "Read and write access to Airtable database schemas, tables, and records.",
"repository": { "repository": {
@ -115,7 +115,7 @@
] ]
}, },
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.domdomegg/time-mcp-nuget", "name": "io.github.domdomegg/time-mcp-nuget",
"description": "Get the current UTC time in RFC 3339 format.", "description": "Get the current UTC time in RFC 3339 format.",
"repository": { "repository": {
@ -136,7 +136,7 @@
] ]
}, },
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.domdomegg/time-mcp-pypi", "name": "io.github.domdomegg/time-mcp-pypi",
"description": "Get the current UTC time in RFC 3339 format.", "description": "Get the current UTC time in RFC 3339 format.",
"repository": { "repository": {

View file

@ -15,7 +15,7 @@ npm packages use `"registryType": "npm"` in `server.json`. For example:
```json server.json highlight={9} ```json server.json highlight={9}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/email-integration-mcp", "name": "io.github.username/email-integration-mcp",
"title": "Email Integration", "title": "Email Integration",
"description": "Send emails and manage email accounts", "description": "Send emails and manage email accounts",
@ -53,7 +53,7 @@ PyPI packages use `"registryType": "pypi"` in `server.json`. For example:
```json server.json highlight={9} ```json server.json highlight={9}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/database-query-mcp", "name": "io.github.username/database-query-mcp",
"title": "Database Query", "title": "Database Query",
"description": "Execute SQL queries and manage database connections", "description": "Execute SQL queries and manage database connections",
@ -91,7 +91,7 @@ NuGet packages use `"registryType": "nuget"` in `server.json`. For example:
```json server.json highlight={9} ```json server.json highlight={9}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/azure-devops-mcp", "name": "io.github.username/azure-devops-mcp",
"title": "Azure DevOps", "title": "Azure DevOps",
"description": "Manage Azure DevOps work items and pipelines", "description": "Manage Azure DevOps work items and pipelines",
@ -135,7 +135,7 @@ Docker/OCI images use `"registryType": "oci"` in `server.json`. For example:
```json server.json highlight={9} ```json server.json highlight={9}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/kubernetes-manager-mcp", "name": "io.github.username/kubernetes-manager-mcp",
"title": "Kubernetes Manager", "title": "Kubernetes Manager",
"description": "Deploy and manage Kubernetes resources", "description": "Deploy and manage Kubernetes resources",
@ -170,7 +170,7 @@ MCPB packages use `"registryType": "mcpb"` in `server.json`. For example:
```json server.json highlight={9} ```json server.json highlight={9}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/image-processor-mcp", "name": "io.github.username/image-processor-mcp",
"title": "Image Processor", "title": "Image Processor",
"description": "Process and transform images with various filters", "description": "Process and transform images with various filters",

View file

@ -143,7 +143,7 @@ Open the generated `server.json` file, and you should see contents like:
```json server.json ```json server.json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.my-username/weather", "name": "io.github.my-username/weather",
"description": "An MCP server for weather information.", "description": "An MCP server for weather information.",
"repository": { "repository": {
@ -177,7 +177,7 @@ Edit the contents as necessary:
```diff server.json ```diff server.json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.my-username/weather", "name": "io.github.my-username/weather",
"description": "An MCP server for weather information.", "description": "An MCP server for weather information.",
"repository": { "repository": {

View file

@ -75,7 +75,7 @@ The subregistry OpenAPI spec allows subregistries to inject custom metadata via
```json server.json highlight={17-26} ```json server.json highlight={17-26}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/email-integration-mcp", "name": "io.github.username/email-integration-mcp",
"title": "Email Integration", "title": "Email Integration",
"description": "Send emails and manage email accounts", "description": "Send emails and manage email accounts",

View file

@ -7,7 +7,7 @@ The MCP Registry supports remote MCP servers via the `remotes` property in `serv
```json server.json highlight={7-12} ```json server.json highlight={7-12}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.example/acme-analytics", "name": "com.example/acme-analytics",
"title": "ACME Analytics", "title": "ACME Analytics",
"description": "Real-time business intelligence and reporting platform", "description": "Real-time business intelligence and reporting platform",
@ -31,7 +31,7 @@ Specify the transport by setting the `type` property of the `remotes` entry to e
```json server.json highlight={9,13} ```json server.json highlight={9,13}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.example/acme-analytics", "name": "com.example/acme-analytics",
"title": "ACME Analytics", "title": "ACME Analytics",
"description": "Real-time business intelligence and reporting platform", "description": "Real-time business intelligence and reporting platform",
@ -49,13 +49,71 @@ Specify the transport by setting the `type` property of the `remotes` entry to e
} }
``` ```
## URL Template Variables
Remote servers can define URL template variables using `{curly_braces}` notation. This enables multi-tenant deployments where a single server definition can support multiple endpoints with configurable values:
```json server.json highlight={10-17}
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.example/acme-analytics",
"title": "ACME Analytics",
"description": "Real-time business intelligence and reporting platform",
"version": "2.0.0",
"remotes": [
{
"type": "streamable-http",
"url": "https://{tenant_id}.analytics.example.com/mcp",
"variables": {
"tenant_id": {
"description": "Your tenant identifier (e.g., 'us-cell1', 'emea-cell1')",
"isRequired": true
}
}
}
]
}
```
When configuring this server, users provide their `tenant_id` value, and the URL template gets resolved to the appropriate endpoint (e.g., `https://us-cell1.analytics.example.com/mcp`).
Variables support additional properties like `default`, `choices`, and `isSecret`:
```json server.json highlight={12-22}
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.example/multi-region-mcp",
"title": "Multi-Region MCP",
"description": "MCP server with regional endpoints",
"version": "1.0.0",
"remotes": [
{
"type": "streamable-http",
"url": "https://api.example.com/{region}/mcp",
"variables": {
"region": {
"description": "Deployment region",
"isRequired": true,
"choices": [
"us-east-1",
"eu-west-1",
"ap-southeast-1"
],
"default": "us-east-1"
}
}
}
]
}
```
## HTTP Headers ## HTTP Headers
MCP clients can be instructed to send specific HTTP headers by adding the `headers` property to the `remotes` entry: MCP clients can be instructed to send specific HTTP headers by adding the `headers` property to the `remotes` entry:
```json server.json highlight={11-18} ```json server.json highlight={11-18}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "com.example/acme-analytics", "name": "com.example/acme-analytics",
"title": "ACME Analytics", "title": "ACME Analytics",
"description": "Real-time business intelligence and reporting platform", "description": "Real-time business intelligence and reporting platform",
@ -83,7 +141,7 @@ The `remotes` property can coexist with the `packages` property in `server.json`
```json server.json highlight={7-22} ```json server.json highlight={7-22}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/email-integration-mcp", "name": "io.github.username/email-integration-mcp",
"title": "Email Integration", "title": "Email Integration",
"description": "Send emails and manage email accounts", "description": "Send emails and manage email accounts",

View file

@ -7,7 +7,7 @@ MCP servers **MUST** define a version string in `server.json`. For example:
```json server.json highlight={6} ```json server.json highlight={6}
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/email-integration-mcp", "name": "io.github.username/email-integration-mcp",
"title": "Email Integration", "title": "Email Integration",
"description": "Send emails and manage email accounts", "description": "Send emails and manage email accounts",

View file

@ -728,7 +728,7 @@ components:
type: string type: string
format: uri format: uri
description: JSON Schema URI for this server.json format description: JSON Schema URI for this server.json format
example: "https://static.modelcontextprotocol.io/schemas/draft/server.schema.json" example: "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json"
packages: packages:
type: array type: array
items: items:

View file

@ -16,6 +16,34 @@ When ready for release, changes in this section will be moved to a dated version
--- ---
## 2025-12-11
### Changed
#### URL Template Variables for Remote Servers ([#570](https://github.com/modelcontextprotocol/registry/pull/570))
Remote servers can now define URL template variables using `{curly_braces}` notation. This enables multi-tenant deployments where a single server definition can support multiple endpoints with configurable values.
**Example:**
```json
{
"remotes": [{
"type": "streamable-http",
"url": "https://{tenant_id}.api.example.com/mcp",
"variables": {
"tenant_id": {
"description": "Your tenant identifier",
"isRequired": true
}
}
}]
}
```
**Migration:** No changes required. Existing servers continue to work unchanged.
---
## 2025-10-17 ## 2025-10-17
### Changed ### Changed

View file

@ -38,7 +38,7 @@ When publishing to the official registry, custom metadata must be placed under t
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol.anonymous/brave-search", "name": "io.modelcontextprotocol.anonymous/brave-search",
"description": "MCP server for Brave Search API integration", "description": "MCP server for Brave Search API integration",
"title": "Brave Search", "title": "Brave Search",
@ -85,7 +85,7 @@ For MCP servers located within a subdirectory of a larger repository (monorepo s
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol/everything", "name": "io.modelcontextprotocol/everything",
"description": "MCP server that exercises all the features of the MCP protocol", "description": "MCP server that exercises all the features of the MCP protocol",
"title": "Everything", "title": "Everything",
@ -124,7 +124,7 @@ Suppose your MCP server application requires a `mcp start` CLI arguments to star
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.joelverhagen/knapcode-samplemcpserver", "name": "io.github.joelverhagen/knapcode-samplemcpserver",
"description": "Sample NuGet MCP server for a random number and random weather", "description": "Sample NuGet MCP server for a random number and random weather",
"version": "0.4.0-beta", "version": "0.4.0-beta",
@ -168,7 +168,7 @@ This will essentially instruct the MCP client to execute `dnx Knapcode.SampleMcp
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.modelcontextprotocol/filesystem", "name": "io.github.modelcontextprotocol/filesystem",
"description": "Node.js server implementing Model Context Protocol (MCP) for filesystem operations.", "description": "Node.js server implementing Model Context Protocol (MCP) for filesystem operations.",
"title": "Filesystem", "title": "Filesystem",
@ -268,7 +268,7 @@ This will essentially instruct the MCP client to execute `dnx Knapcode.SampleMcp
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol.anonymous/mcp-fs", "name": "io.modelcontextprotocol.anonymous/mcp-fs",
"description": "Cloud-hosted MCP filesystem server", "description": "Cloud-hosted MCP filesystem server",
"repository": { "repository": {
@ -302,7 +302,7 @@ This will essentially instruct the MCP client to execute `dnx Knapcode.SampleMcp
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.example/weather-mcp", "name": "io.github.example/weather-mcp",
"description": "Python MCP server for weather data access", "description": "Python MCP server for weather data access",
"title": "Weather", "title": "Weather",
@ -358,7 +358,7 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6.
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.joelverhagen/knapcode-samplemcpserver", "name": "io.github.joelverhagen/knapcode-samplemcpserver",
"description": "Sample NuGet MCP server for a random number and random weather", "description": "Sample NuGet MCP server for a random number and random weather",
"repository": { "repository": {
@ -407,7 +407,7 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6.
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.example/database-manager", "name": "io.github.example/database-manager",
"description": "MCP server for database operations with support for multiple database types", "description": "MCP server for database operations with support for multiple database types",
"repository": { "repository": {
@ -516,7 +516,7 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6.
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol.anonymous/hybrid-mcp", "name": "io.modelcontextprotocol.anonymous/hybrid-mcp",
"description": "MCP server available as both local package and remote service", "description": "MCP server available as both local package and remote service",
"title": "Hybrid", "title": "Hybrid",
@ -602,7 +602,7 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6.
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol/text-editor", "name": "io.modelcontextprotocol/text-editor",
"description": "MCP Bundle server for advanced text editing capabilities", "description": "MCP Bundle server for advanced text editing capabilities",
"title": "Text Editor", "title": "Text Editor",
@ -645,7 +645,7 @@ Some CLI tools bundle an MCP server, without a standalone MCP package or a publi
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.snyk/cli-mcp", "name": "io.snyk/cli-mcp",
"description": "MCP server provided by the Snyk CLI", "description": "MCP server provided by the Snyk CLI",
"title": "Snyk", "title": "Snyk",
@ -680,7 +680,7 @@ For MCP servers that follow a custom installation path or are embedded in applic
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol.anonymous/embedded-mcp", "name": "io.modelcontextprotocol.anonymous/embedded-mcp",
"description": "MCP server embedded in a Desktop app", "description": "MCP server embedded in a Desktop app",
"websiteUrl": "https://anonymous.modelcontextprotocol.io/embedded-mcp-guide", "websiteUrl": "https://anonymous.modelcontextprotocol.io/embedded-mcp-guide",
@ -695,7 +695,7 @@ This example demonstrates URL templating for remote servers, useful for multi-te
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol.anonymous/multi-tenant-server", "name": "io.modelcontextprotocol.anonymous/multi-tenant-server",
"description": "MCP server with configurable remote endpoint", "description": "MCP server with configurable remote endpoint",
"title": "Multi-Tenant Server", "title": "Multi-Tenant Server",
@ -721,7 +721,7 @@ The same URL templating works with SSE transport:
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.modelcontextprotocol.anonymous/events-server", "name": "io.modelcontextprotocol.anonymous/events-server",
"description": "MCP server using SSE with tenant-specific endpoints", "description": "MCP server using SSE with tenant-specific endpoints",
"version": "1.0.0", "version": "1.0.0",
@ -746,7 +746,7 @@ This example demonstrates URL templating for local/package servers, where variab
```json ```json
{ {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.example/configurable-server", "name": "io.github.example/configurable-server",
"description": "Local MCP server with configurable port", "description": "Local MCP server with configurable port",
"title": "Configurable Server", "title": "Configurable Server",

View file

@ -404,7 +404,7 @@
"properties": { "properties": {
"$schema": { "$schema": {
"description": "JSON Schema URI for this server.json format", "description": "JSON Schema URI for this server.json format",
"example": "https://static.modelcontextprotocol.io/schemas/draft/server.schema.json", "example": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"format": "uri", "format": "uri",
"type": "string" "type": "string"
}, },

View file

@ -32,7 +32,7 @@ type ServerMeta struct {
} }
type ServerJSON struct { type ServerJSON struct {
Schema string `json:"$schema" required:"true" minLength:"1" format:"uri" doc:"JSON Schema URI for this server.json format" example:"https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json"` Schema string `json:"$schema" required:"true" minLength:"1" format:"uri" doc:"JSON Schema URI for this server.json format" example:"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json"`
Name string `json:"name" minLength:"3" maxLength:"200" pattern:"^[a-zA-Z0-9.-]+/[a-zA-Z0-9._-]+$" doc:"Server name in reverse-DNS format. Must contain exactly one forward slash separating namespace from server name." example:"io.github.user/weather"` Name string `json:"name" minLength:"3" maxLength:"200" pattern:"^[a-zA-Z0-9.-]+/[a-zA-Z0-9._-]+$" doc:"Server name in reverse-DNS format. Must contain exactly one forward slash separating namespace from server name." example:"io.github.user/weather"`
Description string `json:"description" minLength:"1" maxLength:"100" doc:"Clear human-readable explanation of server functionality." example:"MCP server providing weather data and forecasts via OpenWeatherMap API"` Description string `json:"description" minLength:"1" maxLength:"100" doc:"Clear human-readable explanation of server functionality." example:"MCP server providing weather data and forecasts via OpenWeatherMap API"`
Title string `json:"title,omitempty" minLength:"1" maxLength:"100" doc:"Optional human-readable title or display name for the MCP server." example:"Weather API"` Title string `json:"title,omitempty" minLength:"1" maxLength:"100" doc:"Optional human-readable title or display name for the MCP server." example:"Weather API"`

View file

@ -36,7 +36,7 @@ const (
// Schema versions // Schema versions
const ( const (
// CurrentSchemaVersion is the current supported schema version date // CurrentSchemaVersion is the current supported schema version date
CurrentSchemaVersion = "2025-10-17" CurrentSchemaVersion = "2025-12-11"
// CurrentSchemaURL is the full URL to the current schema // CurrentSchemaURL is the full URL to the current schema
CurrentSchemaURL = "https://static.modelcontextprotocol.io/schemas/" + CurrentSchemaVersion + "/server.schema.json" CurrentSchemaURL = "https://static.modelcontextprotocol.io/schemas/" + CurrentSchemaVersion + "/server.schema.json"
) )