Overview changedspecification/draft/basic/index
Nearest release: v2.1.309, published under an hour before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+19added
Lines−19removed
From line
26
where the diff opens
First seen
26 Aug 2026
this site's first read of the page
Recorded edits4to this page, all time
The whole hunk
from line 26, old and new numbered
/
from line 26
2626
2727### Requests
2828
29[Requests](/specification/draft/schema#jsonrpcrequest) are sent from the client to the server, to initiate an operation.
29[Requests](/specification/draft/schema.md#jsonrpcrequest) are sent from the client to the server, to initiate an operation.
3030
3131```typescript theme={null}
3232{
from line 50
5050
5151#### Result Responses
5252
53[Result responses](/specification/draft/schema#jsonrpcresultresponse) are sent when the operation completes successfully.
53[Result responses](/specification/draft/schema.md#jsonrpcresultresponse) are sent when the operation completes successfully.
5454
5555```typescript theme={null}
5656{
from line 82
8282
8383#### Error Responses
8484
85[Error responses](/specification/draft/schema#jsonrpcerrorresponse) are sent when the operation fails or encounters an error.
85[Error responses](/specification/draft/schema.md#jsonrpcerrorresponse) are sent when the operation fails or encounters an error.
8686
8787```typescript theme={null}
8888{
from line 117
117117 **MUST NOT** assume any specific meaning for these codes.
118118* **`-32020` to `-32099` — reserved for the MCP specification.** Error codes
119119 in this sub-range are defined exclusively by the MCP specification and
120 recorded in the [schema](/specification/draft/schema). Implementations
120 recorded in the [schema](/specification/draft/schema.md). Implementations
121121 **MUST NOT** emit any code from this sub-range that is not defined by this
122122 specification and **MUST** use defined codes only with their specified
123123 meanings.
from line 152
152152
153153### Notifications
154154
155[Notifications](/specification/draft/schema#jsonrpcnotification) are sent from the client to the server or vice versa, as a one-way message.
155[Notifications](/specification/draft/schema.md#jsonrpcnotification) are sent from the client to the server or vice versa, as a one-way message.
156156The receiver **MUST NOT** send a response.
157157
158158```typescript theme={null}
from line 169
169169
170170### Message Patterns
171171
172The Model Context Protocol (MCP) supports several [Message Patterns](/specification/draft/basic/patterns) that define how clients and servers interact:
172The Model Context Protocol (MCP) supports several [Message Patterns](/specification/draft/basic/patterns.md) that define how clients and servers interact:
173173
1741. **[Request and Response](/specification/draft/basic/patterns#request-and-response)**: A client sends a request to the server, and the server responds with a result or error.
1752. **[Multi Round-Trip Requests (MRTR)](/specification/draft/basic/patterns#multi-round-trip-requests)**: A server requires additional client input (sampling, elicitation, or roots) to complete a request.
1763. **[Subscribe and Notify](/specification/draft/basic/patterns#subscribe-and-notify)**: A client subscribes to a stream of notifications from the server, which are sent as they occur.
1741. **[Request and Response](/specification/draft/basic/patterns.md#request-and-response)**: A client sends a request to the server, and the server responds with a result or error.
1752. **[Multi Round-Trip Requests (MRTR)](/specification/draft/basic/patterns.md#multi-round-trip-requests)**: A server requires additional client input (sampling, elicitation, or roots) to complete a request.
1763. **[Subscribe and Notify](/specification/draft/basic/patterns.md#subscribe-and-notify)**: A client subscribes to a stream of notifications from the server, which are sent as they occur.
177177
178178## Statelessness
179179
from line 212
212212> [!NOTE]
213213>
214214> For a walkthrough of how the per-request model maps to SDK code, see the
215> [Architecture guide](/docs/draft/learn/architecture#example).
215> [Architecture guide](/docs/draft/learn/architecture.md#example).
216216
217217## Auth
218218
219MCP provides an [Authorization](/specification/draft/basic/authorization) framework for use with HTTP.
219MCP provides an [Authorization](/specification/draft/basic/authorization.md) framework for use with HTTP.
220220Implementations using an HTTP-based transport **SHOULD** conform to this specification,
221221whereas implementations using STDIO transport **SHOULD NOT** follow this specification,
222222and instead retrieve credentials from the environment.
from line 345
345345
346346| Key | Description | Defined in |
347347| - | - | - |
348| `progressToken` | Opts the request into progress notifications | [Progress](/specification/draft/basic/patterns/progress) |
348| `progressToken` | Opts the request into progress notifications | [Progress](/specification/draft/basic/patterns/progress.md) |
349349| `io.modelcontextprotocol/protocolVersion` | Protocol version for a request | Per-request protocol fields (below) |
350350| `io.modelcontextprotocol/clientInfo` | Client name and version | Per-request protocol fields (below) |
351351| `io.modelcontextprotocol/clientCapabilities` | Client capabilities relevant to a request | Per-request protocol fields (below) |
352| `io.modelcontextprotocol/logLevel` | Minimum log level the server should emit for a request | [Logging](/specification/draft/server/utilities/logging) |
353| `io.modelcontextprotocol/subscriptionId` | Correlates a notification with its originating subscription | [Subscriptions](/specification/draft/basic/patterns/subscriptions) |
352| `io.modelcontextprotocol/logLevel` | Minimum log level the server should emit for a request | [Logging](/specification/draft/server/utilities/logging.md) |
353| `io.modelcontextprotocol/subscriptionId` | Correlates a notification with its originating subscription | [Subscriptions](/specification/draft/basic/patterns/subscriptions.md) |
354354| `traceparent`, `tracestate`, `baggage` | OpenTelemetry trace context propagation | OpenTelemetry trace context (below) |
355355
356Official [extensions](/specification/draft/basic/versioning#extension-negotiation)
356Official [extensions](/specification/draft/basic/versioning.md#extension-negotiation)
357357define additional `_meta` keys under the `io.modelcontextprotocol/` prefix, and
358358third-party extensions use their own vendor prefix.
359359In both cases the keys are specified in the extension's documentation.
from line 409
409409the server **MUST** include `io.modelcontextprotocol/subscriptionId` in `_meta` so the
410410client can correlate the notification with the originating subscription request.
411411
412[lifecycle]: /specification/draft/basic/versioning
412[lifecycle]: /specification/draft/basic/versioning.md
413413
414[subscriptions-listen]: /specification/draft/basic/patterns/subscriptions
414[subscriptions-listen]: /specification/draft/basic/patterns/subscriptions.md
415415
416416**OpenTelemetry trace context:**
417417
No line in this hunk matches that.