mcp 07-2026 conformance harness tracker#2425
Open
filintod wants to merge 1 commit into
Open
Conversation
a48d9e5 to
9dc2706
Compare
309dc44 to
3a24315
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds MCP conformance-oriented behavior and tests to better track (and close) modern protocol gaps, including updated modern request validation and a new subscriptions/listen filtering/assembly path suitable for multiplexed upstreams.
Changes:
- Implement gateway-owned
subscriptions/listenstream assembly with per-target filtering, subscriptionId tagging, and FailOpen/FailClosed behaviors (plus targeted tests). - Tighten modern (2026-07-28+) request validation: required
_metafields, consistent method-not-found handling, and clearer “backend unavailable” vs “invalid request” signaling. - Reduce backend-specific response shaping (e.g., OpenAPI upstream no longer stamps cache hints; the gateway normalizes outbound cache policy).
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| crates/agentgateway/src/proxy/mod.rs | Maps new MCP error variants to appropriate HTTP status codes (404/400/503). |
| crates/agentgateway/src/mcp/upstream/openapi/mod.rs | Removes cache hint stamping and treats subscriptions/listen as a long-lived/pending stream. |
| crates/agentgateway/src/mcp/upstream/mod.rs | Adds an explicit Unavailable upstream error and rejects unsupported listen for stdio/SSE upstreams. |
| crates/agentgateway/src/mcp/subscriptions.rs | New listen filtering/tagging + stream assembly implementation for multiplexing. |
| crates/agentgateway/src/mcp/subscriptions_tests.rs | Adds focused tests for listen filtering, tagging, error handling, and failure modes. |
| crates/agentgateway/src/mcp/streamablehttp.rs | Refactors modern protocol detection/validation and adds fallback classification for parse failures. |
| crates/agentgateway/src/mcp/session.rs | Makes stateless upstream initialization conditional and routes listen through new subscriptions pipeline with RBAC shaping. |
| crates/agentgateway/src/mcp/README.md | Documents listen transport limitations and failure-mode implications. |
| crates/agentgateway/src/mcp/mod.rs | Adds method/version helpers and new MCP error variants for modern validation. |
| crates/agentgateway/src/mcp/mergestream.rs | Adds a filter-map helper used by the listen pipeline (plus test-only helpers). |
| crates/agentgateway/src/mcp/mcp_tests.rs | Expands/updates tests for modern method-not-found, modern _meta requirements, and version error data. |
| crates/agentgateway/src/mcp/handler.rs | Extracts shared fanout stream-opening logic and adds a dedicated listen sender with guardrails integration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Filinto Duran <1373693+filintod@users.noreply.github.com>
3a24315 to
40f4406
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
adding conformance tests to track gaps for modern mcp implementation. It includes a v2 version of everything server from typescript repo as currently everything server from conformance repo is still on previous/current version
pdf print of status.html:
NOTE: this is using typescript conformance test (https://github.com/modelcontextprotocol/typescript-sdk/tree/main/test/conformance) for draft (modern) as the conformance test file in the conformance repo is not currently testing all modern features
Last execution shown on top of PR #2465
Current gaps are related to MRTR. Pending safely removing unstrip in our code:strip_unsupported_client_capabilitiesto handle capabilities. from the codeThe current stateless error requires a more thorough implementation if we ever do it for compatibility between versions