A primitive’s clientRequirements lists minimum client capabilities, not custom top-level names. Put custom requirements in experimental or in extensions where defined, after reviewing their meaning. Server capability advertisement and client requirements are different declarations.
Requirement
Section titled “Requirement”A Client Capability Requirements Object names only client capabilities the applicable MCP protocol version defines; custom requirements go in experimental and, from MCP 2026-07-28, in extensions.
Details
Section titled “Details”Rule ID: mcp.client-capabilities.members
Owner: mcp
Surface: ClientCapabilities · Path: clientRequirements
Kind: structural
Requirement level: must
Document schema locations: #/$defs/clientCapabilityRequirements, #/$defs/clientCapabilityValue
Status: arbitrated · Enforcement: internal
Protocol version applicability
Section titled “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
Section titled “Required by”- MCP Description 0.9.0, Section 8.5
- 8. Capabilities: req-client-requirements-closed
-
- Capabilities: req-client-requirements-shape
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2024-11-05 to 2026-07-28 schema.ts, interface ClientCapabilities (no index signature)
- Tier 1 — MCP schema.ts and normative specification text: MCP 2024-11-05 to 2026-07-28 schema.ts, ClientCapabilities doc comment (“this is not a closed set: any client can define its own, additional capabilities”)
Gaps and arbitrations
Section titled “Gaps and arbitrations”Examples
Section titled “Examples”Valid example
Section titled “Valid example”Source: expected-valid/client-capability-requirements.json · Selected: /prompts/0/clientRequirements
{ "sampling": { "tools": {} }, "experimental": { "com.example/review": {} }}Invalid example
Section titled “Invalid example”Source: expected-invalid/unknown-client-capability-requirement.json · Selected: /tools/0/clientRequirements
{ "acmeReplay": {}}Rule Source Code
Section titled “Rule Source Code”capabilities.yaml at immutable tag v0.9.0-rc.3.