Skip to content

Releases: modelcontextprotocol/ruby-sdk

v1.2.0

Choose a tag to compare

@koic koic released this 15 Aug 02:55
8cac727

This release completes the SEP-2575 stateless lifecycle of the 2026-07-28 specification, together with the SEP-2322, SEP-2549, and SEP-2243 features that revision builds on. Several entries under "Changed" are incompatible with 1.1.0 and ship in a minor release under the spec-conformance and security exceptions described in VERSIONING.md.

Added

  • Handle the SEP-2575 modern request envelope in the server core (#475)
  • Serve both lifecycle eras over stdio with an era lock per SEP-2575 (#478)
  • Serve the sessionless modern path over Streamable HTTP per SEP-2575 (#479)
  • Finalize server/discover and add client modern lifecycle support per SEP-2575 (#480)
  • Let handlers return multi round-trip input_required results per SEP-2322 (#481)
  • Add MCP::Elicitation::EnumSchema builders per SEP-1330 (#482)
  • Stamp the required resultType on modern results per SEP-2322 (#487)
  • Enforce the modern lifecycle admission rules per SEP-2575 (#489)
  • Stream modern request notifications and honor the envelope logLevel per SEP-2575 (#490)
  • Expose the user-defined server_context in instrumentation data (#493)
  • Serve the subscriptions/listen notification stream per SEP-2575 (#495)
  • Add opt-in requestState sealing via MCP::Server::RequestStateSecurity (#496)
  • Mirror x-mcp-header tool parameters into Mcp-Param-* headers per SEP-2243 (#498)
  • Stamp the required cache hints on modern cacheable results per SEP-2549 (#499)
  • Drive multi round-trip input_required results on the client per SEP-2322 (#500)
  • Fulfill input_required results on the legacy wire per SEP-2322 (#501)

Changed

  • Align modern envelope validation with the finalized specification (#491)
  • Require the Mcp-Method header on the modern path (#492)
  • Bound server-to-client requests with a timeout (#502)
  • Refuse server-to-client requests in the modern lifecycle per SEP-2575 (#503)
  • Bound the total wait across SSE reconnection attempts (#504)
  • Bound automatic pagination in the MCP client (#505)
  • Reject modern-removed methods before the connection era locks (#511)
  • Stop negotiating modern protocol versions through the initialize handshake (#516)

Deprecated

  • Warn on modern client connects that declare the Roots or Sampling capabilities deprecated per SEP-2577 (#406, #516)

Fixed

  • Stop leaking exception messages to clients via JSON-RPC error data (#486)
  • Return Invalid Params for unknown prompts and missing prompt arguments (#517)
  • Restrict OAuth discovery to same-origin metadata URLs and refuse private-network destinations

v1.1.0

Choose a tag to compare

@koic koic released this 01 Aug 15:37
72a929b

Added

  • Support 2026-07-28 as the Latest Protocol Version (#476)
  • Expose server tool annotations on MCP::Client::Tool (#445)

Fixed

  • Preserve explicit tool response content (#469)

v1.0.0

Choose a tag to compare

@koic koic released this 24 Jul 08:42
fa05845

First stable release. The public API is now stable: breaking changes ship only in major releases,
apart from the narrow exceptions documented in VERSIONING.md.

Added

  • Add ROADMAP.md outlining the path toward SEP-1730 (#465)
  • Add VERSIONING.md documenting the versioning and breaking-change policy (#466)

v0.25.0

Choose a tag to compare

@koic koic released this 18 Jul 05:15
f9fd78e

Added

  • Support SEP-990 Cross-App Access via ID-JAG and the jwt-bearer grant (#454)
  • Support client-side sampling via MCP::Client#on_sampling (#458)

Fixed

  • Reject notifications carrying an unknown or expired session (#455)
  • Handle an initialize request sent without an ID (#456)
  • Bound client-side message buffering in the HTTP transport (#459)
  • Lowercase response header names in StreamableHTTPTransport (#460)

v0.24.0

Choose a tag to compare

@koic koic released this 12 Jul 04:28
e85f6d0

Added

  • Support SSE reconnection per SEP-1699 in the HTTP client transport (#426)
  • Validate the RFC 9207 iss authorization response parameter per SEP-2468 (#431)
  • Support private_key_jwt client authentication for the client_credentials grant (#432)
  • Recognize multi round-trip input_required results per SEP-2322 (#433)
  • Add opt-in ttlMs / cacheScope cache hints to List and Read results per SEP-2549 (#436)
  • Add server/discover and stateless lifecycle error codes per SEP-2575 (#438)
  • Associate server-to-client requests with the originating client request per SEP-2260 (#440)
  • Add server-side MCP Apps helpers per SEP-1865 (#441)
  • Support client-side elicitation with SEP-1034 schema defaults (#443)
  • Support class-based Resource and ResourceTemplate definitions (#447)

Changed

  • Bind stored client credentials to the authorization server issuer per SEP-2352 (#439)

Fixed

  • Handle non-object JSON-RPC messages without raising (#448)
  • Perform SSE stream writes outside the session mutex (#449)
  • Validate required params for initialize and resources/subscribe (#451)

v0.23.0

Choose a tag to compare

@koic koic released this 07 Jul 13:50
95feef2

Added

  • Add a session-ownership hook to StreamableHTTPTransport

Changed

  • Require calling MCP::Client#connect before sending requests on stdio transport (#427)

Deprecated

  • Annotate Roots, Sampling, and Logging APIs as deprecated per SEP-2577 (#429)

Fixed

  • Fix an incorrect result: null response to an id-bearing notification message (#435)
  • Validate Host and Origin headers to prevent DNS rebinding per MCP 2025-11-25
  • Bound stateful session retention to prevent an initialize-flood DoS
  • Bound stdio frame reads with max_line_bytes
  • Bound request body and frame reads to prevent memory-exhaustion DoS

v0.22.0

Choose a tag to compare

@koic koic released this 26 Jun 23:26
58d5175

Added

  • Add audience role validation for MCP::Annotations per MCP specification (#422)
  • Send SEP-2243 Mcp-Method and Mcp-Name headers per MCP specification (#423)
  • Support client-side notifications/cancelled per MCP specification (#425)

Changed

  • Conform Tool Schemas to JSON Schema 2020-12 per SEP-2106 (#417)

Fixed

  • Fix a SyntaxError on Ruby 2.7.0 caused by arguments forwarding syntax (#419)

v0.21.0

Choose a tag to compare

@koic koic released this 20 Jun 13:42
db460e5

Added

  • Support capability extensions per SEP-2133 (#405)
  • Add range validation for MCP::Annotations#priority per MCP specification (#410)
  • Isolate stateless requests in ephemeral sessions per SEP-2567 (#415)

Changed

  • Set OIDC application_type on Dynamic Client Registration per SEP-837 (#408)
  • Fall back to legacy 2025-03-26 OAuth discovery for servers without PRM (#414)

v0.20.0

Choose a tag to compare

@koic koic released this 14 Jun 08:39
23af995

Added

  • Support W3C Trace Context Propagation via _meta per SEP-414 (#397)
  • Support OAuth client_credentials grant in OAuth client (#399)
  • Add annotations field to MCP::Resource and MCP::ResourceTemplate per MCP specification (#403)

Changed

  • Re-run OAuth flow on 403 insufficient_scope (step-up) (#368)
  • Speed up Tool::Schema validation by 5x to 100x (#369)
  • Use JSON-RPC error envelope for StreamableHTTPTransport errors (#371)
  • Pin RFC 8414 default well-known suffix per SEP-2351 (#395)
  • Default missing MCP-Protocol-Version to 2025-03-26 in StreamableHTTPTransport (#392)

Fixed

  • Preserve the request ID in invalid request error responses (#400)
  • Standardize Resource Not Found errors on -32602 with URI data per SEP-2164 (#402)

v0.19.0

Choose a tag to compare

@koic koic released this 13 Jun 10:58
b6372d8

Added

  • Support Client ID Metadata Documents in OAuth client (#361)
  • Request offline_access scope when supported (#365)
  • Add size field to MCP::Resource per MCP specification (#393)