Skip to content

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

Description

@kgolbang

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions