Releases: dickdavis/model-context-protocol-rb
Release list
v0.7.0
What's Changed
- Update redis configuration to allow SSL params by @dickdavis in #82
- Implement scaffolding for RSpec matchers to test MCP handlers by @dickdavis in #83
- Implement comprehensive RSpec matchers by @dickdavis in #84
- Simplify README by @dickdavis in #85
- Implement support for list changed notifications by @dickdavis in #86
- Refactor to improve thread-safety and performance by @dickdavis in #87
- Create a puma plugin to simplify setup by @dickdavis in #88
- Refactor to move handler mapping and protocol responses into the router by @dickdavis in #89
- Refactor to simplify public interface by @dickdavis in #90
- Simplify Redis configuration by @dickdavis in #91
- Simplify registry configuration by @dickdavis in #92
- Fix puma plugin hooks by @dickdavis in #93
- Improve spec helpers by @dickdavis in #94
- Fix logdev references in server logger by @dickdavis in #95
- Remove shared context in favor of wiki documentation by @dickdavis in #96
- Ensure context hash keys are symbolized when retrieved from session by @dickdavis in #97
- Implement fully spec-compliant session management by @dickdavis in #98
- Enable sessions by default by @dickdavis in #99
- Update README by @dickdavis in #100
- Comprehensively remove dead code by @dickdavis in #101
- feat: add tool annotations by @eelkevdbos in #102
- feat: add tool security-schemes by @eelkevdbos in #103
- Register new test tools by @dickdavis in #104
- Update CHANGELOG by @dickdavis in #105
- Refactor tool annotations to use DSL similar to resource annotations by @dickdavis in #106
- Update test executable templates by @dickdavis in #107
- Fix resource link content helper by @dickdavis in #108
- Update README to mention mcp-rb plugin by @dickdavis in #109
- Prepare for v0.7.0 release by @dickdavis in #110
New Contributors
- @eelkevdbos made their first contribution in #102
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Breaking Changes
Connection pool dependency updated - This release updates the connection_pool gem dependency. If you have other gems that depend on connection_pool, you may need to update them to versions compatible with the latest connection_pool release.
New Features
- Server logging capability for internal server diagnostics (separate from client logging which sends messages via MCP protocol)
- Informational and debug logging in streamable HTTP transport
Bug Fixes
- Ensure stream monitor thread shuts down quickly
- Ensure streams are closed when the server shuts down
- Fix stream handling in streamable HTTP transport
- Ensure empty options don't break the registry
- Ensure progressable timer tasks do not run indefinitely
v0.5.1
v0.5.0
We're excited to announce version 0.5.0 of the model-context-protocol-rb! This release focuses on production readiness and advanced operational capabilities, particularly around thread safety, state management, and real-time communication.
New Features
Thread-Safe Operations
- Enhanced streamable HTTP transport with full thread safety through Redis-based state management
- Implemented Redis connection pooling with robust configuration and management
- Automatic SSE (Server-Sent Events) upgrade for real-time notification delivery
Advanced Operational Support
- Added cancellation support via cancellable blocks in prompts, resources, and tools
- Implemented progress notification capabilities through progressable blocks
- Enhanced real-time communication patterns for long-running operations
Production Infrastructure
- Redis integration for scalable state management in multi-threaded environments
- Improved connection management and resource pooling
- Enhanced notification delivery mechanisms
Key Improvements
This release represents a significant step toward production readiness, with particular emphasis on:
- Scalability: Redis-backed state management enables horizontal scaling
- Reliability: Thread-safe operations and robust connection pooling
- User Experience: Real-time progress updates and cancellation support
Migration Notes
If you're using the streamable HTTP transport, this version no longer requires you to pass in a Redis client. Instead, configure redis using the ModelContextProtocol::Server.configure_redis block in an initializer.
v0.4.0
We're excited to announce version 0.4.0 of the Model Context Protocol Ruby implementation! This release brings significant new features, improved ergonomics, and several breaking changes that enhance the overall developer experience.
New Features
Enhanced Content Support
- Content Responses: Added helper methods for easily serializing text, image, audio, embedded resource, and resource link content blocks
- Structured Content: Tools now support output_schema declaration and validation for structured responses
- Resource Annotations: Implement comprehensive resource annotation support
Protocol Improvements
- Pagination Support: Added full pagination capabilities for handling large datasets
- Server Metadata: Added support for server title and instructions
- Protocol Negotiation: Implemented support for protocol negotiation
- Default Completion: Added default completion functionality
Developer Experience
- Prompt Builder DSL: New domain-specific language for easily building message history for prompts, with support for new content block helpers
- Title Support: Prompts, resources, and tools can now declare the title field
- Streamable HTTP Transport: Finalized the initial working version of streamable HTTP transport
Breaking Changes
- respond_with Simplification: Streamlined the ergonomics of respond_with for better usability
- Method Rename: with_metadata has been renamed to define to avoid confusion with MCP's distinct metadata concept
- Argument Structure: Argument declarations are now nested within define (formerly with_metadata)
Migration Guide
If you're upgrading from a previous version:
- Replace with_metadata calls with define
- Update argument declarations to use the new nested structure within define
- Review your respond_with usage for the simplified API
- Consider leveraging the new content block helpers for improved serialization
v0.3.4
This release introduces logging support, an experimental Streamable HTTP transport, improved ergonomics for completions and resource templates, and the ability to provide context to prompts, resources, and tools. It also introduces two breaking changes:
- Prompts and tools should now reference
arguments(with symbolized keys) instead ofparamswhen accessing data passed in by MCP clients. - Logging should now be configured by setting
logging_enabledto true or false instead ofenable_log.
v0.3.2
v0.3.1
This release introduces the respond_with helper that makes it simple to ensure resource, prompts, and tools return properly formatted data responses. It also introduces configuration options for setting environment variables within the MCP server (thanks @hmk). Lastly, it improves the developer tooling with a rake task for generating an executable to use for testing as well as improved test classes for manual testing with the MCP inspector.
v0.3.0
This release greatly improves the developer experience of building custom handlers for tools, prompts, and resources.
Breaking Changes
-
Router Initialization Replaced: Now using registry initialization during server configuration. The server relies on the registry for auto-discovery of prompts, resources, and tools.
- Required Action: Use SDK-provided builders to facilitate this change.
-
Data Objects Implementation: Standardized the use of Data objects throughout the codebase.
- Required Action: Custom handlers must now respond with objects that implement the
serializedmethod.
- Required Action: Custom handlers must now respond with objects that implement the
Improvements
- Refactored implementation to maintain separation of concerns
- Enhanced test coverage
- Upgraded development tooling