Support MCP 2026-07-28 Multi Round-Trip Requests (input_required)
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
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-28on 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
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách lần theo các entry point MCP initialize và tools/call được mô tả trong issue, bao gồm thương lượng phiên bản giao thức và elicitation ở chế độ URL. Xác minh cách input_required và requestState được biểu diễn, sau đó xác nhận rằng tools/call ban đầu được thử lại dưới dạng một yêu cầu JSON-RPC mới sau khi thu thập kết quả elicitation.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Lĩnh vực
- api
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100