Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · mcp

One read of Model Context Protocolmcp-20261022T203719Z

295 pages moved out of 357 read.

Pages moved 295 significant first
Pages read 357 in this capture
Captured 20:37 UTC
Corpus hash 3ef457b31340 full-sweep

What this read moved

126-150 of 295, page 6 of 12

This capture is too large to show at once. Changes 126-150 of 295 are below, significant first; the rest are on the following screens.

extensions/skills/overview Changed · +9 / -9 lines

from line 4
44 
55The [ext-skills repository](https://github.com/modelcontextprotocol/ext-skills)
66contains the published specification for the official Skills extension
7(`io.modelcontextprotocol/skills`). [SEP-2640](/seps/2640-skills-extension) is Final.
7(`io.modelcontextprotocol/skills`). [SEP-2640](/seps/2640-skills-extension.md) is Final.
88 
9The [Skills Over MCP Working Group](/community/working-groups/skills-over-mcp)
9The [Skills Over MCP Working Group](/community/working-groups/skills-over-mcp.md)
1010maintains the extension. SDK and host support is still being implemented;
11see the [client support matrix](/extensions/client-matrix) and
11see the [client support matrix](/extensions/client-matrix.md) and
1212[implementations list](https://github.com/modelcontextprotocol/ext-skills/blob/main/docs/implementations.md)
1313for current coverage.
1414 
from line 72
7272>
7373> These examples use protocol revision `2026-07-28` or later. For brevity, the
7474> request examples omit `_meta`. Every request **MUST** include the required
75> [request metadata](/specification/draft/basic/index#_meta).
75> [request metadata](/specification/draft/basic/index.md#_meta).
7676 
7777## Protocol Messages
7878 
from line 79
7979### Listing Skills
8080 
8181To discover available skills, clients send a `skills/list` request. This
82operation supports [pagination](/specification/draft/server/utilities/pagination)
83and [caching](/specification/draft/server/utilities/caching).
82operation supports [pagination](/specification/draft/server/utilities/pagination.md)
83and [caching](/specification/draft/server/utilities/caching.md).
8484 
8585**Request:**
8686 
from line 428
428428 
429429## Client Support
430430 
431See the [client matrix](/extensions/client-matrix) for Skills support and links
431See the [client matrix](/extensions/client-matrix.md) for Skills support and links
432432to implementation documentation.
433433 
434434## Specification
435435 
436436The full specification is in the [ext-skills repository](https://github.com/modelcontextprotocol/ext-skills/blob/main/specification/stable/skills.mdx).
437Development is coordinated by the [Skills Over MCP Working Group](/community/working-groups/skills-over-mcp).
437Development is coordinated by the [Skills Over MCP Working Group](/community/working-groups/skills-over-mcp.md).
438438 

extensions/tasks/overview Changed · +3 / -3 lines

from line 242
242242 
243243> [!NOTE]
244244>
245> MCP Tasks is an extension to the [core MCP specification](/specification/latest). Host
245> MCP Tasks is an extension to the [core MCP specification](/specification/latest.md). Host
246246> support varies by client.
247247 
248See the [client matrix](/extensions/client-matrix) for extension support across
248See the [client matrix](/extensions/client-matrix.md) for extension support across
249249clients. Task support requires explicit opt-in from both client and server.
250250 
251251## Specification
252252 
253The Tasks extension is specified in the [ext-tasks repository](https://github.com/modelcontextprotocol/ext-tasks). It uses the standard MCP [extension negotiation](/extensions/overview#negotiation) mechanism: clients declare support in the `extensions` field of the `io.modelcontextprotocol/clientCapabilities` they send in each request's `_meta`, and servers advertise theirs in the capabilities returned by [`server/discover`](/specification/draft/server/discover).
253The Tasks extension is specified in the [ext-tasks repository](https://github.com/modelcontextprotocol/ext-tasks). It uses the standard MCP [extension negotiation](/extensions/overview.md#negotiation) mechanism: clients declare support in the `extensions` field of the `io.modelcontextprotocol/clientCapabilities` they send in each request's `_meta`, and servers advertise theirs in the capabilities returned by [`server/discover`](/specification/draft/server/discover).
254254 

registry/about Changed · +4 / -4 lines

from line 34
3434 
3535For example, a `weather-mcp` package could be hosted on npm, and metadata in the MCP Registry could map the "weather v1.2.0" server to `npm:weather-mcp`.
3636 
37The [Package Types guide](./package-types) lists the supported package types and registries. More package registries may be supported in the future based on community demand. If you are interested in building support for a package registry, please [open an issue](https://github.com/modelcontextprotocol/registry).
37The [Package Types guide](/registry/package-types.md) lists the supported package types and registries. More package registries may be supported in the future based on community demand. If you are interested in building support for a package registry, please [open an issue](https://github.com/modelcontextprotocol/registry).
3838 
3939### Relationship with Server Developers
4040 
from line 48
4848 
4949The metadata hosted by the MCP Registry is deliberately unopinionated. Downstream aggregators can provide curation or additional metadata such as community ratings.
5050 
51We expect that downstream aggregators will use the MCP Registry API to pull new metadata on a regular but infrequent basis (for example, once per hour). See the [MCP Registry Aggregators guide](./registry-aggregators) for more information.
51We expect that downstream aggregators will use the MCP Registry API to pull new metadata on a regular but infrequent basis (for example, once per hour). See the [MCP Registry Aggregators guide](/registry/registry-aggregators.md) for more information.
5252 
5353### Relationship with Other MCP Registries
5454 
from line 68
6868 
6969The MCP Registry uses namespace authentication to ensure that servers come from their claimed sources. Server names follow a reverse DNS format (like `io.github.username/server` or `com.example/server`) that ties them to verified GitHub accounts or domains.
7070 
71This namespace system ensures that only the legitimate owner of a GitHub account or domain can publish servers under that namespace, providing trust and accountability in the ecosystem. For details on authentication methods, see the [Authentication guide](./authentication).
71This namespace system ensures that only the legitimate owner of a GitHub account or domain can publish servers under that namespace, providing trust and accountability in the ecosystem. For details on authentication methods, see the [Authentication guide](/registry/authentication.md).
7272 
7373### Security Scanning
7474 
from line 85
8585 
8686* **Namespace authentication requirements** — Publishers must verify ownership of their namespace through GitHub, DNS, or HTTP challenges, preventing arbitrary spam submissions.
8787* **Character limits and validation** — Free-form fields have strict character limits and regex validation to prevent abuse.
88* **Manual takedown** — The registry maintainers can manually remove spam or malicious servers. See the [Moderation Policy](./moderation-policy) for details on what content is removed.
88* **Manual takedown** — The registry maintainers can manually remove spam or malicious servers. See the [Moderation Policy](/registry/moderation-policy.md) for details on what content is removed.
8989 
9090Future spam prevention measures under consideration include stricter rate limiting, AI-based spam detection, and community reporting capabilities.
9191 

registry/quickstart Changed · +5 / -5 lines

from line 10
1010 
1111* **Node.js** — This tutorial assumes the MCP server is written in TypeScript.
1212* **npm account** — The MCP Registry only hosts metadata, not artifacts. Before publishing to the MCP Registry, we will publish the MCP server's package to npm, so you will need an [npm](https://www.npmjs.com) account.
13* **GitHub account** — The MCP Registry supports [multiple authentication methods](./authentication). For simplicity, this tutorial will use GitHub-based authentication, so you will need a [GitHub](https://github.com/) account.
13* **GitHub account** — The MCP Registry supports [multiple authentication methods](/registry/authentication.md). For simplicity, this tutorial will use GitHub-based authentication, so you will need a [GitHub](https://github.com/) account.
1414 
1515If you do not have an MCP server written in TypeScript, you can copy the `weather-server-typescript` server from the [`modelcontextprotocol/quickstart-resources` repository](https://github.com/modelcontextprotocol/quickstart-resources) to follow along with this tutorial:
1616 
from line 276
276276 
277277## Next Steps
278278 
279* Learn about [support for other package types](./package-types).
280* Learn about [support for remote servers](./remote-servers).
281* Learn how to [use other authentication methods](./authentication), such as [DNS authentication](./authentication#dns-authentication) which enables custom domains for server name prefixes.
282* Learn how to [automate publishing with GitHub Actions](./github-actions).
279* Learn about [support for other package types](/registry/package-types.md).
280* Learn about [support for remote servers](/registry/remote-servers.md).
281* Learn how to [use other authentication methods](/registry/authentication.md), such as [DNS authentication](/registry/authentication.md#dns-authentication) which enables custom domains for server name prefixes.
282* Learn how to [automate publishing with GitHub Actions](/registry/github-actions.md).
283283 

seps/1036-url-mode-elicitation-for-secure-out-of-band-intera Changed · +4 / -4 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 36
3636The current MCP specification (2025-06-18) provides an elicitation mechanism for gathering non-sensitive information from users through structured, in-band requests (most commonly imagined as the MCP client rendering a form to collect data from the end-user). However, several critical use cases require interactions that must not pass through the MCP client:
3737 
38381. Sensitive data collection: API keys, passwords, and other credentials must never transit through intermediary systems.
392. External authorization: MCP servers often need to access third-party APIs on behalf of users. The MCP authorization specification only covers client-to-server authorization, not server-to-third-party authorization. The [Security Best Practices](https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices) document explicitly forbids token passthrough, requiring a secure mechanism for external (3rd-party) OAuth flows. This was a particularly important motivating factor emerging from discussions in #234 and #284.
392. External authorization: MCP servers often need to access third-party APIs on behalf of users. The MCP authorization specification only covers client-to-server authorization, not server-to-third-party authorization. The [Security Best Practices](https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices.md) document explicitly forbids token passthrough, requiring a secure mechanism for external (3rd-party) OAuth flows. This was a particularly important motivating factor emerging from discussions in #234 and #284.
40403. Payment and Subscription Flows: Financial transactions require PCI compliance and secure payment processing that cannot be achieved through in-band data collection.
4141 
4242Without a standardized mechanism for these interactions, MCP servers must resort to non-standard workarounds or insecure practices like requesting API keys through in-band, form-style elicitation. This SEP addresses these gaps by introducing a URL elicitation mode that leverages established web security patterns to handle sensitive interactions securely.
4343 
44URL elicitation is fundamentally different from [MCP authorization](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization). URL elicitation is not for authorizing the MCP client's access to the MCP server (that's handled directly by MCP authorization). Instead, it's used when the MCP server needs to obtain sensitive information or third-party authorization on behalf of the user. The MCP client's bearer token remains unchanged, and the client's only responsibility is to provide the user with context about the elicitation URL the server wants them to open.
44URL elicitation is fundamentally different from [MCP authorization](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization.md). URL elicitation is not for authorizing the MCP client's access to the MCP server (that's handled directly by MCP authorization). Instead, it's used when the MCP server needs to obtain sensitive information or third-party authorization on behalf of the user. The MCP client's bearer token remains unchanged, and the client's only responsibility is to provide the user with context about the elicitation URL the server wants them to open.
4545 
4646## Specification
4747 
from line 215
215215 
216216It is tempting to suggest that the MCP client should perform the interaction itself, e.g. act as an OAuth client to a third-party authorization server. However, there are several reasons why this is not a good idea:
217217 
218* If the MCP client obtains user tokens from a third-party authorization server, the MCP server becomes a [token passthrough](https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices#token-passthrough) server, which is explicitly forbidden.
218* If the MCP client obtains user tokens from a third-party authorization server, the MCP server becomes a [token passthrough](https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices.md#token-passthrough) server, which is explicitly forbidden.
219219* Similarly, for payment-type flows, the MCP client would need to perform PCI-compliant payment processing, which is not a desired requirement for MCP clients.
220220 
221221**Why doesn't the server block (wait) on the elicitation to complete?**

seps/1303-input-validation-errors-as-tool-execution-errors Changed · +3 / -3 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 76
7676 
7777### Current Behavior
7878 
79The [tool errors specification](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#error-handling) currently provides ambiguous guidance:
79The [tool errors specification](https://modelcontextprotocol.io/specification/2025-06-18/server/tools.md#error-handling) currently provides ambiguous guidance:
8080 
8181* "Invalid arguments" should be treated as Protocol Error
8282* "Invalid input data" should be treated as Tool Execution Error
from line 194
194194 
195195## References
196196 
197* [MCP Tools Error Handling Specification](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#error-handling)
197* [MCP Tools Error Handling Specification](https://modelcontextprotocol.io/specification/2025-06-18/server/tools.md#error-handling)
198198* [Better MCP tools/call Error Responses: Help Your AI Recover Gracefully](https://dev.to/alpic/better-mcp-toolscall-error-responses-help-your-ai-recover-gracefully-15c7)
199199* Related Issue: [https://github.com/modelcontextprotocol/typescript-sdk/pull/824](https://github.com/modelcontextprotocol/typescript-sdk/pull/824)
200200 

seps/1577--sampling-with-tools Changed · +12 / -12 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 33
3333 
3434## Motivation
3535 
36* [Sampling](https://modelcontextprotocol.io/specification/2025-06-18/client/sampling) doesn't support tool calling, although it's a cornerstone of modern agentic behaviour. Without explicit support for it, MCP servers that use Sampling can either try and emulate tool calling w/ complex prompting / custom parsing of the outputs, or are limited to simpler, non-agentic requests. Adding support for tool calling could unlock many novel use cases in the MCP ecosystem.
36* [Sampling](https://modelcontextprotocol.io/specification/2025-06-18/client/sampling.md) doesn't support tool calling, although it's a cornerstone of modern agentic behaviour. Without explicit support for it, MCP servers that use Sampling can either try and emulate tool calling w/ complex prompting / custom parsing of the outputs, or are limited to simpler, non-agentic requests. Adding support for tool calling could unlock many novel use cases in the MCP ecosystem.
3737 
38* Context inclusion is ambiguously defined (see [this doc](https://docs.google.com/document/d/1KUsloHpsjR4fdXdJuofb9jUuK0XWi88clbRm9sWE510/edit?tab=t.0#heading=h.edw7oyac2e87)): it makes it particularly tricky to fully implement sampling, which along with other precautions needed for sampling (unaffected by this SEP) may have contributed to [low adoption of the feature in clients](https://modelcontextprotocol.io/clients#feature-support-matrix) (feature was introduced in the MCP Nov 2024 spec).
38* Context inclusion is ambiguously defined (see [this doc](https://docs.google.com/document/d/1KUsloHpsjR4fdXdJuofb9jUuK0XWi88clbRm9sWE510/edit?tab=t.0#heading=h.edw7oyac2e87)): it makes it particularly tricky to fully implement sampling, which along with other precautions needed for sampling (unaffected by this SEP) may have contributed to [low adoption of the feature in clients](https://modelcontextprotocol.io/clients.md#feature-support-matrix) (feature was introduced in the MCP Nov 2024 spec).
3939 
4040Please note some related work:
4141 
from line 52
5252 
5353### Overview
5454 
55* Add traditional tool call support in [CreateMessageRequest](https://modelcontextprotocol.io/specification/2025-06-18/schema#createmessagerequest) w/ `tools` (w/ JSON schemas) & `toolChoice` params, requiring a server-side tool loop
55* Add traditional tool call support in [CreateMessageRequest](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#createmessagerequest) w/ `tools` (w/ JSON schemas) & `toolChoice` params, requiring a server-side tool loop
5656 * Sampling may now yield ToolCallBlock responses
5757 * Server needs to call tools by itself
5858 * Server calls sampling again with ToolResultParamBlock to inject tool results
5959 * `toolChoice.mode` can be `“auto" | "required" | "none"` to allow common structured outputs use case (see below for possible follow up improvements)
6060 * Fenced by new capability (`sampling { tools {} }`)
61* Fix/update underspecified strings in [CreateMessageResult](https://modelcontextprotocol.io/specification/2025-06-18/schema#createmessageresult):
61* Fix/update underspecified strings in [CreateMessageResult](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#createmessageresult):
6262 * `stopReason: “endTurn" | "stopSequence" | “toolUse" | “maxToken" | string` (explicit enums + open string for compat)
6363 * `role: “assistant”`
64* Soft-deprecate [CreateMessageRequest.params.includeContext](https://modelcontextprotocol.io/specification/2025-06-18/schema#createmessagerequest) != ‘none’ (now fenced by capability)
64* Soft-deprecate [CreateMessageRequest.params.includeContext](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#createmessagerequest) != ‘none’ (now fenced by capability)
6565 * Incentivize context-free sampling implementation
6666 
6767### Protocol changes
from line 76
7676 
7777### Schema changes
7878 
79* [ClientCapabilities](https://modelcontextprotocol.io/specification/2025-06-18/schema#clientcapabilities)
79* [ClientCapabilities](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#clientcapabilities)
8080 
8181 ```typescript theme={null}
8282 interface ClientCapabilities {
from line 88
8888 }
8989 ```
9090 
91* [CreateMessageRequest](https://modelcontextprotocol.io/specification/2025-06-18/schema#createmessagerequest) (use existing [Tool](https://modelcontextprotocol.io/specification/2025-06-18/schema#tool))
91* [CreateMessageRequest](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#createmessagerequest) (use existing [Tool](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#tool))
9292 
9393 ```typescript theme={null}
9494 interface CreateMessageRequest {
from line 122
122122 * Gemini API has no way to disable parallel tool calls atm (unlike OAI / Anthropic APIs). Removing this flag for now, to be reintroduced when Gemini has any way of supporting it. Otherwise clients would get unexpected multiple tool calls (or alternatively if implemented that way, unexpected failures / costly retry until a single tool call is emitted)
123123 * Gemini API's [Function calling modes](https://ai.google.dev/gemini-api/docs/function-calling?example=meeting#function_calling_modes) have an `ANY` value that should match the proposed `required`
124124 
125* [SamplingMessage](https://modelcontextprotocol.io/specification/2025-06-18/schema#samplingmessage):
125* [SamplingMessage](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#samplingmessage):
126126 
127127 ```typescript theme={null}
128128 /*
from line 240
240240 * `function` role (similar to OAI's `tool` role)
241241 * No tool call id concept ([function calling](https://ai.google.dev/gemini-api/docs/function-calling?example=meeting#parallel_function_calling): Gemini requires tool results to be provided in the exact same order as the tool use parts. An implementation could generate the tool call ids and use them to reorder the tool results if needed.
242242 
243* [CreateMessageResult](https://modelcontextprotocol.io/specification/2025-06-18/schema#createmessageresult)
243* [CreateMessageResult](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#createmessageresult)
244244 
245245 ```typescript theme={null}
246246 /*
from line 342
342342Pros:
343343 
344344* Technically no spec change needed (if anything, mention this as a freedom clients have)
345* Possibly similar to what [CreateMessageRequest.params.includeContext](https://modelcontextprotocol.io/specification/2025-06-18/schema#createmessagerequest) = thisServer / allServers intended semantics may have meant
345* Possibly similar to what [CreateMessageRequest.params.includeContext](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#createmessagerequest) = thisServer / allServers intended semantics may have meant
346346 * `CreateMessageRequest.params.allowImplicitToolCalls = “none” | “thisServer” | “allServers”`
347347 (assuming we wanted to give the server any control over this)
348348 

seps/2127-mcp-server-cards Changed · +5 / -5 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 31
3131 
3232This SEP proposes adding a standardized, self-contained format to describe MCP servers for pre-connection discovery. This enables clients to automatically discover available transports, protocol versions, and connection guidance before establishing a connection.
3333 
34As an Extensions Track SEP (per [SEP-2133](./2133-extensions.md)), this document charters the **Server Card** extension and names its Working Group and maintainers. The detailed, normative wire format — the Server Card schema, field definitions, the discovery mechanics, and the full security analysis — is maintained in the [experimental-ext-server-card](https://github.com/modelcontextprotocol/experimental-ext-server-card) repository rather than inline here, following the precedent set by [SEP-1865 (MCP Apps)](./1865-mcp-apps-interactive-user-interfaces-for-mcp.md).
34As an Extensions Track SEP (per [SEP-2133](/seps/2133-extensions.md)), this document charters the **Server Card** extension and names its Working Group and maintainers. The detailed, normative wire format — the Server Card schema, field definitions, the discovery mechanics, and the full security analysis — is maintained in the [experimental-ext-server-card](https://github.com/modelcontextprotocol/experimental-ext-server-card) repository rather than inline here, following the precedent set by [SEP-1865 (MCP Apps)](/seps/1865-mcp-apps-interactive-user-interfaces-for-mcp.md).
3535 
3636## Motivation
3737 
from line 92
9292and the discovery mechanics in [`docs/discovery.md`](https://github.com/modelcontextprotocol/experimental-ext-server-card/blob/main/docs/discovery.md)
9393are derived from it.
9494 
95For purposes of SEP review, [extension repository snapshot `526201bb`](https://github.com/modelcontextprotocol/experimental-ext-server-card/tree/526201bbc80231daa40ffcdecfc9da4e54e5dc93) captures the contract considered by this proposal. After acceptance, implementers should follow the current, versioned extension specification rather than this historical snapshot. As defined by [SEP-2133](./2133-extensions.md#iteration), extension maintainers may evolve the specification independently while preserving backward compatibility; breaking changes require a new extension identifier.
95For purposes of SEP review, [extension repository snapshot `526201bb`](https://github.com/modelcontextprotocol/experimental-ext-server-card/tree/526201bbc80231daa40ffcdecfc9da4e54e5dc93) captures the contract considered by this proposal. After acceptance, implementers should follow the current, versioned extension specification rather than this historical snapshot. As defined by [SEP-2133](/seps/2133-extensions.md#iteration), extension maintainers may evolve the specification independently while preserving backward compatibility; breaking changes require a new extension identifier.
9696 
9797At a high level, the Server Card extension introduces:
9898 
from line 188
188188 
189189## References
190190 
191* [SEP-1865: MCP Apps (Extensions Track precedent)](./1865-mcp-apps-interactive-user-interfaces-for-mcp.md)
192* [SEP-2133: Extensions](./2133-extensions.md)
191* [SEP-1865: MCP Apps (Extensions Track precedent)](/seps/1865-mcp-apps-interactive-user-interfaces-for-mcp.md)
192* [SEP-2133: Extensions](/seps/2133-extensions.md)
193193* [RFC 8414: OAuth 2.0 Authorization Server Metadata](https://datatracker.ietf.org/doc/html/rfc8414)
194194* [RFC 8615: Well-Known URIs](https://datatracker.ietf.org/doc/html/rfc8615)
195195* [MCP Protocol Specification](https://modelcontextprotocol.io/specification)

seps/2133-extensions Changed · +7 / -7 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 43
4343 
4444An MCP extension is an optional addition to the specification that defines capabilities beyond the core protocol. Extensions enable functionality that may be modular (e.g., distinct features like authentication), specialized (e.g., industry-specific logic), or experimental (e.g., features being incubated for potential core inclusion).
4545 
46Extensions are identified using a unique *extension identifier* with the format: `{vendor-prefix}/{extension-name}`, e.g. `io.modelcontextprotocol/oauth-client-credentials` or `com.example/websocket-transport`. The names follow the same rules as the [\_meta keys](https://modelcontextprotocol.io/specification/draft/basic/index#meta), except that the prefix is mandatory.
46Extensions are identified using a unique *extension identifier* with the format: `{vendor-prefix}/{extension-name}`, e.g. `io.modelcontextprotocol/oauth-client-credentials` or `com.example/websocket-transport`. The names follow the same rules as the [\_meta keys](https://modelcontextprotocol.io/specification/draft/basic/index.md#meta), except that the prefix is mandatory.
4747 
4848To prevent identifier collisions, the vendor prefix SHOULD be a reversed domain name that the extension author owns or controls (similar to Java package naming conventions). For example, a company owning `example.com` would use `com.example/` as their prefix.
4949 
from line 89
8989 
9090Extensions MAY optionally begin as experimental extensions (see *Experimental Extensions* section) to facilitate prototyping and collaboration before formal submission. This incubation period is encouraged but not required.
9191 
92To become an official extension, extensions are created via a SEP in the [main MCP repository](https://github.com/modelcontextprotocol/modelcontextprotocol/) using the [standard SEP guidelines](https://modelcontextprotocol.io/community/sep-guidelines) but with a new type: **Extensions Track**. This type follows the same review and acceptance process as Standards Track SEPs, but clearly indicates that the proposal is for an extension rather than a core protocol addition. The SEP must identify the Working Group and Extension Maintainers that will be responsible for the extension. See [SEP-2148](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2148) for how maintainers are appointed.
92To become an official extension, extensions are created via a SEP in the [main MCP repository](https://github.com/modelcontextprotocol/modelcontextprotocol/) using the [standard SEP guidelines](https://modelcontextprotocol.io/community/sep-guidelines.md) but with a new type: **Extensions Track**. This type follows the same review and acceptance process as Standards Track SEPs, but clearly indicates that the proposal is for an extension rather than a core protocol addition. The SEP must identify the Working Group and Extension Maintainers that will be responsible for the extension. See [SEP-2148](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2148) for how maintainers are appointed.
9393 
9494Extension SEPs:
9595 
from line 110
110110 
111111### Spec Recommendation
112112 
113Extensions will be referenced from a new page on the MCP website at [modelcontextprotocol.io/extensions](http://modelcontextprotocol.io/extensions) (to be created) with links to their specification.
113Extensions will be referenced from a new page on the MCP website at [modelcontextprotocol.io/extensions](https://modelcontextprotocol.io/extensions.md) (to be created) with links to their specification.
114114 
115Links to relevant extensions MAY also be added to the core specification as appropriate (e.g. [https://modelcontextprotocol.io/specification/draft/basic/authorization](https://modelcontextprotocol.io/specification/draft/basic/authorization) may link to ext-auth extensions), but they MUST be clearly advertised as optional extensions and SHOULD be links only (not copies of specification text).
115Links to relevant extensions MAY also be added to the core specification as appropriate (e.g. [https://modelcontextprotocol.io/specification/draft/basic/authorization](https://modelcontextprotocol.io/specification/draft/basic/authorization.md) may link to ext-auth extensions), but they MUST be clearly advertised as optional extensions and SHOULD be links only (not copies of specification text).
116116 
117117### SDK Implementation
118118 
from line 132
132132 
133133### Negotiation
134134 
135Clients and servers advertise their support for extensions in the [ClientCapabilities](https://modelcontextprotocol.io/specification/2025-06-18/schema#clientcapabilities) and [ServerCapabilities](https://modelcontextprotocol.io/specification/2025-06-18/schema#servercapabilities) fields respectively, and in the [Server Card](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649) (currently in progress).
135Clients and servers advertise their support for extensions in the [ClientCapabilities](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#clientcapabilities) and [ServerCapabilities](https://modelcontextprotocol.io/specification/2025-06-18/schema.md#servercapabilities) fields respectively, and in the [Server Card](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649) (currently in progress).
136136 
137137A new "extensions" field will be introduced to each that is a map of *extension identifiers* to per-extension settings objects. Each extension specifies the schema of its settings object; an empty object indicates no settings.
138138 

seps/2148-contributor-ladder Changed · +7 / -7 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 31
3131 
3232This SEP establishes a formal contributor ladder for the Model Context Protocol project, defining clear roles, responsibilities, and advancement criteria from first-time contributor through Core Maintainer. The ladder provides transparent pathways for community members to understand how they can grow their involvement and influence within the project.
3333 
34This SEP is a companion to [SEP-2149: MCP Group Governance and Charter Template](./2149-working-group-charter-template.md), which defines how Working Groups and Interest Groups operate. The two SEPs intersect: WG/IG leadership requires Member status on this ladder, and group participation is a recognized pathway to ladder advancement.
34This SEP is a companion to [SEP-2149: MCP Group Governance and Charter Template](/seps/2149-working-group-charter-template.md), which defines how Working Groups and Interest Groups operate. The two SEPs intersect: WG/IG leadership requires Member status on this ladder, and group participation is a recognized pathway to ladder advancement.
3535 
3636## Motivation
3737 
from line 87
8787 
8888**How to get started:**
8989 
90* Review the [Contributing Guide](https://modelcontextprotocol.io/community/contributing)
90* Review the [Contributing Guide](https://modelcontextprotocol.io/community/contributing.md)
9191* Join community channels (Discord, GitHub Discussions)
9292* Look for issues tagged `good-first-issue` or `help-wanted`
9393* Attend working group meetings
from line 204
204204**Privileges:**
205205 
206206* Final approval on breaking changes and major spec revisions
207* Voting rights on [SEPs](https://modelcontextprotocol.io/community/sep-guidelines) (Specification Enhancement Proposals)
207* Voting rights on [SEPs](https://modelcontextprotocol.io/community/sep-guidelines.md) (Specification Enhancement Proposals)
208208* Approval of Maintainers
209209* Governance voting rights / expectation of governance participation
210210* Administrative rights to all MCP GitHub repositories
from line 276
276276 
277277When in doubt, make the decision at your level and document it. Escalate only when blocked, when the decision has project-wide implications, or when explicitly required by process.
278278 
279The detailed escalation procedure for Working Group and Interest Group disputes — including the designation of a Core Maintainer without shared organizational affiliation to resolve the issue — is defined in [SEP-2149 §1.5](./2149-working-group-charter-template.md).
279The detailed escalation procedure for Working Group and Interest Group disputes — including the designation of a Core Maintainer without shared organizational affiliation to resolve the issue — is defined in [SEP-2149 §1.5](/seps/2149-working-group-charter-template.md).
280280 
281281#### Escalation Matrix
282282 
from line 310
310310#### Specification Work
311311 
312312* Drafting or refining spec text
313* [SEP](https://modelcontextprotocol.io/community/sep-guidelines) authorship or co-authorship
313* [SEP](https://modelcontextprotocol.io/community/sep-guidelines.md) authorship or co-authorship
314314* Protocol design participation
315315* Compatibility analysis
316316 
from line 337
337337 
338338### Working Group and Interest Group Leadership
339339 
340Working Group (WG) Leads and Interest Group (IG) Facilitators are a special form of community leadership that doesn't require Maintainer status. WG/IG leadership focuses on facilitation and coordination rather than merge authority. The full governance rules for WGs and IGs — including participation tiers, decision-making process, meeting requirements, and lifecycle — are defined in [SEP-2149: MCP Group Governance and Charter Template](./2149-working-group-charter-template.md).
340Working Group (WG) Leads and Interest Group (IG) Facilitators are a special form of community leadership that doesn't require Maintainer status. WG/IG leadership focuses on facilitation and coordination rather than merge authority. The full governance rules for WGs and IGs — including participation tiers, decision-making process, meeting requirements, and lifecycle — are defined in [SEP-2149: MCP Group Governance and Charter Template](/seps/2149-working-group-charter-template.md).
341341 
342342**Requirements:**
343343 

seps/2149-working-group-charter-template Changed · +5 / -5 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 31
3131 
3232This SEP establishes governance rules and a standardized charter template for MCP's two collaborative group types: **Working Groups (WGs)** and **Interest Groups (IGs)**. Working Groups produce concrete deliverables — SEPs, implementations, and code. Interest Groups facilitate discussion and knowledge-sharing to identify problems and gather requirements. The governance rules define the requirements that all groups must follow, with lighter expectations for IGs where appropriate. The charter template defines the structure each group uses to document its specific mission, scope, leadership, and work. Together they address community feedback about unclear authority delegation and inconsistent processes across groups.
3333 
34This SEP is a companion to [SEP-2148: MCP Contributor Ladder](./2148-contributor-ladder.md), which defines the org-wide contributor roles (Member, Maintainer, Core Maintainer, Lead Maintainer) referenced throughout this document. Group leadership roles intersect with the contributor ladder: WG Leads and IG Facilitators must hold at least Member status on the ladder, and group participation is a recognized pathway to ladder advancement.
34This SEP is a companion to [SEP-2148: MCP Contributor Ladder](/seps/2148-contributor-ladder.md), which defines the org-wide contributor roles (Member, Maintainer, Core Maintainer, Lead Maintainer) referenced throughout this document. Group leadership roles intersect with the contributor ladder: WG Leads and IG Facilitators must hold at least Member status on the ladder, and group participation is a recognized pathway to ladder advancement.
3535 
3636## Motivation
3737 
from line 75
7575 
7676**Requirements for all Leads and Facilitators:**
7777 
78* Hold at least Member status on the [MCP Contributor Ladder](./2148-contributor-ladder.md)
78* Hold at least Member status on the [MCP Contributor Ladder](/seps/2148-contributor-ladder.md)
7979* Demonstrated sustained engagement with the group's scope area
8080* Ability to facilitate across organizational boundaries
8181* Commitment to running the group's operations
from line 98
9898 
9999**WG Leads are additionally responsible for:**
100100 
101* Drive proposals through the [SEP](https://modelcontextprotocol.io/community/sep-guidelines) (Specification Enhancement Proposal) process to resolution
101* Drive proposals through the [SEP](https://modelcontextprotocol.io/community/sep-guidelines.md) (Specification Enhancement Proposal) process to resolution
102102* Triage SEPs in the WG's scope area, including closing SEPs that do not fit the roadmap (with documented rationale; authors may appeal to Core Maintainers)
103103* Escalate blocked decisions to Core Maintainers with clear context
104104* Maintain the working group's roadmap
from line 107
107107 
108108#### 1.3 Participation Levels
109109 
110All groups use the following participation tiers. Note that **WG Member** is a group-specific participation level distinct from the org-wide **Member** role defined in the [Contributor Ladder](./2148-contributor-ladder.md) — an individual may be a WG Member in a specific group without holding org-wide Member status, and vice versa.
110All groups use the following participation tiers. Note that **WG Member** is a group-specific participation level distinct from the org-wide **Member** role defined in the [Contributor Ladder](/seps/2148-contributor-ladder.md) — an individual may be a WG Member in a specific group without holding org-wide Member status, and vice versa.
111111 
112112| Level | Description | Privileges |
113113| - | - | - |

seps/2596-spec-feature-lifecycle-and-deprecation Changed · +18 / -18 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 229
229229As with all Core Maintainer decisions, Lead Maintainers retain veto authority over each of the
230230approvals above, per the [governance roles][governance-roles] definition.
231231 
232[governance-roles]: https://modelcontextprotocol.io/community/governance#roles
232[governance-roles]: https://modelcontextprotocol.io/community/governance.md#roles
233233 
234234### Transition
235235 
from line 380
380380 deprecation field on responses, comparable to the Kubernetes `Warning` header) would close that
381381 gap but is a Standards Track change outside the scope of this Process SEP.
382382 
383[transports-compat]: https://modelcontextprotocol.io/specification/draft/basic/transports#backwards-compatibility
383[transports-compat]: https://modelcontextprotocol.io/specification/draft/basic/transports.md#backwards-compatibility
384384 
385[sampling-includecontext]: https://modelcontextprotocol.io/specification/draft/client/sampling
385[sampling-includecontext]: https://modelcontextprotocol.io/specification/draft/client/sampling.md
386386 
387[versioning]: https://modelcontextprotocol.io/docs/learn/versioning
387[versioning]: https://modelcontextprotocol.io/docs/learn/versioning.md
388388 
389[design-principles]: https://modelcontextprotocol.io/community/design-principles
389[design-principles]: https://modelcontextprotocol.io/community/design-principles.md
390390 
391[sep-guidelines]: https://modelcontextprotocol.io/community/sep-guidelines
391[sep-guidelines]: https://modelcontextprotocol.io/community/sep-guidelines.md
392392 
393[governance-decisions]: https://modelcontextprotocol.io/community/governance#decision-process
393[governance-decisions]: https://modelcontextprotocol.io/community/governance.md#decision-process
394394 
395[sep-1730]: https://modelcontextprotocol.io/seps/1730-sdks-tiering-system
395[sep-1730]: https://modelcontextprotocol.io/seps/1730-sdks-tiering-system.md
396396 
397[sep-1730-relegation]: https://modelcontextprotocol.io/seps/1730-sdks-tiering-system#tier-relegation-process
397[sep-1730-relegation]: https://modelcontextprotocol.io/seps/1730-sdks-tiering-system.md#tier-relegation-process
398398 
399399[sep-1400]: https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1400
400400 
401401[issue-1540]: https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1540
402402 
403[sep-2577]: https://modelcontextprotocol.io/seps/2577-deprecate-roots-sampling-and-logging
403[sep-2577]: https://modelcontextprotocol.io/seps/2577-deprecate-roots-sampling-and-logging.md
404404 
405405[nyc-2026-03-31]: https://github.com/modelcontextprotocol/modelcontextprotocol/discussions/2547
406406 

seps/2663-tasks-extension Changed · +21 / -21 lines

from line 11
1111> This SEP has reached Final status and is preserved as a historical record of
1212> the design as accepted. Changes made to the protocol after finalization are
1313> not reflected here. Refer to the [current
14> specification](/specification/latest) and its changelog for authoritative
14> specification](/specification/latest.md) and its changelog for authoritative
1515> requirements.
1616 
1717| Field | Value |
from line 31
3131 
3232This SEP defines an extension that allows a server to respond to a `tools/call` request with an asynchronous *task handle* instead of a final result, allowing the client to retrieve the eventual result by polling. The extension introduces three methods: `tasks/get`, `tasks/update`, and `tasks/cancel`; a polymorphic-result discriminator (`resultType: "task"`); and a `Task` shape that carries a task status, in-progress server-to-client requests, and a final result or error. Task creation is server-directed: the client signals support by including the extension in its per-request capabilities, and the server decides on a per-request basis whether to materialize a task.
3333 
34Tasks will become a foundational building block of MCP and are expected to be supported in future protocol versions. The experimental `tasks` feature in the `2025-11-25` specification served as a stopgap until the protocol's extension mechanism was available. Now that [extensions](https://modelcontextprotocol.io/extensions/overview) have been [formalized](./2133-extensions.md), moving tasks to an official extension gives the feature time to incubate and evolve based on additional real-world implementation feedback, without being constrained by the core specification's release cadence. Once the extension has stabilized and achieved broad adoption, it is intended to be promoted into the core protocol.
34Tasks will become a foundational building block of MCP and are expected to be supported in future protocol versions. The experimental `tasks` feature in the `2025-11-25` specification served as a stopgap until the protocol's extension mechanism was available. Now that [extensions](https://modelcontextprotocol.io/extensions/overview.md) have been [formalized](/seps/2133-extensions.md), moving tasks to an official extension gives the feature time to incubate and evolve based on additional real-world implementation feedback, without being constrained by the core specification's release cadence. Once the extension has stabilized and achieved broad adoption, it is intended to be promoted into the core protocol.
3535 
36This proposal *removes* the version of [tasks](https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks) specified in the `2025-11-25` release from the core protocol and moves it to an Extension. It also proposes updates to Tasks shaped by implementation feedback since that release, and by several changes to the base protocol included in the `2026-06-30` specification:
36This proposal *removes* the version of [tasks](https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks.md) specified in the `2025-11-25` release from the core protocol and moves it to an Extension. It also proposes updates to Tasks shaped by implementation feedback since that release, and by several changes to the base protocol included in the `2026-06-30` specification:
3737 
38* [SEP-2260: Require Server requests to be associated with a Client request](./2260-Require-Server-requests-to-be-associated-with-Client-requests.md)
39* [SEP-2322: Multi Round-Trip Requests](./2322-MRTR.md)
40* [SEP-2243: HTTP Header Standardization for Streamable HTTP Transport](./2243-http-standardization.md)
41* [SEP-2567: Sessionless MCP via Explicit State Handles](./2567-sessionless-mcp.md)
38* [SEP-2260: Require Server requests to be associated with a Client request](/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md)
39* [SEP-2322: Multi Round-Trip Requests](/seps/2322-MRTR.md)
40* [SEP-2243: HTTP Header Standardization for Streamable HTTP Transport](/seps/2243-http-standardization.md)
41* [SEP-2567: Sessionless MCP via Explicit State Handles](/seps/2567-sessionless-mcp.md)
4242* [SEP-2575: Make MCP Stateless](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2575)
4343 
4444## Motivation
4545 
46The experimental [tasks](https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks) feature served as an alternate execution mode for tool calls, elicitation, and sampling, allowing receivers to return a poll handle instead of blocking until a final result was ready. Implementation experience surfaced several challenges:
46The experimental [tasks](https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks.md) feature served as an alternate execution mode for tool calls, elicitation, and sampling, allowing receivers to return a poll handle instead of blocking until a final result was ready. Implementation experience surfaced several challenges:
4747 
48481. **The handshake is fragile.** Tasks today expose method-level capabilities (`tasks.requests.tools.call` declares that `tools/call` **MAY** be task-augmented) alongside a tool-level `execution.taskSupport` field that declares whether a particular tool will accept the augmentation. Clients express their own support for tasks by passing a `task` parameter on their requests, but **MUST NOT** include it if the method/tool does not support tasks. A client that wants to opt into tasks must therefore prime its state with a `tools/list` call before issuing any task-augmented request, and cannot blindly attach a `task` parameter to every request to handle tools isomorphically. This is confusing, implicit, and easy to get wrong.
4949 
502. **`tasks/result` is a blocking trap.** In the current flow, a client that observes `input_required` is required to call `tasks/result` prematurely so that the server has an SSE stream on which to side-channel elicitation or sampling requests. `tasks/result` then blocks until the entire operation completes. This forces long-lived persistent connections that many clients and servers do not want to implement, and it conflicts with [SEP-2260](./2260-Require-Server-requests-to-be-associated-with-Client-requests.md), which disallows unsolicited server-to-client requests outright. Under SEP-2260, the SSE semantics that justified the blocking behavior no longer apply.
502. **`tasks/result` is a blocking trap.** In the current flow, a client that observes `input_required` is required to call `tasks/result` prematurely so that the server has an SSE stream on which to side-channel elicitation or sampling requests. `tasks/result` then blocks until the entire operation completes. This forces long-lived persistent connections that many clients and servers do not want to implement, and it conflicts with [SEP-2260](/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md), which disallows unsolicited server-to-client requests outright. Under SEP-2260, the SSE semantics that justified the blocking behavior no longer apply.
5151 
52523. **`tasks/list` scoping cannot be defined.** To avoid clients cancelling or retrieving results for tasks they shouldn't have access to, all tasks should be bound to some sort of "authorization context," the implementation of which is left to individual servers according to their existing bespoke permission models. However, in many cases, it is not possible to perform this binding, in which case the task ID becomes the only line of defense against contamination. In this scenario, it is unsafe for a server to support `tasks/list` at all. While it was possible for tasks to instead be bound to a session, [SEP-2567](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2567) removes sessions from the protocol. There is no other natural scope a server can define unilaterally — task IDs can be unguessable handles that a server can recognize one at a time, but servers cannot reliably correlate two unrelated handles to the same caller without additional state.
5353 
54Beyond implementation challenges, tasks face another structural issue: **Client-hosted tasks are no longer expressible.** [SEP-1686](./1686-tasks.md) permitted clients to host tasks for elicitation and sampling, in part to avoid coupling tasks to tool calls. [SEP-2260](./2260-Require-Server-requests-to-be-associated-with-Client-requests.md) makes any unsolicited server-to-client request invalid; every server-to-client polling request under client-hosted tasks would be unsolicited by definition.
54Beyond implementation challenges, tasks face another structural issue: **Client-hosted tasks are no longer expressible.** [SEP-1686](/seps/1686-tasks.md) permitted clients to host tasks for elicitation and sampling, in part to avoid coupling tasks to tool calls. [SEP-2260](/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md) makes any unsolicited server-to-client request invalid; every server-to-client polling request under client-hosted tasks would be unsolicited by definition.
5555 
56This proposal intends to solve the above issues by redesigning certain aspects of the feature and moving tasks out to an official extension. Redefining tasks as an official extension gives the feature more time to incubate and evolve independently of the core specification, promoting adoption. As part of the redesign, this proposal consolidates the polling lifecycle into `tasks/get` and a new `tasks/update` to remove the blocking `tasks/result` method. The redesign allows servers to return tasks unsolicited (in response to ordinary, non-`task`-flagged requests) to eliminate the per-request opt-in and the `tools/list` warmup, relying instead on the extension capability as the single handshake point. Finally, this proposal removes client-hosted elicitation and sampling tasks in compliance with [SEP-2260](./2260-Require-Server-requests-to-be-associated-with-Client-requests.md).
56This proposal intends to solve the above issues by redesigning certain aspects of the feature and moving tasks out to an official extension. Redefining tasks as an official extension gives the feature more time to incubate and evolve independently of the core specification, promoting adoption. As part of the redesign, this proposal consolidates the polling lifecycle into `tasks/get` and a new `tasks/update` to remove the blocking `tasks/result` method. The redesign allows servers to return tasks unsolicited (in response to ordinary, non-`task`-flagged requests) to eliminate the per-request opt-in and the `tools/list` warmup, relying instead on the extension capability as the single handshake point. Finally, this proposal removes client-hosted elicitation and sampling tasks in compliance with [SEP-2260](/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md).
5757 
5858## Specification
5959 
from line 137
137137 
138138### Polymorphic Results
139139 
140A request that is eligible for task-augmentation may return one of two distinct result shapes — the request's standard result, or a `CreateTaskResult`. The discriminator is the `resultType` field on the result object, introduced by [SEP-2322](./2322-MRTR.md):
140A request that is eligible for task-augmentation may return one of two distinct result shapes — the request's standard result, or a `CreateTaskResult`. The discriminator is the `resultType` field on the result object, introduced by [SEP-2322](/seps/2322-MRTR.md):
141141 
142142```typescript theme={null}
143143// "task" is introduced by this extension.
from line 347
347347Upon receiving a `tasks/get` request, the server **MUST** check the status of the task and respond accordingly:
348348 
3493491. If the status is `working`, the server **MUST** return a a `Task` object with status `working`.
3502. If the status is `input_required`, the server **MUST** return a `Task` object with status `input_required` and an `inputRequests` field defined in [Multi Round-Trip Requests](./2322-MRTR.md). The `inputRequests` field **MUST** contain all outstanding requests from the server to the client that need to be fulfilled before the task can proceed.
3502. If the status is `input_required`, the server **MUST** return a `Task` object with status `input_required` and an `inputRequests` field defined in [Multi Round-Trip Requests](/seps/2322-MRTR.md). The `inputRequests` field **MUST** contain all outstanding requests from the server to the client that need to be fulfilled before the task can proceed.
3513513. If the status is `completed`, the server **MUST** return a `Task` object with status `completed` and a `result` field containing the final result of the task.
3523524. If the status is `cancelled`, the server **MUST** return a `Task` object with status `cancelled`.
3533535. If the status is `failed`, the server **MUST** return a `Task` object with status `failed` and the error that occurred during execution.
from line 362
362362 
363363### Task Update Requests
364364 
365When a task requires input from the client (indicated by the `input_required` status), the server includes outstanding requests in the `inputRequests` field of the `tasks/get` response (see [Multi Round-Trip Requests](./2322-MRTR.md)). The client provides responses via the `inputResponses` field in one or more subsequent `tasks/update` requests.
365When a task requires input from the client (indicated by the `input_required` status), the server includes outstanding requests in the `inputRequests` field of the `tasks/get` response (see [Multi Round-Trip Requests](/seps/2322-MRTR.md)). The client provides responses via the `inputResponses` field in one or more subsequent `tasks/update` requests.
366366 
367367When a client observes a `tasks/get` response (or `notifications/tasks` notification) with `status: "input_required"`, the client **SHOULD** fulfill the outstanding requests in `inputRequests` by sending one or more `tasks/update` requests with corresponding `inputResponses`. After sending a `tasks/update`, the client **SHOULD** continue observing the task's status via polling (`tasks/get`) or notifications (`notifications/tasks`) until it reaches a terminal state.
368368 
from line 531
531531 
532532### Streamable HTTP: Routing Headers
533533 
534When `tasks/get`, `tasks/update`, or `tasks/cancel` is sent over the Streamable HTTP transport, the client **MUST** set the `Mcp-Name` header (defined by [SEP-2243](./2243-http-standardization.md)) to the value of `params.taskId`. This allows transport intermediaries and load balancers to route subsequent requests for the same task to the server instance holding its state, which is typically required for correctness. The `Mcp-Method` header is set to the JSON-RPC method name per [SEP-2243](./2243-http-standardization.md).
534When `tasks/get`, `tasks/update`, or `tasks/cancel` is sent over the Streamable HTTP transport, the client **MUST** set the `Mcp-Name` header (defined by [SEP-2243](/seps/2243-http-standardization.md)) to the value of `params.taskId`. This allows transport intermediaries and load balancers to route subsequent requests for the same task to the server instance holding its state, which is typically required for correctness. The `Mcp-Method` header is set to the JSON-RPC method name per [SEP-2243](/seps/2243-http-standardization.md).
535535 
536536### Example Message Flow
537537 
from line 608
608608}
609609```
610610 
611Eventually, the server reaches the point at which it needs to send an elicitation to the user. It sets the task status to `"input_required"` to signal this. On the next `tasks/get` request from the client, the server sends the elicitation payload via the `inputRequests` field. Note that while task `inputRequests` share structural similarities with [SEP-2322](./2322-MRTR.md) multi round-trip requests, they are a distinct mechanism: task `inputRequests` are surfaced via `tasks/get` and fulfilled via `tasks/update`, not via retries of the original method. A server that needs client input *before* returning a `CreateTaskResult` (e.g. to decide whether to proceed) uses the multi round-trip request flow on the original request; a server that needs client input *during* task execution uses the `inputRequests`/`inputResponses` mechanism described here.
611Eventually, the server reaches the point at which it needs to send an elicitation to the user. It sets the task status to `"input_required"` to signal this. On the next `tasks/get` request from the client, the server sends the elicitation payload via the `inputRequests` field. Note that while task `inputRequests` share structural similarities with [SEP-2322](/seps/2322-MRTR.md) multi round-trip requests, they are a distinct mechanism: task `inputRequests` are surfaced via `tasks/get` and fulfilled via `tasks/update`, not via retries of the original method. A server that needs client input *before* returning a `CreateTaskResult` (e.g. to decide whether to proceed) uses the multi round-trip request flow on the original request; a server that needs client input *during* task execution uses the `inputRequests`/`inputResponses` mechanism described here.
612612 
613613```json theme={null}
614614{
from line 922
922922 
923923However, as we look to [move away](https://blog.modelcontextprotocol.io/posts/2025-12-19-mcp-transport-future/) from stateful protocol interactions and given the current experimental state of tasks in general, it seems worth proposing a somewhat more radical change that reduces the complexity of the overall specification and makes tasks more "native" to MCP at this time. In particular, the choice to allow unsolicited tasks (in *addition* to immediate results) means promoting tasks to a first-class concept intended for all persistent operations, as opposed to being a parallel and somewhat specialized concept.
924924 
925This happens to align with the proposed [SEP-2322](./2322-MRTR.md), but the two are not coupled with one another.
925This happens to align with the proposed [SEP-2322](/seps/2322-MRTR.md), but the two are not coupled with one another.
926926 
927927### Splitting Reads (`tasks/get`) and Writes (`tasks/update`)
928928 
from line 954
954954 
955955> Server implementations that use multi round-trip requests in conjunction with task creation (for example, a tool that requires elicitation over `InputRequiredResult` before creating a task) **SHOULD** resolve all MRTR exchanges *synchronously* before responding with a `CreateTaskResult`.
956956 
957A `tools/call` that supports both MRTR ([SEP-2322](./2322-MRTR.md)) and this extension may use them sequentially by sending one or more `InputRequiredResult` exchanges to gather input synchronously, followed by a `CreateTaskResult` to hand off to asynchronous execution. This composition is a consequence of the `resultType` discriminator — each response is independently typed and the client switches behavior based on the value it receives, *without* maintaining any state between the two modes. Prohibiting this would require imposing an artificial constraint with no protocol-level mechanism to enforce it, since the client is unaware that the server will create a task ahead of time.
957A `tools/call` that supports both MRTR ([SEP-2322](/seps/2322-MRTR.md)) and this extension may use them sequentially by sending one or more `InputRequiredResult` exchanges to gather input synchronously, followed by a `CreateTaskResult` to hand off to asynchronous execution. This composition is a consequence of the `resultType` discriminator — each response is independently typed and the client switches behavior based on the value it receives, *without* maintaining any state between the two modes. Prohibiting this would require imposing an artificial constraint with no protocol-level mechanism to enforce it, since the client is unaware that the server will create a task ahead of time.
958958 
959959The two flows maintain separate state despite sharing field names. The MRTR phase ends when the server returns any non-`"input_required"` `resultType`, at which point its `inputRequests` keys are consumed. The task phase begins with `CreateTaskResult` and maintains *its own* `inputRequests` keys independently. Key uniqueness for task `inputRequests` is scoped to the lifetime of the task and does not extend to keys from the preceding MRTR phase. Clients do not need to deduplicate across the two flows.
960960 

seps/index Changed · +45 / -45 lines

from line 4
44 
55Specification Enhancement Proposals (SEPs) are the primary mechanism for proposing major changes to the Model Context Protocol. Each SEP provides a concise technical specification and rationale for proposed features.
66 
7Each SEP is reachable by number at `/seps/<number>` (for example, [/seps/1850](/seps/1850)).
7Each SEP is reachable by number at `/seps/<number>` (for example, [/seps/1850](/seps/1850.md)).
88 
9> **[Submit a SEP](/community/sep-guidelines)**
9> **[Submit a SEP](/community/sep-guidelines.md)**
1010>
1111> Learn how to submit your own Specification Enhancement Proposal
1212 
from line 18
1818 
1919| SEP | Title | Status | Type | Created |
2020| - | - | - | - | - |
21| [SEP-2663](/seps/2663-tasks-extension) | Tasks Extension | Final | Extensions Track | 2026-04-27 |
22| [SEP-2640](/seps/2640-skills-extension) | Skills Extension | Final | Extensions Track | 2026-04-23 |
23| [SEP-2596](/seps/2596-spec-feature-lifecycle-and-deprecation) | Specification Feature Lifecycle and Deprecation Policy | Final | Process | 2026-04-17 |
24| [SEP-2577](/seps/2577-deprecate-roots-sampling-and-logging) | Deprecate Roots, Sampling, and Logging | Final | Standards Track | 2026-04-14 |
25| [SEP-2575](/seps/2575-stateless-mcp) | Make MCP Stateless | Final | Standards Track | 2025-06-18 |
26| [SEP-2567](/seps/2567-sessionless-mcp) | Sessionless MCP via Explicit State Handles | Final | Standards Track | 2026-03-11 |
27| [SEP-2549](/seps/2549-TTL-for-list-results) | TTL for List Results | Final | Standards Track | 2026-04-09 |
28| [SEP-2484](/seps/2484-conformance-tests-required-for-final-seps) | Require Conformance Tests for Standards Track SEPs to Reach Final Status | Final | Process | 2026-03-27 |
29| [SEP-2468](/seps/2468-recommend-issuer-claim-for-auth) | Recommend Issuer (iss) Parameter in MCP Auth Responses | Final | Standards Track | 2026-03-25 |
30| [SEP-2322](/seps/2322-MRTR) | Multi Round-Trip Requests | Final | Standards Track | 2026-02-03 |
31| [SEP-2260](/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests) | Require Server requests to be associated with a Client request. | Final | Standards Track | 2026-02-16 |
32| [SEP-2243](/seps/2243-http-standardization) | HTTP Header Standardization for Streamable HTTP Transport | Final | Standards Track | 2026-02-04 |
33| [SEP-2207](/seps/2207-oidc-refresh-token-guidance) | OIDC-Flavored Refresh Token Guidance | Final | Standards Track | 2026-02-04 |
34| [SEP-2164](/seps/2164-resource-not-found-error) | Standardize Resource Not Found Error Code | Final | Standards Track | 2026-01-28 |
35| [SEP-2149](/seps/2149-working-group-charter-template) | MCP Group Governance and Charter Template | Final | Process | 2025-01-15 |
36| [SEP-2148](/seps/2148-contributor-ladder) | MCP Contributor Ladder | Final | Process | 2026-01-15 |
37| [SEP-2133](/seps/2133-extensions) | Extensions | Final | Standards Track | 2025-01-21 |
38| [SEP-2127](/seps/2127-mcp-server-cards) | MCP Server Cards - HTTP Server Discovery | Final | Extensions Track | 2026-01-21 |
39| [SEP-2106](/seps/2106-json-schema-2020-12) | Tools `inputSchema` & `outputSchema` Conform to JSON Schema 2020-12 | Final | Standards Track | 2026-01-06 |
40| [SEP-2085](/seps/2085-governance-succession-and-amendment) | Governance Succession and Amendment Procedures | Final | Process | 2025-12-05 |
41| [SEP-1865](/seps/1865-mcp-apps-interactive-user-interfaces-for-mcp) | MCP Apps - Interactive User Interfaces for MCP | Final | Extensions Track | 2025-11-21 |
42| [SEP-1850](/seps/1850-pr-based-sep-workflow) | PR-Based SEP Workflow | Final | Process | 2025-11-20 |
43| [SEP-1730](/seps/1730-sdks-tiering-system) | SDKs Tiering System | Final | Standards Track | 2025-10-29 |
44| [SEP-1699](/seps/1699-support-sse-polling-via-server-side-disconnect) | Support SSE polling via server-side disconnect | Final | Standards Track | 2025-10-22 |
45| [SEP-1686](/seps/1686-tasks) | Tasks | Final | Standards Track | 2025-10-20 |
46| [SEP-1613](/seps/1613-establish-json-schema-2020-12-as-default-dialect-f) | Establish JSON Schema 2020-12 as Default Dialect for MCP | Final | Standards Track | 2025-10-06 |
47| [SEP-1577](/seps/1577--sampling-with-tools) | Sampling With Tools | Final | Standards Track | 2025-09-30 |
48| [SEP-1330](/seps/1330-elicitation-enum-schema-improvements-and-standards) | Elicitation Enum Schema Improvements and Standards Compliance | Final | Standards Track | 2025-08-11 |
49| [SEP-1319](/seps/1319-decouple-request-payload-from-rpc-methods-definiti) | Decouple Request Payload from RPC Methods Definition | Final | Standards Track | 2025-08-08 |
50| [SEP-1303](/seps/1303-input-validation-errors-as-tool-execution-errors) | Input Validation Errors as Tool Execution Errors | Final | Standards Track | 2025-08-05 |
51| [SEP-1302](/seps/1302-formalize-working-groups-and-interest-groups-in-mc) | Formalize Working Groups and Interest Groups in MCP Governance | Final | Standards Track | 2025-08-05 |
52| [SEP-1046](/seps/1046-support-oauth-client-credentials-flow-in-authoriza) | Support OAuth client credentials flow in authorization | Final | Standards Track | 2025-07-23 |
53| [SEP-1036](/seps/1036-url-mode-elicitation-for-secure-out-of-band-intera) | URL Mode Elicitation for secure out-of-band interactions | Final | Standards Track | 2025-07-22 |
54| [SEP-1034](/seps/1034--support-default-values-for-all-primitive-types-in) | Support default values for all primitive types in elicitation schemas | Final | Standards Track | 2025-07-22 |
55| [SEP-1024](/seps/1024-mcp-client-security-requirements-for-local-server-) | MCP Client Security Requirements for Local Server Installation | Final | Standards Track | 2025-07-22 |
56| [SEP-994](/seps/994-shared-communication-practicesguidelines) | Shared Communication Practices/Guidelines | Final | Process | 2025-07-17 |
57| [SEP-991](/seps/991-enable-url-based-client-registration-using-oauth-c) | Enable URL-based Client Registration using OAuth Client ID Metadata Documents | Final | Standards Track | 2025-07-07 |
58| [SEP-990](/seps/990-enable-enterprise-idp-policy-controls-during-mcp-o) | Enable enterprise IdP policy controls during MCP OAuth flows | Final | Standards Track | 2025-06-04 |
59| [SEP-986](/seps/986-specify-format-for-tool-names) | Specify Format for Tool Names | Final | Standards Track | 2025-07-16 |
60| [SEP-985](/seps/985-align-oauth-20-protected-resource-metadata-with-rf) | Align OAuth 2.0 Protected Resource Metadata with RFC 9728 | Final | Standards Track | 2025-07-16 |
61| [SEP-973](/seps/973-expose-additional-metadata-for-implementations-res) | Expose additional metadata for Implementations, Resources, Tools and Prompts | Final | Standards Track | 2025-07-15 |
62| [SEP-932](/seps/932-model-context-protocol-governance) | Model Context Protocol Governance | Final | Process | 2025-07-08 |
63| [SEP-414](/seps/414-request-meta) | Document OpenTelemetry Trace Context Propagation Conventions | Final | Standards Track | 2025-04-25 |
21| [SEP-2663](/seps/2663-tasks-extension.md) | Tasks Extension | Final | Extensions Track | 2026-04-27 |
22| [SEP-2640](/seps/2640-skills-extension.md) | Skills Extension | Final | Extensions Track | 2026-04-23 |
23| [SEP-2596](/seps/2596-spec-feature-lifecycle-and-deprecation.md) | Specification Feature Lifecycle and Deprecation Policy | Final | Process | 2026-04-17 |
24| [SEP-2577](/seps/2577-deprecate-roots-sampling-and-logging.md) | Deprecate Roots, Sampling, and Logging | Final | Standards Track | 2026-04-14 |
25| [SEP-2575](/seps/2575-stateless-mcp.md) | Make MCP Stateless | Final | Standards Track | 2025-06-18 |
26| [SEP-2567](/seps/2567-sessionless-mcp.md) | Sessionless MCP via Explicit State Handles | Final | Standards Track | 2026-03-11 |
27| [SEP-2549](/seps/2549-TTL-for-list-results.md) | TTL for List Results | Final | Standards Track | 2026-04-09 |
28| [SEP-2484](/seps/2484-conformance-tests-required-for-final-seps.md) | Require Conformance Tests for Standards Track SEPs to Reach Final Status | Final | Process | 2026-03-27 |
29| [SEP-2468](/seps/2468-recommend-issuer-claim-for-auth.md) | Recommend Issuer (iss) Parameter in MCP Auth Responses | Final | Standards Track | 2026-03-25 |
30| [SEP-2322](/seps/2322-MRTR.md) | Multi Round-Trip Requests | Final | Standards Track | 2026-02-03 |
31| [SEP-2260](/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md) | Require Server requests to be associated with a Client request. | Final | Standards Track | 2026-02-16 |
32| [SEP-2243](/seps/2243-http-standardization.md) | HTTP Header Standardization for Streamable HTTP Transport | Final | Standards Track | 2026-02-04 |
33| [SEP-2207](/seps/2207-oidc-refresh-token-guidance.md) | OIDC-Flavored Refresh Token Guidance | Final | Standards Track | 2026-02-04 |
34| [SEP-2164](/seps/2164-resource-not-found-error.md) | Standardize Resource Not Found Error Code | Final | Standards Track | 2026-01-28 |
35| [SEP-2149](/seps/2149-working-group-charter-template.md) | MCP Group Governance and Charter Template | Final | Process | 2025-01-15 |
36| [SEP-2148](/seps/2148-contributor-ladder.md) | MCP Contributor Ladder | Final | Process | 2026-01-15 |
37| [SEP-2133](/seps/2133-extensions.md) | Extensions | Final | Standards Track | 2025-01-21 |
38| [SEP-2127](/seps/2127-mcp-server-cards.md) | MCP Server Cards - HTTP Server Discovery | Final | Extensions Track | 2026-01-21 |
39| [SEP-2106](/seps/2106-json-schema-2020-12.md) | Tools `inputSchema` & `outputSchema` Conform to JSON Schema 2020-12 | Final | Standards Track | 2026-01-06 |
40| [SEP-2085](/seps/2085-governance-succession-and-amendment.md) | Governance Succession and Amendment Procedures | Final | Process | 2025-12-05 |
41| [SEP-1865](/seps/1865-mcp-apps-interactive-user-interfaces-for-mcp.md) | MCP Apps - Interactive User Interfaces for MCP | Final | Extensions Track | 2025-11-21 |
42| [SEP-1850](/seps/1850-pr-based-sep-workflow.md) | PR-Based SEP Workflow | Final | Process | 2025-11-20 |
43| [SEP-1730](/seps/1730-sdks-tiering-system.md) | SDKs Tiering System | Final | Standards Track | 2025-10-29 |
44| [SEP-1699](/seps/1699-support-sse-polling-via-server-side-disconnect.md) | Support SSE polling via server-side disconnect | Final | Standards Track | 2025-10-22 |
45| [SEP-1686](/seps/1686-tasks.md) | Tasks | Final | Standards Track | 2025-10-20 |
46| [SEP-1613](/seps/1613-establish-json-schema-2020-12-as-default-dialect-f.md) | Establish JSON Schema 2020-12 as Default Dialect for MCP | Final | Standards Track | 2025-10-06 |
47| [SEP-1577](/seps/1577--sampling-with-tools.md) | Sampling With Tools | Final | Standards Track | 2025-09-30 |
48| [SEP-1330](/seps/1330-elicitation-enum-schema-improvements-and-standards.md) | Elicitation Enum Schema Improvements and Standards Compliance | Final | Standards Track | 2025-08-11 |
49| [SEP-1319](/seps/1319-decouple-request-payload-from-rpc-methods-definiti.md) | Decouple Request Payload from RPC Methods Definition | Final | Standards Track | 2025-08-08 |
50| [SEP-1303](/seps/1303-input-validation-errors-as-tool-execution-errors.md) | Input Validation Errors as Tool Execution Errors | Final | Standards Track | 2025-08-05 |
51| [SEP-1302](/seps/1302-formalize-working-groups-and-interest-groups-in-mc.md) | Formalize Working Groups and Interest Groups in MCP Governance | Final | Standards Track | 2025-08-05 |
52| [SEP-1046](/seps/1046-support-oauth-client-credentials-flow-in-authoriza.md) | Support OAuth client credentials flow in authorization | Final | Standards Track | 2025-07-23 |
53| [SEP-1036](/seps/1036-url-mode-elicitation-for-secure-out-of-band-intera.md) | URL Mode Elicitation for secure out-of-band interactions | Final | Standards Track | 2025-07-22 |
54| [SEP-1034](/seps/1034--support-default-values-for-all-primitive-types-in.md) | Support default values for all primitive types in elicitation schemas | Final | Standards Track | 2025-07-22 |
55| [SEP-1024](/seps/1024-mcp-client-security-requirements-for-local-server-.md) | MCP Client Security Requirements for Local Server Installation | Final | Standards Track | 2025-07-22 |
56| [SEP-994](/seps/994-shared-communication-practicesguidelines.md) | Shared Communication Practices/Guidelines | Final | Process | 2025-07-17 |
57| [SEP-991](/seps/991-enable-url-based-client-registration-using-oauth-c.md) | Enable URL-based Client Registration using OAuth Client ID Metadata Documents | Final | Standards Track | 2025-07-07 |
58| [SEP-990](/seps/990-enable-enterprise-idp-policy-controls-during-mcp-o.md) | Enable enterprise IdP policy controls during MCP OAuth flows | Final | Standards Track | 2025-06-04 |
59| [SEP-986](/seps/986-specify-format-for-tool-names.md) | Specify Format for Tool Names | Final | Standards Track | 2025-07-16 |
60| [SEP-985](/seps/985-align-oauth-20-protected-resource-metadata-with-rf.md) | Align OAuth 2.0 Protected Resource Metadata with RFC 9728 | Final | Standards Track | 2025-07-16 |
61| [SEP-973](/seps/973-expose-additional-metadata-for-implementations-res.md) | Expose additional metadata for Implementations, Resources, Tools and Prompts | Final | Standards Track | 2025-07-15 |
62| [SEP-932](/seps/932-model-context-protocol-governance.md) | Model Context Protocol Governance | Final | Process | 2025-07-08 |
63| [SEP-414](/seps/414-request-meta.md) | Document OpenTelemetry Trace Context Propagation Conventions | Final | Standards Track | 2025-04-25 |
6464 
6565## SEP Status Definitions
6666 

specification/2024-11-05/basic/index Changed · +6 / -6 lines

from line 35
3535 
3636See the following pages for more details on the different components:
3737 
38> **[Lifecycle](/specification/2024-11-05/basic/lifecycle)**
38> **[Lifecycle](/specification/2024-11-05/basic/lifecycle.md)**
3939 
40> **[Resources](/specification/2024-11-05/server/resources)**
40> **[Resources](/specification/2024-11-05/server/resources.md)**
4141 
42> **[Prompts](/specification/2024-11-05/server/prompts)**
42> **[Prompts](/specification/2024-11-05/server/prompts.md)**
4343 
44> **[Tools](/specification/2024-11-05/server/tools)**
44> **[Tools](/specification/2024-11-05/server/tools.md)**
4545 
46> **[Logging](/specification/2024-11-05/server/utilities/logging)**
46> **[Logging](/specification/2024-11-05/server/utilities/logging.md)**
4747 
48> **[Sampling](/specification/2024-11-05/client/sampling)**
48> **[Sampling](/specification/2024-11-05/client/sampling.md)**
4949 
5050## Auth
5151 

specification/2024-11-05/basic/lifecycle Changed · +11 / -11 lines

from line 107
107107```
108108 
109109* The client **SHOULD NOT** send requests other than
110 [pings](/specification/2024-11-05/basic/utilities/ping) before the server
110 [pings](/specification/2024-11-05/basic/utilities/ping.md) before the server
111111 has responded to the `initialize` request.
112112* The server **SHOULD NOT** send requests other than
113 [pings](/specification/2024-11-05/basic/utilities/ping) and
114 [logging](/specification/2024-11-05/server/utilities/logging) before
113 [pings](/specification/2024-11-05/basic/utilities/ping.md) and
114 [logging](/specification/2024-11-05/server/utilities/logging.md) before
115115 receiving the `initialized` notification.
116116 
117117#### Version Negotiation
from line 135
135135 
136136| Category | Capability | Description |
137137| - | - | - |
138| Client | `roots` | Ability to provide filesystem [roots](/specification/2024-11-05/client/roots) |
139| Client | `sampling` | Support for LLM [sampling](/specification/2024-11-05/client/sampling) requests |
138| Client | `roots` | Ability to provide filesystem [roots](/specification/2024-11-05/client/roots.md) |
139| Client | `sampling` | Support for LLM [sampling](/specification/2024-11-05/client/sampling.md) requests |
140140| Client | `experimental` | Describes support for non-standard experimental features |
141| Server | `prompts` | Offers [prompt templates](/specification/2024-11-05/server/prompts) |
142| Server | `resources` | Provides readable [resources](/specification/2024-11-05/server/resources) |
143| Server | `tools` | Exposes callable [tools](/specification/2024-11-05/server/tools) |
144| Server | `logging` | Emits structured [log messages](/specification/2024-11-05/server/utilities/logging) |
141| Server | `prompts` | Offers [prompt templates](/specification/2024-11-05/server/prompts.md) |
142| Server | `resources` | Provides readable [resources](/specification/2024-11-05/server/resources.md) |
143| Server | `tools` | Exposes callable [tools](/specification/2024-11-05/server/tools.md) |
144| Server | `logging` | Emits structured [log messages](/specification/2024-11-05/server/utilities/logging.md) |
145145| Server | `experimental` | Describes support for non-standard experimental features |
146146 
147147Capability objects can describe sub-capabilities like:
from line 168
168168 
169169#### stdio
170170 
171For the stdio [transport](/specification/2024-11-05/basic/transports), the
171For the stdio [transport](/specification/2024-11-05/basic/transports.md), the
172172client **SHOULD** initiate shutdown by:
173173 
1741741. First, closing the input stream to the child process (the server)
from line 181
181181 
182182#### HTTP
183183 
184For HTTP [transports](/specification/2024-11-05/basic/transports), shutdown
184For HTTP [transports](/specification/2024-11-05/basic/transports.md), shutdown
185185is indicated by closing the associated HTTP connection(s).
186186 
187187## Error Handling

specification/2024-11-05/index Changed · +4 / -4 lines

from line 116
116116 
117117Explore the detailed specification for each protocol component:
118118 
119> **[Architecture](/specification/2024-11-05/architecture)**
119> **[Architecture](/specification/2024-11-05/architecture.md)**
120120 
121> **[Base Protocol](/specification/2024-11-05/basic)**
121> **[Base Protocol](/specification/2024-11-05/basic.md)**
122122 
123> **[Server Features](/specification/2024-11-05/server)**
123> **[Server Features](/specification/2024-11-05/server.md)**
124124 
125125> **[Client Features](/specification/2024-11-05/client)**
126126 
127> **[Contributing](/community/contributing)**
127> **[Contributing](/community/contributing.md)**
128128 

specification/2024-11-05/server/index Changed · +3 / -3 lines

from line 20
2020 
2121Explore these key primitives in more detail below:
2222 
23> **[Prompts](/specification/2024-11-05/server/prompts)**
23> **[Prompts](/specification/2024-11-05/server/prompts.md)**
2424 
25> **[Resources](/specification/2024-11-05/server/resources)**
25> **[Resources](/specification/2024-11-05/server/resources.md)**
2626 
27> **[Tools](/specification/2024-11-05/server/tools)**
27> **[Tools](/specification/2024-11-05/server/tools.md)**
2828 

specification/2024-11-05/server/prompts Changed · +3 / -3 lines

from line 24
2424## Capabilities
2525 
2626Servers that support prompts **MUST** declare the `prompts` capability during
27[initialization](/specification/2024-11-05/basic/lifecycle#initialization):
27[initialization](/specification/2024-11-05/basic/lifecycle.md#initialization):
2828 
2929```json theme={null}
3030{
from line 45
4545 
4646To retrieve available prompts, clients send a `prompts/list` request. This operation
4747supports
48[pagination](/specification/2024-11-05/server/utilities/pagination).
48[pagination](/specification/2024-11-05/server/utilities/pagination.md).
4949 
5050**Request:**
5151 
from line 88
8888### Getting a Prompt
8989 
9090To retrieve a specific prompt, clients send a `prompts/get` request. Arguments may be
91auto-completed through [the completion API](/specification/2024-11-05/server/utilities/completion).
91auto-completed through [the completion API](/specification/2024-11-05/server/utilities/completion.md).
9292 
9393**Request:**
9494 

specification/2024-11-05/server/resources Changed · +3 / -3 lines

from line 82
8282 
8383To discover available resources, clients send a `resources/list` request. This operation
8484supports
85[pagination](/specification/2024-11-05/server/utilities/pagination).
85[pagination](/specification/2024-11-05/server/utilities/pagination.md).
8686 
8787**Request:**
8888 
from line 156
156156 
157157Resource templates allow servers to expose parameterized resources using
158158[URI templates](https://datatracker.ietf.org/doc/html/rfc6570). Arguments may be
159auto-completed through [the completion API](/specification/2024-11-05/server/utilities/completion).
159auto-completed through [the completion API](/specification/2024-11-05/server/utilities/completion.md).
160160This operation supports
161[pagination](/specification/2024-11-05/server/utilities/pagination).
161[pagination](/specification/2024-11-05/server/utilities/pagination.md).
162162 
163163**Request:**
164164 

specification/2025-03-26/basic/lifecycle Changed · +14 / -14 lines

from line 114
114114```
115115 
116116* The client **SHOULD NOT** send requests other than
117 [pings](/specification/2025-03-26/basic/utilities/ping) before the server has responded to the
117 [pings](/specification/2025-03-26/basic/utilities/ping.md) before the server has responded to the
118118 `initialize` request.
119119* The server **SHOULD NOT** send requests other than
120 [pings](/specification/2025-03-26/basic/utilities/ping) and
121 [logging](/specification/2025-03-26/server/utilities/logging) before receiving the `initialized`
120 [pings](/specification/2025-03-26/basic/utilities/ping.md) and
121 [logging](/specification/2025-03-26/server/utilities/logging.md) before receiving the `initialized`
122122 notification.
123123 
124124#### Version Negotiation
from line 142
142142 
143143| Category | Capability | Description |
144144| - | - | - |
145| Client | `roots` | Ability to provide filesystem [roots](/specification/2025-03-26/client/roots) |
146| Client | `sampling` | Support for LLM [sampling](/specification/2025-03-26/client/sampling) requests |
145| Client | `roots` | Ability to provide filesystem [roots](/specification/2025-03-26/client/roots.md) |
146| Client | `sampling` | Support for LLM [sampling](/specification/2025-03-26/client/sampling.md) requests |
147147| Client | `experimental` | Describes support for non-standard experimental features |
148| Server | `prompts` | Offers [prompt templates](/specification/2025-03-26/server/prompts) |
149| Server | `resources` | Provides readable [resources](/specification/2025-03-26/server/resources) |
150| Server | `tools` | Exposes callable [tools](/specification/2025-03-26/server/tools) |
151| Server | `logging` | Emits structured [log messages](/specification/2025-03-26/server/utilities/logging) |
152| Server | `completions` | Supports argument [autocompletion](/specification/2025-03-26/server/utilities/completion) |
148| Server | `prompts` | Offers [prompt templates](/specification/2025-03-26/server/prompts.md) |
149| Server | `resources` | Provides readable [resources](/specification/2025-03-26/server/resources.md) |
150| Server | `tools` | Exposes callable [tools](/specification/2025-03-26/server/tools.md) |
151| Server | `logging` | Emits structured [log messages](/specification/2025-03-26/server/utilities/logging.md) |
152| Server | `completions` | Supports argument [autocompletion](/specification/2025-03-26/server/utilities/completion.md) |
153153| Server | `experimental` | Describes support for non-standard experimental features |
154154 
155155Capability objects can describe sub-capabilities like:
from line 176
176176 
177177#### stdio
178178 
179For the stdio [transport](/specification/2025-03-26/basic/transports), the client **SHOULD** initiate
179For the stdio [transport](/specification/2025-03-26/basic/transports.md), the client **SHOULD** initiate
180180shutdown by:
181181 
1821821. First, closing the input stream to the child process (the server)
from line 189
189189 
190190#### HTTP
191191 
192For HTTP [transports](/specification/2025-03-26/basic/transports), shutdown is indicated by closing the
192For HTTP [transports](/specification/2025-03-26/basic/transports.md), shutdown is indicated by closing the
193193associated HTTP connection(s).
194194 
195195## Timeouts
from line 197
197197Implementations **SHOULD** establish timeouts for all sent requests, to prevent hung
198198connections and resource exhaustion. When the request has not received a success or error
199199response within the timeout period, the sender **SHOULD** issue a [cancellation
200notification](/specification/2025-03-26/basic/utilities/cancellation) for that request and stop waiting for
200notification](/specification/2025-03-26/basic/utilities/cancellation.md) for that request and stop waiting for
201201a response.
202202 
203203SDKs and other middleware **SHOULD** allow these timeouts to be configured on a
from line 204
204204per-request basis.
205205 
206206Implementations **MAY** choose to reset the timeout clock when receiving a [progress
207notification](/specification/2025-03-26/basic/utilities/progress) corresponding to the request, as this
207notification](/specification/2025-03-26/basic/utilities/progress.md) corresponding to the request, as this
208208implies that work is actually happening. However, implementations **SHOULD** always
209209enforce a maximum timeout, regardless of progress notifications, to limit the impact of a
210210misbehaving client or server.

specification/2025-03-26/basic/transports Changed · +3 / -3 lines

from line 50
5050> [!NOTE]
5151>
5252> This replaces the [HTTP+SSE
53> transport](/specification/2024-11-05/basic/transports#http-with-sse) from
53> transport](/specification/2024-11-05/basic/transports.md#http-with-sse) from
5454> protocol version 2024-11-05. See the [backwards compatibility](#backwards-compatibility)
5555> guide below.
5656 
from line 176
176176### Session Management
177177 
178178An MCP "session" consists of logically related interactions between a client and a
179server, beginning with the [initialization phase](/specification/2025-03-26/basic/lifecycle). To support
179server, beginning with the [initialization phase](/specification/2025-03-26/basic/lifecycle.md). To support
180180servers which want to establish stateful sessions:
181181 
1821821. A server using the Streamable HTTP transport **MAY** assign a session ID at
from line 246
246246### Backwards Compatibility
247247 
248248Clients and servers can maintain backwards compatibility with the deprecated [HTTP+SSE
249transport](/specification/2024-11-05/basic/transports#http-with-sse) (from
249transport](/specification/2024-11-05/basic/transports.md#http-with-sse) (from
250250protocol version 2024-11-05) as follows:
251251 
252252**Servers** wanting to support older clients should:

specification/2025-03-26/changelog Changed · +3 / -3 lines

from line 1
11# Key Changes
22 
33This document lists changes made to the Model Context Protocol (MCP) specification since
4the previous revision, [2024-11-05](/specification/2024-11-05).
4the previous revision, [2024-11-05](/specification/2024-11-05.md).
55 
66## Major changes
77 
81. Added a comprehensive **[authorization framework](/specification/2025-03-26/basic/authorization)**
81. Added a comprehensive **[authorization framework](/specification/2025-03-26/basic/authorization.md)**
99 based on OAuth 2.1 (PR
1010 [#133](https://github.com/modelcontextprotocol/specification/pull/133))
11112. Replaced the previous HTTP+SSE transport with a more flexible **[Streamable HTTP
12 transport](/specification/2025-03-26/basic/transports#streamable-http)** (PR
12 transport](/specification/2025-03-26/basic/transports.md#streamable-http)** (PR
1313 [#206](https://github.com/modelcontextprotocol/specification/pull/206))
14143. Added support for JSON-RPC **[batching](https://www.jsonrpc.org/specification#batch)**
1515 (PR [#228](https://github.com/modelcontextprotocol/specification/pull/228))

specification/2025-03-26/index Changed · +4 / -4 lines

from line 118
118118 
119119Explore the detailed specification for each protocol component:
120120 
121> **[Architecture](/specification/2025-03-26/architecture)**
121> **[Architecture](/specification/2025-03-26/architecture.md)**
122122 
123> **[Base Protocol](/specification/2025-03-26/basic)**
123> **[Base Protocol](/specification/2025-03-26/basic.md)**
124124 
125> **[Server Features](/specification/2025-03-26/server)**
125> **[Server Features](/specification/2025-03-26/server.md)**
126126 
127127> **[Client Features](/specification/2025-03-26/client)**
128128 
129> **[Contributing](/community/contributing)**
129> **[Contributing](/community/contributing.md)**
130130 

specification/2025-03-26/server/index Changed · +3 / -3 lines

from line 20
2020 
2121Explore these key primitives in more detail below:
2222 
23> **[Prompts](/specification/2025-03-26/server/prompts)**
23> **[Prompts](/specification/2025-03-26/server/prompts.md)**
2424 
25> **[Resources](/specification/2025-03-26/server/resources)**
25> **[Resources](/specification/2025-03-26/server/resources.md)**
2626 
27> **[Tools](/specification/2025-03-26/server/tools)**
27> **[Tools](/specification/2025-03-26/server/tools.md)**
2828 
Feedback