Experimental extensions
Evaluate pinned MCP experiments without silently changing production behavior.
Every experiment is disabled by default. Enable one explicitly and pin the exported revision constant. Selectors identify reviewed upstream commits and never accept semver ranges.
| Experiment | Protocol surface | Adapter opt-in |
|---|---|---|
| Interceptors | interceptors/list, interceptor/invoke, local chain | extensions.interceptors and .mcpInterceptor() |
| Server variants | Legacy initialize, session requests, GET SSE | extensions.variants with legacy-only transport |
| Action metadata | Tool annotations | Add io.modelcontextprotocol/action-metadata |
| Trust annotations | Tool result _meta | Add io.modelcontextprotocol/trust-annotations |
| Events | Discovery, polling, POST SSE, durable webhooks | extensions.events and .mcpEvent() with legacy-only transport |
Server Cards are finalized and documented in the Server Cards guide.
The experimental Bun workspace exercises the remaining surfaces through real adapter requests. The separate Events workspace covers replay, event-only SSE, durable Bun SQLite subscriptions, and an isolated TLS receiver. Neither workspace contacts external services.
Draft support does not imply client support. Minimal protocol clients in the workspace cover methods which common hosts do not expose yet. Hosts retain approval, consent, sandbox, evidence, and display responsibilities. An annotation never authorizes an operation.