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 change · mcp

Extensions Overview changedextensions/overview

Nearest release: v2.1.312, published 21 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 28 Oct 2026 15:57 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 28 Oct 2026 16:07 UTC.

Upstream edited
Recorded here
Lines+63added
Lines−0removed
From line 115 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits9to this page, all time

### Initialization-Based Versions

The whole hunk

from line 115, old and new numbered
/
lines
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