Empty members in the Accept header cause a 500
Maintainer thường phản hồi trong vòng 1 ngày
@koic đang làm issue này rồi.
Từ ngày 15/10/2026.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 82/100
Hướng nghiên cứu
Lỗi nằm ở parse_accept_header trong transport Streamable HTTP, hàm này gọi split(";").first.strip và nhận được nil với một phần tử rỗng trong danh sách. Hãy chạy lại bước tái hiện từ issue để thấy lỗi 500. Công việc hoàn thành khi các phần tử rỗng như application/json,,text/event-stream được bỏ qua và yêu cầu thành công, kèm theo một test bao phủ trường hợp này.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
An Accept header with an empty list member makes the Streamable HTTP transport answer 500, even though both required media types are there:
server = MCP::Server.new(name: "repro", version: "1.0.0", tools: [], capabilities: { tools: {} })
transport = MCP::Server::Transports::StreamableHTTPTransport.new(server, stateless: true, enable_json_response: true)
env = Rack::MockRequest.env_for(
"/mcp",
method: "POST",
input: '{"jsonrpc":"2.0","id":1,"method":"tools/list"}',
"CONTENT_TYPE" => "application/json",
"HTTP_ACCEPT" => "application/json,,text/event-stream",
)
transport.handle_request(Rack::Request.new(env))
# => [500, ..., ['{"jsonrpc":"2.0","id":null,"error":{"code":-32603,"message":"Internal server error"}}']]
The same happens with ", application/json, text/event-stream". parse_accept_header calls part.split(";").first.strip, and for an empty member split returns [], so first is nil.
HTTP allows these: "a recipient MUST parse and ignore a reasonable number of empty list elements" (RFC 9110, section 5.6.1.2). Skipping empty members in parse_accept_header would fix it; I'll send a PR.
Seen with 1.7.0; main at 9d12f51 has the same code.
- Ngôn ngữ chính
- Ruby
- Star
- 924
- Fork
- 136
- Merge trung bình
- 1 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 39
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc 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.
Issue khác của modelcontextprotocol/ruby-sdk
-
Default capabilities advertise listChanged, prompts, resources and logging on a tools-only stateless serverCó thể đã có người làm @koic đã nhận 1 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 56/100
modelcontextprotocol/ruby-sdk#619 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Error responses carry "id": null, which the MCP schema does not allowCó thể đã có người làm @koic đã nhận 2 ngày trước. Đang mởbug
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 45/100
modelcontextprotocol/ruby-sdk#606 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
String request ids are limited to letters, digits, "_" and "-"Có thể đã có người làm @koic đã nhận 3 ngày trước. Đang mởbug
modelcontextprotocol/ruby-sdk#603 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Methods of undeclared capabilities return -32603 instead of -32601Có thể đã có người làm @koic đã nhận 3 ngày trước. Đang mởbug
modelcontextprotocol/ruby-sdk#602 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Requests with "id": null are run like notificationsCó thể đã có người làm @koic đã nhận 3 ngày trước. Đang mởbug
modelcontextprotocol/ruby-sdk#601 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của modelcontextprotocol/ruby-sdk
Issue tương tự
-
Feature Feature Parity
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
valkey-io/valkey-glide-ruby#369 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
thewca/worldcubeassociation.org#16088 ·
Maintainer thường phản hồi trong vòng 1 ngày