Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Empty members in the Accept header cause a 500

Đang mở Phù hợp với người mới
#609 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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.

  • #610 của @dominikklein — đã đóng, không merge
  • #616 của @koic — đang mở

Đá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
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
ruby
Lĩnh vực
api

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ả

bug

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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của modelcontextprotocol/ruby-sdk

Tất cả issue của modelcontextprotocol/ruby-sdk

Issue tương tự

Thêm issue về Ruby

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.