github / github/app

Local MCP client sends server/discover but then initializes with an incompatible legacy protocol version

Open
#3,582 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

triage
Dominant language
No language data
Stars
2.1k
Forks
157
PR merge metrics
No merged PRs in 30d

Description

Short summary

No response

Affected version or release

1.1.15

Installation context

No response

What happened?

Summary

Copilot App cannot connect to a local MCP server that supports only the current MCP protocol (2026-07-28).

The client successfully sends server/discover, but then sends a legacy initialize request using protocol version 2025-11-25. A server correctly implementing the stateless 2026-07-28 protocol rejects that request because initialize is not part of that lifecycle.

Reproduction

  1. Configure a local MCP server built with a current MCP SDK and supporting only 2026-07-28.
  2. Add it in Copilot App as a Local/stdio MCP server.
  3. Observe that Copilot sends server/discover.
  4. Copilot then sends initialize with protocolVersion: "2025-11-25".

Actual result

Connection fails with:

JSON-RPC error: -32022: connection is serving the 2026-07-28 protocol; the initialize handshake is not accepted
({"supported":["2026-07-28"],"requested":"2025-11-25"})

### Steps to reproduce

_No response_

### Expected behavior

_No response_

### Additional context

_No response_

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 by tracing the local/stdio MCP connection after the server/discover request and inspect how the client selects the protocol version and lifecycle. Reproduce with a server supporting only 2026-07-28; done means the client connects without sending the incompatible legacy initialize request while preserving supported older-protocol behavior.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.