MCP Specification Compatibility
contextweaver's gateway and proxy speak MCP through the official
mcp Python SDK
(core dependency, floor mcp>=1.19.0). Protocol-version negotiation is
therefore delegated to the SDK: contextweaver adds no wire-format code of its
own, and inherits new spec revisions by raising the SDK floor. (Issue #548.)
Version matrix
| MCP spec revision | SDK support (at floor 1.19) |
contextweaver status |
|---|---|---|
2024-11-05 |
Negotiated | Supported via SDK negotiation |
2025-03-26 |
Negotiated (SDK default fallback) | Supported; default negotiated version for clients that do not send one |
2025-06-18 |
Negotiated | Supported; structured tool output and elicitation are SDK-side — the gateway's meta-tools return plain text content and are unaffected |
2025-11-25 (latest at time of writing) |
LATEST_PROTOCOL_VERSION |
Supported via SDK negotiation |
The authoritative list is mcp.shared.version.SUPPORTED_PROTOCOL_VERSIONS in
the installed SDK — check it with:
python -c "from mcp.shared.version import SUPPORTED_PROTOCOL_VERSIONS as v; print(v)"
Transports
| Transport | Gateway/proxy support | Notes |
|---|---|---|
| stdio | Yes (default) | contextweaver mcp serve |
| SSE | Yes | --transport sse; DNS-rebinding protection on by default (issue #694) |
| Streamable HTTP | Yes | --transport streamable-http; session-id + protocol-version header handling via the SDK (issues #422/#665) |
MCP surface coverage
| MCP feature | Coverage |
|---|---|
Tools (tools/list, tools/call) |
Full — the gateway's core surface |
| Resources / prompts | Static-catalog gateway meta-tools (resource_browse / resource_read / prompt_browse / prompt_get, issues #669/#670); not yet bridged over live upstreams |
notifications/tools/list_changed |
Consumed from live upstreams for incremental catalog refresh (issue #424, opt-in) |
| Sampling | Opt-in call_fn bridge for firewall summaries (issue #623); the gateway never initiates sampling on its own |
| Elicitation | Not used |
2026 stateless-core / Tasks readiness
The draft 2026 revision direction (stateless core, long-running Tasks) is tracked upstream. contextweaver's exposure assessment:
- Stateless core — low risk. The gateway already treats each meta-tool
call independently; per-session state (artifact store, event log) is keyed
by session id and survives via
--state-dir. If session establishment becomes optional, the gateway can key state by a client-supplied correlation id instead. No wire code changes on our side; wait for the SDK. - Tasks (long-running operations) — moderate opportunity.
tool_executeis currently synchronous; a Tasks-shaped SDK API would map naturally onto the artifact store (result lands as an artifact;tool_viewpolls/slices). Design work tracked separately once the revision and SDK support are final.
Policy: contextweaver raises the SDK floor deliberately (each raise is
verified by the gating floor-deps CI job — see the dependency-constraint
policy in AGENTS.md) and does not pre-implement draft revisions.