For the complete documentation index, see llms.txt.
Skip to main content

MCP Support Matrix

This reference records the MCP server behavior implemented by the reShapr 0.2.3 Gateway. It distinguishes protocol vocabulary declared in code from methods that the server dispatcher actually handles.

For the reasoning behind the two modes, see MCP Compatibility: Session and Stateless Modes. For executable requests, see Test an MCP Endpoint.

Protocol versions and modes​

Protocol versionModeFirst requestState on later requestsResult dialectBackend credential elicitationClient cache hints
2024-11-05Session-basedinitializeMCP-Session-IdLegacyURL_ELICITATION_REQUIRED, bound to the sessionNo
2025-03-26Session-basedinitializeMCP-Session-IdLegacyURL_ELICITATION_REQUIRED, bound to the sessionNo
2025-06-18Session-basedinitializeMCP-Session-IdLegacyURL_ELICITATION_REQUIRED, bound to the sessionNo
2025-11-25Session-basedinitializeMCP-Session-IdLegacyURL_ELICITATION_REQUIRED, bound to the sessionNo
2026-07-28Statelessserver/discoverProtocol header and request metadata; no session IDModerninput_required with elicitation/create, bound to authenticated iss and subttlMs and cacheScope

2026-07-28 is a public protocol version supported by reShapr. Versions not listed here are not accepted merely because they sort after a supported date.

Implemented server methods​

AreaMethodSession-based versionsStateless 2026-07-28Notes
LifecycleinitializeYesRemovedNegotiates a historical version and creates a session. Modern requests receive HTTP 404 and JSON-RPC -32601.
Discoveryserver/discoverNot the session entry pointYesReturns server information, capabilities, and supported versions for stateless clients.
Toolstools/listYesYesLists operations selected by the Configuration Plan.
Toolstools/callYesYesDispatches REST, GraphQL, gRPC, or Custom Tool execution.
Promptsprompts/listYesYesLists selected Prompt Artifacts.
Promptsprompts/getYesYesResolves a Prompt and its declared arguments.
Resourcesresources/listYesYesLists selected static and templated Resources.
Resourcesresources/templates/listYesYesLists Resource templates.
Resourcesresources/readYesYesReads a static Resource or resolves a Resource template.

These nine methods are the cases handled by the McpController dispatcher. Notifications sent by a client and requests sent by the server are not additional server endpoints in this table.

Declared but unavailable server methods​

Method or areaSession-based versionsStateless 2026-07-28Classification
pingNot dispatchedRemovedDeclared lifecycle method, not an implemented reShapr server method.
logging/setLevelNot dispatchedRemovedRemoved from the modern revision and not dispatched for historical sessions.
resources/subscribeNot dispatchedRemovedResource subscriptions are not implemented.
resources/unsubscribeNot dispatchedRemovedResource subscriptions are not implemented.
roots/listNot dispatchedNot dispatchedA schema constant does not establish server support.
sampling/createMessageNot dispatchedNot dispatchedSampling is not exposed as a reShapr server capability.
CompletionNot dispatchedNot dispatchedAn unimplemented surviving modern method returns in-band JSON-RPC -32601.

For a method removed by the 2026-07-28 revision, the Gateway returns HTTP 404 with JSON-RPC -32601. For another method that remains valid protocol vocabulary but is not implemented, it returns the ordinary JSON-RPC -32601 response in HTTP 200.

Modern request contract​

ElementSource of truthValidation in 0.2.3
Protocol versionparams._meta["io.modelcontextprotocol/protocolVersion"]Must name one of the five supported versions when the modern envelope is present.
MCP-Protocol-VersionMirrors the protocol metadataIf present, it must equal the version in the request body. Non-handshake stateless calls require it to select stateless mode.
Mcp-MethodMirrors JSON-RPC methodIf present, it must equal the body method.
Mcp-NameMirrors params.name or params.uriIf present, it must equal the Tool, Prompt, or Resource target in the body.
MCP-Session-IdHistorical session identifierDo not send it with a stateless request.

A mirror mismatch returns HTTP 400 with JSON-RPC -32020. An unsupported version in a modern envelope returns HTTP 400 with JSON-RPC -32022 and the supported version list in error.data.

Result dialects​

Result featureLegacy dialectModern 2026-07-28 dialect
Existing payload fields such as tools, prompts, resources, contents, or contentYesYes
resultType discriminatorNoYes, complete for completed results
ttlMs cache hintNoYes, when configured for the result
cacheScope hintNoYes, when configured for the result

Cache hints apply to compatible list and Resource-read results. They communicate client caching policy; they do not enable response caching in the Gateway.

Elicitation roles​

elicitation/create in the stateless row is a request produced by the reShapr server for a capable client. It is not a method that an MCP client calls on the reShapr server.

Historical clients receive the implementation-specific URL_ELICITATION_REQUIRED error and keep the resulting backend credential associated with their MCP session. Stateless clients receive an input_required result and must support the returned URL-mode elicitation request. reShapr binds the completed value to the authenticated issuer and subject, so stateless elicitation requires an OAuth-protected Exposition.

Transport and endpoint scope​

The matrix applies to MCP over Streamable HTTP on all three reShapr endpoint forms:

  • the deterministic Exposition identifier endpoint;
  • the organization and Exposition-name endpoint;
  • the historical organization, Service, and version endpoint.

The historical Service endpoint can advertise the deterministic Exposition endpoint through X-Reshapr-Preferred-Endpoint. reShapr 0.2.3 does not expose an MCP WebSocket transport.

Verification sources​

This matrix was last verified with reShapr 0.2.3 on 2026-09-07. Recheck the owner code and tests before changing a version, mode, or method classification.

Agent View