﻿---
title: "Review reserved extension identifiers"
description: "Extension identifiers in an MCP-reserved namespace are checked against the pinned catalogue. Unknown or experimental identifiers are preserved with a warning. Verify the identifier"
source: "https://mcpdesc.org/docs/rules/0.9.0-rc.3/mcpdesc/extensions-catalogue-maturity/"
---

Extension identifiers in an MCP-reserved namespace are checked against the pinned catalogue. Unknown or experimental identifiers are preserved with a warning. Verify the identifier and its maturity; an unrecognized identifier is not silently assigned known extension semantics.

## Requirement

An extension identifier under an MCP-reserved prefix that the pinned extension catalogue lists as experimental, or does not list, is preserved with a warning.

## Details

**Rule ID:** `mcpdesc.extensions.catalogue-maturity`  
**Owner:** mcpdesc  
**Surface:** Extension identifier · **Path:** `capabilities.extensions, clientRequirements.extensions`  
**Kind:** mcpdesc-semantic  
**Requirement level:** should  
**Protocol versions:** independent of the MCP protocol version  
**Status:** internal · **Enforcement:** internal

## Required by

* **MCP Description 0.9.0, Sections 8.4 and 8.5; validator extension catalogue (effective 2026-09-04)**  
  * 8\. Capabilities: [req-extensions-reserved-identifiers](https://mcpdesc.org/docs/specification/0.9.0-rc.3/capabilities#req-extensions-reserved-identifiers)
  * 1. Capabilities: [req-extensions-catalogue-maturity](https://mcpdesc.org/docs/specification/0.9.0-rc.3/capabilities#req-extensions-catalogue-maturity)
  * 1. Capabilities: [req-extensions-official-no-warning](https://mcpdesc.org/docs/specification/0.9.0-rc.3/capabilities#req-extensions-official-no-warning)

## Based on

* **Tier 1 — MCP schema.ts and normative specification text:** MCP 2026-07-28 specification, Basic, General fields, \_meta key name format (second label modelcontextprotocol or mcp is reserved)  
  * <https://github.com/modelcontextprotocol/modelcontextprotocol/blob/dae694f61a31f7a3ec2af3aff709e11f70f61e48/docs/specification/2026-07-28/basic/index.mdx#L337-L339>

## Notes

The pinned catalogue lists no experimental identifiers, so no document currently produces the experimental-identifier warning.

## Examples

### Accepted with a warning

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

```json
{
  "io.modelcontextprotocol/future-capability": {
    "enabled": true
  }
}
```

### Accepted with a warning

Source: [expected-warning/deprecated-client-capability-requirements.json](https://github.com/mcpdesc/mcpdesc-specification/blob/v0.9.0-rc.3/spec/draft/fixtures/expected-warning/deprecated-client-capability-requirements.json) · Selected: `/prompts/0/clientRequirements/extensions`

```json
{
  "io.modelcontextprotocol/future-capability": {}
}
```

## 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).
