ruby-sdk/test/mcp
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Koichi ITO 88d9bed69d Reject POST requests without session ID in stateful mode
Per the MCP specification (Streamable HTTP > Session Management):

> Servers that require a session ID SHOULD respond to requests without an `Mcp-Session-Id` header
> (other than initialization) with HTTP 400 Bad Request.

https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#session-management

Previously, non-initialize POST requests without `Mcp-Session-Id` in stateful mode were processed
with HTTP 200 (for regular requests) or HTTP 202 (for notifications/responses).

This change adds an explicit check in `handle_post` to return HTTP 400 Bad Request when the session
ID is missing in stateful mode for all non-initialize requests, aligning with the specification.
2026-03-28 03:07:42 +09:00
..
client Add MCP::Client::Stdio transport 2026-03-19 12:41:27 +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/transports Reject POST requests without session ID in stateful mode 2026-03-28 03:07:42 +09:00
tool Merge pull request #237 from koic/replace_assert_empty_with_assert_equal_using_explicit_literals 2026-03-03 01:05:16 +09:00
annotations_test.rb Replace assert_empty with assert_equal using explicit literals 2026-02-24 16:09:34 +09:00
client_test.rb Allow Client#call_tool to accept a tool name 2026-03-23 00:43:59 +09:00
configuration_test.rb Merge pull request #192 from koic/add_missing_assertion 2025-12-25 00:33:12 +09:00
content_test.rb Add Content::EmbeddedResource class for embedded resource content type 2026-03-02 01:33:05 +09:00
icon_test.rb Replace assert_empty with assert_equal using explicit literals 2026-02-24 16:09:34 +09:00
instrumentation_test.rb Use autoload to defer loading of unused subsystems 2026-03-12 14:08:27 +09:00
logging_message_notification_test.rb Add logging support 2026-01-26 22:23:46 +09:00
methods_test.rb Use autoload to defer loading of unused subsystems 2026-03-12 14:08:27 +09:00
progress_test.rb Support progress notifications per MCP specification 2026-03-10 01:49:09 +09:00
prompt_test.rb Fix Prompt#validate_arguments! crash when arguments are nil 2026-03-01 17:21:41 +09:00
resource_template_test.rb Omit icons from responses when empty or nil 2026-01-12 09:46:45 +09:00
resource_test.rb Omit icons from responses when empty or nil 2026-01-12 09:46:45 +09:00
server_context_test.rb Support progress notifications per MCP specification 2026-03-10 01:49:09 +09:00
server_notification_test.rb Add logging support 2026-01-26 22:23:46 +09:00
server_progress_test.rb Support progress notifications per MCP specification 2026-03-10 01:49:09 +09:00
server_test.rb Merge pull request #270 from koic/remove_undocumented_handler_override_methods 2026-03-28 00:24:04 +09:00
string_utils_test.rb Fix ReDoS vulnerability in StringUtils#underscore 2026-01-09 01:14:52 +09:00
tool_test.rb Allow $ref in Tool::Schema for protocol version 2025-11-25 2026-02-27 14:33:36 +09:00
transport_test.rb Remove redundant require statements 2025-08-02 00:57:31 +09:00