Skip to content

Latest commit

 

History

History
251 lines (162 loc) · 7.13 KB

File metadata and controls

251 lines (162 loc) · 7.13 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.12.0] - 2026-04-11

Added

  • Support customizing the Faraday client in MCP::Client::HTTP (#306)

Changed

  • Auto-set server.transport in Transport#initialize (#305)

Fixed

  • Validate Content-Type on POST requests (#304)

[0.11.0] - 2026-04-06

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)

[0.10.0] - 2026-03-30

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)

[0.9.2] - 2026-03-27

Fixed

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

[0.9.1] - 2026-03-23

Added

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

Fixed

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

[0.9.0] - 2026-03-20

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)

[0.8.0] - 2026-03-03

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)

[0.7.1] - 2026-02-21

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)

[0.7.0] - 2026-02-14

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)

[0.6.0] - 2026-01-16

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)

[0.5.0] - 2026-01-11

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)

[0.4.0] - 2025-10-15

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

[0.3.0] - 2025-09-14

Added

  • Tool output schema support with comprehensive validation (#122)
  • HTTP client transport layer for MCP clients (#28)
  • Tool annotations validation for protocol compatibility (#122)
  • Server instructions support (#87)
  • Title support in server info (#119)
  • Default values for tool annotation hints (#118)
  • Notifications/initialized method implementation (#84)

Changed

  • Make default protocol version the latest specification version (#83)
  • Protocol version validation to ensure valid values (#80)
  • Improved tool handling for tools with no arguments (#85, #86)
  • Better error handling and response API (#109)

Fixed

  • JSON-RPC notification format in Streamable HTTP transport (#91)
  • Errors when title is not specified (#126)
  • Tools with missing arguments handling (#86)
  • Namespacing issues in README examples (#89)

[0.2.0] - 2025-07-15

Added

  • Custom methods support via define_custom_method (#75)
  • Streamable HTTP transport implementation (#33)
  • Tool argument validation against schemas (#43)

Changed

  • Server context is now optional for Tools and Prompts (#54)
  • Improved capability handling and removed automatic capability determination (#61, #63)
  • Refactored architecture in preparation for client support (#27)

Fixed

  • Input schema validation for schemas without required fields (#73)
  • Error handling when sending notifications (#70)

[0.1.0] - 2025-05-30

Initial release in collaboration with Shopify