Skip to content

Releases: modelcontextprotocol/ruby-sdk

v0.11.0

07 Apr 08:21
f23d1b5

Choose a tag to compare

Added

  • Support sampling/createMessage per MCP specification (#282)
  • Support completion/complete per MCP specification (#289)

Fixed

  • Support POST response SSE streams for server-to-client messages (#294)
  • Return protocol errors for invalid arguments and server errors (#285)
  • Fix client methods silently swallowing JSON-RPC error responses (#281)
  • Close streams outside mutex in session cleanup (#291)

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)