Koichi ITO
81e81c359e
Validate Content-Type on POST requests
...
## Motivation and Context
The MCP Streamable HTTP specification requires POST request bodies to
be JSON-RPC messages with `Content-Type: application/json`. The Ruby
SDK did not validate Content-Type, accepting requests with any or no
Content-Type. The Python SDK validates this and returns 415
Unsupported Media Type for non-JSON Content-Types.
## How Has This Been Tested?
Added tests for Content-Type validation:
- POST without Content-Type returns 415
- POST with `Content-Type: text/plain` returns 415
- POST with `Content-Type: application/json; charset=utf-8` succeeds
## Breaking Changes
POST requests without `Content-Type: application/json` now return
415 Unsupported Media Type. This is a spec compliance fix.
2026-04-08 19:40:55 +09:00
..
client
Add MCP::Client::Stdio transport
2026-03-19 12:41:27 +09:00
prompt
Support Ruby 2.7 - Ruby 3.1
2026-01-06 10:38:56 +09:00
resource
Fix Resource::Contents#to_h to use correct property names per MCP spec
2026-02-19 13:50:10 +09:00
server
Validate Content-Type on POST requests
2026-04-08 19:40:55 +09:00
tool
Use symbolize_names: true in JSON.parse calls
2026-03-31 04:15:42 +09:00
transports
Add a migration path for Server::Transports::StdioTransport
2025-06-10 16:27:22 +09:00
annotations.rb
Extract MCP::Annotations into a dedicated file
2026-02-03 15:38:04 +09:00
client.rb
Support completion/complete per MCP specification
2026-04-03 01:35:07 +09:00
configuration.rb
Support Ruby 2.7 - Ruby 3.1
2026-01-06 10:38:56 +09:00
content.rb
Add Content::EmbeddedResource class for embedded resource content type
2026-03-02 01:33:05 +09:00
icon.rb
Support icons parameter
2025-12-30 05:35:22 +09:00
instrumentation.rb
Support Ruby 2.7 - Ruby 3.1
2026-01-06 10:38:56 +09:00
logging_message_notification.rb
logging_message_notification: Remove unused require
2026-02-05 16:05:08 -05:00
methods.rb
Add Elicitation skeleton
2025-11-21 02:42:20 +09:00
progress.rb
Support POST response SSE streams for server-to-client messages
2026-04-04 19:20:31 +09:00
prompt.rb
Use autoload to defer loading of unused subsystems
2026-03-12 14:08:27 +09:00
resource.rb
Use autoload to defer loading of unused subsystems
2026-03-12 14:08:27 +09:00
resource_template.rb
Omit icons from responses when empty or nil
2026-01-12 09:46:45 +09:00
server.rb
Support POST response SSE streams for server-to-client messages
2026-04-04 19:20:31 +09:00
server_context.rb
Support POST response SSE streams for server-to-client messages
2026-04-04 19:20:31 +09:00
server_session.rb
Support POST response SSE streams for server-to-client messages
2026-04-04 19:20:31 +09:00
string_utils.rb
Fix ReDoS vulnerability in StringUtils#underscore
2026-01-09 01:14:52 +09:00
tool.rb
Use autoload to defer loading of unused subsystems
2026-03-12 14:08:27 +09:00
transport.rb
Support sampling/createMessage per MCP specification
2026-04-04 05:55:27 +09:00
version.rb
Release 0.11.0
2026-04-06 02:35:49 +09:00