Skip to content

Releases: modelcontextprotocol/ruby-sdk

v0.10.0

30 Mar 02:29
03a78f9

Choose a tag to compare

Added

  • Session expiry controls for StreamableHTTPTransport via session_idle_timeout: option (#268)

Changed

  • ServerSession for per-connection state (#275)

Removed

  • Remove Server#notify_progress broadcast API (#276)
  • Remove undocumented handler override methods (#270)

Fixed

  • Reject POST requests without session ID in stateful mode (#274)

v0.9.2

27 Mar 03:30
3fc7bcd

Choose a tag to compare

Fixed

  • Use accessor method in server_context_with_meta instead of ivar (#273)
  • Reject duplicate SSE connections with 409 to prevent stream hijacking

v0.9.1

23 Mar 13:26
3b1fc72

Choose a tag to compare

Added

  • Allow Client#call_tool to accept a tool name (#266)

Fixed

  • Return 404 for invalid session ID in handle_delete (#261)

v0.9.0

20 Mar 09:33
910d3ca

Choose a tag to compare

Added

  • MCP::Client::Stdio transport (#262)
  • Progress notifications per MCP specification (#254)
  • Automatic _meta parameter extraction support (#172)
  • CORS and Accept wildcard support for browser-based MCP clients (#253)

Changed

  • Use autoload to defer loading of unused subsystems (#255)
  • Reduce release package size (#239)

Fixed

  • Return 404 for invalid session ID in handle_regular_request (#257)
  • Use mutex-protected session_exists? in handle_regular_request (#258)

v0.8.0

03 Mar 00:13
7cede9c

Choose a tag to compare

Added

  • Content::EmbeddedResource class for embedded resource content type (#244)
  • Content::Audio class for audio content type (#243)
  • $ref support in Tool::Schema for protocol version 2025-11-25 (#242)
  • MCP conformance test suite (#248)

Fixed

  • Handle Errno::ECONNRESET in SSE stream operations (#249)
  • Fix default handler return values to comply with MCP spec (#247)
  • Fix Prompt#validate_arguments! crash when arguments are nil (#246)
  • Return 202 Accepted for SSE responses per MCP spec (#245)
  • Fix Content::Image#to_h to return mimeType (camelCase) per MCP spec (#241)

v0.7.1

21 Feb 02:16
5b04089

Choose a tag to compare

Fixed

  • Fix Resource::Contents#to_h to use correct property names per MCP spec (#235)
  • Return JSON-RPC protocol errors for unknown tool calls (#231)
  • Fix logging/setLevel to return empty hash per MCP specification (#230)

v0.7.0

14 Feb 07:53
2b790d6

Choose a tag to compare

Added

  • logging support (#103)
  • Protocol version negotiation to server initialization (#223)
  • Tool arguments to instrumentation data (#218)
  • Client info to instrumentation callback (#221)
  • resource_templates to MCP::Client (#225)

Changed

  • Extract MCP::Annotations into a dedicated file (#224)

Fixed

  • Resource::Embedded not setting @resource in initialize (#220)

v0.6.0

16 Jan 06:35
ade3d1f

Choose a tag to compare

Changed

  • Update licensing to Apache 2.0 for new contributions (#213)

Fixed

  • Omit icons from responses when empty or nil to reduce context window usage (#212)

v0.5.0

11 Jan 03:30
fd1d7a6

Choose a tag to compare

Added

  • Protocol specification version "2025-11-25" support (#184)
  • icons parameter support (#205)
  • websiteUrl parameter in serverInfo (#188)
  • description parameter in serverInfo (#201)
  • additionalProperties support for schema validation (#198)
  • "Draft" protocol version to supported versions (#179)
  • stateless mode for high availability (#101)
  • Exception messages for tool call errors (#194)
  • Elicitation skeleton (#178)
  • prompts/list and prompts/get support to client (#163)
  • Accept header validation for HTTP client transport (#207)
  • Ruby 2.7 - Ruby 3.1 support (#206)

Changed

  • Make tool names stricter (#204)

Fixed

  • Symlink path comparison in schema validation (#193)
  • Duplicate tool names across namespaces now raise an error (#199)
  • Tool error handling to follow MCP spec (#165)
  • XSS vulnerability in json_rpc_handler (#175)

v0.4.0

16 Oct 02:46
944660a

Choose a tag to compare

Added

  • Client resources support with resources/list and resources/read methods (#160)
  • _meta field support for Tool schema (#124)
  • _meta field support for Prompt
  • title field support for prompt arguments
  • call_tool_raw method to client for accessing full tool responses (#149)
  • Structured content support in tool responses (#147)
  • AGENTS.md development guidance documentation (#134)
  • Dependabot configuration for automated dependency updates (#138)

Changed

  • Set default content to empty array instead of nil (#150)
  • Improved prompt spec compliance (#153)
  • Allow output schema to be array of objects (#144)
  • Return 202 response code for accepted JSON-RPC notifications (#114)
  • Added validation to MCP::Configuration setters (#145)
  • Updated metaschema URI format for cross-OS compatibility

Fixed

  • Client tools functionality and test coverage (#166)
  • Client resources test for empty responses (#162)
  • Documentation typos and incorrect examples (#157, #146)
  • Removed redundant transport requires (#154)
  • Cleaned up unused block parameters and magic comments