﻿---
title: "Recognize pre-standard extension advertisements"
description: "MCP Description accepts server extension advertisements before their standardization, with a warning for the affected protocol versions. The values are preserved rather than rewrit"
source: "https://mcpdesc.org/docs/rules/0.9.0-rc.3/mcp/capabilities-extensions-protocol-version/"
---

MCP Description accepts server extension advertisements before their standardization, with a warning for the affected protocol versions. The values are preserved rather than rewritten. This exception does not make primitive clientRequirements.extensions available in those earlier versions.

## Requirement

Server capabilities.extensions is defined from MCP 2026-07-28; for earlier protocol versions a pre-standard extensions map is preserved with a warning.

## Details

**Rule ID:** `mcp.capabilities.extensions.protocol-version`  
**Owner:** mcp  
**Surface:** ServerCapabilities · **Path:** `extensions`  
**Kind:** structural  
**Requirement level:** Not specified in the rule record  
**Status:** arbitrated · **Enforcement:** internal

## Protocol version applicability

| 2024-11-05 | 2025-03-26 | 2025-06-18 | 2025-11-25 | 2026-07-28 |
| ---------- | ---------- | ---------- | ---------- | ---------- |
| applies    | applies    | applies    | applies    | applies    |

## Required by

* **MCP Description 0.9.0, Section 8.4; Proposal 0021 (pre-standard extension capabilities)**  
  * 8\. Capabilities: [req-capabilities-extensions-pre-standard](https://mcpdesc.org/docs/specification/0.9.0-rc.3/capabilities#req-capabilities-extensions-pre-standard)
  * [../../proposals/0021-pre-standard-extension-capabilities.md](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/proposals/0021-pre-standard-extension-capabilities.md)

## Based on

* **Tier 1 — MCP schema.ts and normative specification text:** MCP 2024-11-05 to 2025-11-25 schema.ts, interface ServerCapabilities (no extensions); MCP 2026-07-28 schema.ts, ServerCapabilities extensions  
  * [validation/mcp-schemas/2024-11-05/schema.ts#L205-L248](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/dae694f61a31f7a3ec2af3aff709e11f70f61e48/schema/2024-11-05/schema.ts#L205-L248)
  * [validation/mcp-schemas/2025-03-26/schema.ts#L225-L272](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/dae694f61a31f7a3ec2af3aff709e11f70f61e48/schema/2025-03-26/schema.ts#L225-L272)
  * [validation/mcp-schemas/2025-06-18/schema.ts#L253-L302](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/dae694f61a31f7a3ec2af3aff709e11f70f61e48/schema/2025-06-18/schema.ts#L253-L302)
  * [validation/mcp-schemas/2025-11-25/schema.ts#L381-L457](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/dae694f61a31f7a3ec2af3aff709e11f70f61e48/schema/2025-11-25/schema.ts#L381-L457)
  * [validation/mcp-schemas/2026-07-28/schema.ts#L871-L882](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/dae694f61a31f7a3ec2af3aff709e11f70f61e48/schema/2026-07-28/schema.ts#L871-L882)

## Gaps and arbitrations

Arbitration: `2024-11-05`, `2025-03-26`, `2025-06-18`, `2025-11-25`

**Conflict:** ServerCapabilities is closed and has no extensions member before MCP 2026-07-28, so mcp.server-capabilities.members would reject it, but deployed servers advertise extensions with a pre-standard convention.

**Authority:** MCP Description decision (Proposal 0021)

**Behavior:** Accept and preserve a server extensions map for earlier protocol versions with a warning; check client requirements against each protocol version separately.

**Rationale:** Rejecting it would make descriptions of deployed servers inaccurate. The warning keeps the departure from the type visible.

**Review trigger:** Retirement of the pre-standard convention, or a decision to drop support for it..

## Examples

### Accepted with a warning

Source: [expected-warning/pre-standard-extension-capabilities.json](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft/fixtures/expected-warning/pre-standard-extension-capabilities.json) · Selected: `/capabilities/0`

```json
{
  "extensions": {
    "io.modelcontextprotocol/ui": {}
  }
}
```

## Rule Source Code

[capabilities.yaml](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft/validation/rules/capabilities.yaml) at immutable tag [v0.9.0-rc.3](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft).
