One read of Model Context Protocolmcp-20261028T160707Z
1 pages moved out of 358 read.
Pages moved
1
significant first
Pages read
358
in this capture
Captured
16:07 UTC
Corpus hash
a7bda68bc15a
corpus-hash
What this read moved
1-1 of 1extensions/overview Changed · +63 / -0 lines
### Initialization-Based Versions
from line 115
115115
116116Clients and servers advertise their support for extensions in the `extensions` field within their respective capability declarations.
117117
118The examples below use protocol version `2026-07-28` and later. For `2025-11-25` and earlier, see [Initialization-Based Versions](#initialization-based-versions).
119
118120### Client Capabilities
119121
120122Clients advertise extension support in `_meta["io.modelcontextprotocol/clientCapabilities"]` within each request:
from line 179
177179```
178180
179181Each extension specifies the schema of its settings object; an empty object indicates no settings.
182
183### Initialization-Based Versions
184
185Extensions became an official part of the protocol in version `2026-07-28`. Before that, many SDKs, clients, and servers already negotiated extensions on `2025-11-25` and earlier during the [`initialize` handshake](https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle#initialization), using `params.capabilities.extensions` in the request and `result.capabilities.extensions` in the response. The extension identifiers and settings objects follow the same rules as above.
186
187> [!NOTE]
188>
189> The `extensions` field is not part of the published schemas for these protocol versions, and supporting it is not required for conformance. SDKs that can carry `capabilities.extensions` through `initialize` are encouraged to do so, so that extensions work consistently across protocol versions. Check that your SDK can send and receive this field, and that the extension supports the negotiated protocol version. If the other side's capabilities omit `extensions`, or omit a given extension, treat that extension as unsupported and follow [Graceful Degradation](#graceful-degradation).
190
191**Client request**
192
193Clients advertise extension support in the `initialize` request:
194
195```json theme={null}
196{
197 "jsonrpc": "2.0",
198 "id": 1,
199 "method": "initialize",
200 "params": {
201 "protocolVersion": "2025-11-25",
202 "capabilities": {
203 "roots": {
204 "listChanged": true
205 },
206 "extensions": {
207 "io.modelcontextprotocol/ui": {
208 "mimeTypes": ["text/html;profile=mcp-app"]
209 }
210 }
211 },
212 "clientInfo": {
213 "name": "ExampleClient",
214 "version": "1.0.0"
215 }
216 }
217}
218```
219
220**Server response**
221
222Servers advertise extension support in the `initialize` response:
223
224```json theme={null}
225{
226 "jsonrpc": "2.0",
227 "id": 1,
228 "result": {
229 "protocolVersion": "2025-11-25",
230 "capabilities": {
231 "tools": {},
232 "extensions": {
233 "io.modelcontextprotocol/ui": {}
234 }
235 },
236 "serverInfo": {
237 "name": "ExampleServer",
238 "version": "1.0.0"
239 }
240 }
241}
242```
180243
181244### Graceful Degradation
182245