microsoft / microsoft/vscode

Support MCP protocol revision 2026-07-28 negotiation

Open
#329,848 0 comments 5 reactions 1 assignee Assigned to @connor4312 View on GitHub
agent-host-mitigated mcp
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

## Feature request

VS Code GitHub Copilot currently opens MCP connections with the initialization-based protocol. Please add dual-era client negotiation for MCP revision 2026-07-28.

## Environment

- VS Code: 1.132.0
- Commit: df53daabb18cd157bdb08c7f01c34df936cf12f4
- Transport: Streamable HTTP
- Server protocol revision: 2026-07-28

## Reproduction

Configure a modern-only HTTP server at a local Streamable HTTP endpoint and start it from MCP: List Servers.

## Actual behavior

The server returns HTTP 400 with JSON-RPC -32602 Missing required _meta because VS Code sends an initialization-era request. VS Code then falls back to legacy GET-based SSE, and the modern server correctly returns 405 because that transport was removed.

Log:

```text
400 status sending message to http://127.0.0.1:3000/mcp, will attempt to fall back to legacy SSE
Connection state: Error 405 status connecting to http://127.0.0.1:3000/mcp as SSE
```

## Expected behavior

Probe new connections with `server/discover` and the required per-request `_meta` and Streamable HTTP metadata headers. A modern response or recognized modern error should select modern mode; other failures may fall back to legacy `initialize`. Modern mode should use POST response streams and not GET SSE.

Specification: https://modelcontextprotocol.io/specification/2026-07-28/

Related: #308766 confirms VS Code currently implements 2025-11-25.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.