modelcontextprotocol / modelcontextprotocol/conformance

SEP-2243: ServerRejectsMissingMethodHeader contradicts TypeScript SDK behavior

Open
#323 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
127
Forks
101
Avg merge
6d 1h
Merged PRs (30d)
7

Description

Description

The http-header-validation scenario's ServerRejectsMissingMethodHeader test sends a POST request without Mcp-Method header and expects the server to reject it with HTTP 400 + JSON-RPC error code -32001.

However, all other conformance scenarios (tools-list, tools-call-*, resources-*, prompts-*, etc.) use connectToServer() which creates a TypeScript SDK StreamableHTTPClientTransport — and this client does not send Mcp-Method headers.

This means:

  • If a server implements SEP-2243 correctly (rejects missing Mcp-Method), all SDK-backed scenarios fail (32+ failures)
  • If a server makes Mcp-Method optional (to be compatible with the TypeScript SDK), the ServerRejectsMissingMethodHeader test fails

The conformance suite is self-contradictory: it tests a MUST requirement that the reference client implementation doesn't satisfy.

Expected behavior

Either:

  1. The TypeScript SDK should send Mcp-Method (and Mcp-Name) headers per SEP-2243, OR
  2. The ServerRejectsMissingMethodHeader test should be downgraded from FAILURE to WARNING, since the reference client itself doesn't comply

Current C++ SDK result

With Mcp-Method optional (matching TypeScript SDK behavior): 108 passed, 1 failed
With Mcp-Method required (matching SEP-2243 spec): 64 passed, 32 failed

Related

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the http-header-validation scenario, especially ServerRejectsMissingMethodHeader, and trace connectToServer() through the TypeScript SDK's StreamableHTTPClientTransport. Compare the expected headers and results with the reported 108/1 and 64/32 outcomes; done means the conformance test and SDK behavior have a consistent, agreed expectation.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.