Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Empty members in the Accept header cause a 500

オープン 初心者向け
#609 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@koic がすでに取り組んでいます。

2026年10月15日 から。

  • #610 @dominikklein による — マージされずにクローズ
  • #616 @koic による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
82/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
ruby
領域
api

調査の方向性

バグは Streamable HTTP トランスポートの parse_accept_header にあり、そこで split(";").first.strip を呼び出すと、空のリスト要素に対して nil が返ります。issue の再現手順を実行して 500 エラーを確認してください。空の要素(例: application/json,,text/event-stream)がスキップされてリクエストが成功し、そのケースをカバーするテストが追加されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Ruby
スター
924
フォーク
136
平均マージ
1日 5時間
マージ済み PR(30日)
37

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

modelcontextprotocol/ruby-sdk のほかの issue

modelcontextprotocol/ruby-sdk の issue をすべて見る

似ている issue

Ruby の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。