SEP-2243: ServerRejectsMissingMethodHeader contradicts TypeScript SDK behavior

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

Nobody has claimed this yet.

Assessment

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

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.

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

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

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.

More from modelcontextprotocol/conformance

All issues in modelcontextprotocol/conformance

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.