Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Empty members in the Accept header cause a 500

Aberta Para iniciantes
#609 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@koic já está trabalhando nisso.

Desde 15/10/2026.

  • #610 de @dominikklein — fechado sem integrar
  • #616 de @koic — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
82/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
ruby
Domínio
api

Direção de pesquisa

O bug está em parse_accept_header no transporte Streamable HTTP, que chama split(";").first.strip e recebe nil para um membro vazio da lista. Execute a reprodução da issue para ver o 500. Está pronto quando membros vazios como application/json,,text/event-stream são ignorados e a requisição tem sucesso, com um teste cobrindo esse caso.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Ruby
Estrelas
924
Forks
136
Merge médio
1d 5h
PRs com merge (30d)
37

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de modelcontextprotocol/ruby-sdk

Todas as issues de modelcontextprotocol/ruby-sdk

Issues semelhantes

Mais issues de Ruby

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.