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:
parent
b58836c48e
commit
453956d975
1 changed files with 124 additions and 38 deletions
|
|
@ -7,7 +7,7 @@ The MCP Registry supports remote MCP servers via the `remotes` property in `serv
|
|||
|
||||
```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",
|
||||
"title": "ACME Analytics",
|
||||
"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}
|
||||
{
|
||||
"$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",
|
||||
"title": "ACME Analytics",
|
||||
"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
|
||||
|
||||
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}
|
||||
{
|
||||
"$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",
|
||||
"title": "ACME Analytics",
|
||||
"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}
|
||||
{
|
||||
"$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",
|
||||
"title": "Email Integration",
|
||||
"description": "Send emails and manage email accounts",
|
||||
|
|
|
|||
Loading…
Reference in a new issue