Skip to main content
GetMCP targets the Model Context Protocol specification revision 2025-11-25 with negotiation back to 2025-06-18. This page is the authoritative answer to “does GetMCP support X?” — broken down by spec section. The transport is Streamable HTTP (with an outbound message queue for server-initiated traffic). The legacy plain-SSE transport has been deprecated by the MCP spec and is intentionally not implemented — Streamable HTTP supersedes it. stdio isn’t supported as of now (it’s mostly relevant for locally-spawned subprocesses, which doesn’t fit the WordPress hosting model).

Legend


Lifecycle


Tools


Resources


Prompts


Sampling


Logging


Completion


Progress & Cancellation


Roots


Elicitation


Outbound Message Queue

The Streamable HTTP transport doesn’t yet open a long-poll SSE channel for server-initiated traffic. Instead, GetMCP buffers server-initiated messages (roots/list requests, progress notifications, log messages, elicitation requests) in a per-session transient queue and piggy-backs them onto the next HTTP response as a JSON-RPC batch. So if you issue a tools/call, the response body may contain:
Clients that already handle JSON-RPC batches (the official SDKs do) will see no change. A future SSE GET handler can drain the same queue without changing the emitter API.

Not Implemented

The following spec methods have no handler today:
  • notifications/tools/list_changed
  • notifications/resources/list_changed
  • notifications/resources/updated
  • notifications/prompts/list_changed
These are all “the server changed; come refresh” notifications. Clients re-list on their own cadence in practice, so this hasn’t been a blocker. Open a discussion at github.com/InfiWebs/getmcp if you need them prioritised.
The MCP specification is evolving rapidly. GetMCP’s protocol version is set in includes/transport/class-streamable-http.php and pinned to the spec revision it was tested against — initialize will negotiate down for older clients.