Support MCP 2026-07-28 Multi Round-Trip Requests (input_required)

Aperta
#4,834 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Ambito
api

Direzione di ricerca

Inizia tracciando i punti di ingresso MCP initialize e tools/call descritti nella issue, inclusa la negoziazione della versione del protocollo e l’elicitation in modalità URL. Verifica come sono rappresentati input_required e requestState, quindi conferma che il tools/call originale venga ritentato come una nuova richiesta JSON-RPC dopo la raccolta del risultato dell’elicitation.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

triage
Describe the feature or problem you'd like to solve

Copilot does not support the protocol version 2026-07-28 and thus MRTR for URL elicitation fail for server not supporting legacy (2025-era) fallback

Proposed solution

Copilot CLI should support the MCP 2026-07-28 Multi Round-Trip Request (MRTR) mechanism, including input_required, requestState, and URL-mode elicitation.

Problem

I am running Copilot CLI 1.0.83 against an MCP server that implements only MCP 2026-07-28 (1.0.83 is the latest version of Copilot at the time of writing). The server has legacy MCP compatibility disabled and therefore does not support the 2025-era server --> client elicitation mechanism.

Expected behavior

For a 2026-07-28 MCP connection, Copilot CLI should:

  • send protocol version 2026-07-28 on initialize
  • Receive resultType: "input_required" from tools/call.
  • Handle the embedded URL elicitation and present/launch the URL for the user.
  • Collect the result of the elicitation.
  • Retry the original tools/call as a new JSON-RPC request.

Actual behavior

With Copilot CLI 1.0.83, the client sends protocol version 2025-11-25 on initialize.

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
        "protocolVersion": "2025-11-25",
        "capabilities": {
            "sampling": {},
            "elicitation": {
                "form": {},
                "url": {}
            }
        },
        "clientInfo": {
            "name": "copilot-cli",
            "version": "0.0.0"
        }
    }
}

(interesting: clientInfo states 0.0.0 instead of 1.0.83)

Subsequently, Copilot sends notifications/initialized and tools/list:

{
    "jsonrpc": "2.0",
    "method": "notifications/initialized"
}
{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {
        "_meta": {
            "progressToken": 0
        }
    }
}

Then, I ask for a tool called url_elicitation. Copilot sends the payload:

{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
        "_meta": {
            "progressToken": 0
        },
        "arguments": {},
        "name": "url_elicitation"
    }
}

MCP server responds with the error as the tool handler returns input-required result which is not supported by protocol 2025-11-25:

{
    "jsonrpc": "2.0",
    "id": 4,
    "error": {
        "code": -32603,
        "message": "Handler for tools/call returned an input-required result, but this request is served on protocol revision 2025-11-25, which has no input_required vocabulary"
    }
}

Note that the request headers set by Copilot include:
"mcp-protocol-version": "2025-11-25".

Note that the MCP server intentionally has the legacy compatibility/shim disabled.

Requested support

Please add native Copilot CLI support for:

  • MCP protocol 2026-07-28
  • Multi Round-Trip Requests (MRTR)
  • requestState round-tripping
  • URL-mode elicitation
  • Retrying tools/call after elicitation

Please provide info about the roadmap.

Example prompts or workflows

No response

Additional context

No response

Lingua principale
Shell
Stelle
11.2k
Fork
1.9k
Merge medio
14h 16m
PR unite (30g)
6

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/copilot-cli

Tutte le issue di github/copilot-cli

Issue simili

Altre issue su Shell/Bash

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.