Skip to content

mcp 07-2026 conformance harness tracker#2425

Open
filintod wants to merge 1 commit into
agentgateway:mainfrom
filintod:filintod/mcp-2026-sep2575-conformance-harness
Open

mcp 07-2026 conformance harness tracker#2425
filintod wants to merge 1 commit into
agentgateway:mainfrom
filintod:filintod/mcp-2026-sep2575-conformance-harness

Conversation

@filintod

@filintod filintod commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

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_capabilities to handle capabilities. from the code:

// Until server-to-client request routing is implemented, do not advertise
// capabilities that require the proxy to route upstream requests back to
// the downstream client and route the client's JSON-RPC response upstream.

The current stateless error requires a more thorough implementation if we ever do it for compatibility between versions

@filintod filintod force-pushed the filintod/mcp-2026-sep2575-conformance-harness branch from a48d9e5 to 9dc2706 Compare July 3, 2026 16:03
@filintod filintod changed the title mcp 2026 conformance harness tracker mcp 07-2026 conformance harness tracker Jul 3, 2026
@filintod filintod force-pushed the filintod/mcp-2026-sep2575-conformance-harness branch 3 times, most recently from 309dc44 to 3a24315 Compare July 8, 2026 03:35
@filintod filintod marked this pull request as ready for review July 8, 2026 03:39
@filintod filintod requested a review from a team as a code owner July 8, 2026 03:39
Copilot AI review requested due to automatic review settings July 8, 2026 03:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/listen stream assembly with per-target filtering, subscriptionId tagging, and FailOpen/FailClosed behaviors (plus targeted tests).
  • Tighten modern (2026-07-28+) request validation: required _meta fields, 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.

Comment thread crates/agentgateway/src/mcp/streamablehttp.rs Outdated
@filintod filintod marked this pull request as draft July 8, 2026 11:58
Signed-off-by: Filinto Duran <1373693+filintod@users.noreply.github.com>
@filintod filintod force-pushed the filintod/mcp-2026-sep2575-conformance-harness branch from 3a24315 to 40f4406 Compare July 8, 2026 13:28
@filintod filintod marked this pull request as ready for review July 8, 2026 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants