Follow Discord
Sweep 10 Nov 2026 · 02:18Z Build v2.1.322 539 read Stable v2.1.311 Latest v2.1.322 Next v2.1.322 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · mcp

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 1

extensions/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 
Feedback