Releases: spring-ai-community/mcp-annotations
Releases · spring-ai-community/mcp-annotations
v0.5.0
What's Changed
- feat: enhance McpResource annotation with title and annotations support by @tzolov in #58
- refactor: enhance MCP method callbacks with improved type safety and … by @tzolov in #59
- Update MCP Java SDK to 0.13.1 by @tzolov in #60
- feat: add support for MCP resource templates by @tzolov in #62
- refactor: fix typo in SyncMcpLoggingProvider class name by @tzolov in #64
Full Changelog: v0.4.1...v0.5.0
v0.4.1
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- feat: Add title attribute to @mcptool annotation with clear precedence by @tzolov in #45
- Upgreade MCP Java SDK to 0.12.1 by @tzolov in #46
- feat: add deterministic method sorting to all MCP providers by @tzolov in #48
- feat(mcp-annotations): Add configurable exception handling for MCP to… by @tzolov in #49
- Add support for MCP Prompt Title by @ls-rein-martha in #50
- feat: upgrade to MCP Java SDK 0.13.0-SNAPSHOT and adapt to McpJsonMapper API by @tzolov in #55
- feat: support list return types in structured MCP tool content by @tzolov in #56
- refactor: consolidate MCP tool callback hierarchy and improve error handling by @tzolov in #57
New Contributors
- @ls-rein-martha made their first contribution in #50
Full Changelog: v0.3.1...v0.4.0
v0.3.1
v0.3.0
Release Notes
🔄 Breaking Changes & Refactoring
MCP SDK Upgrade (v0.12.0)
- Updated MCP Java SDK from version 0.11.3 to 0.12.0
- Migrated
McpTransportContext
fromio.modelcontextprotocol.server
toio.modelcontextprotocol.common
package - Updated import statements across all callback, provider, and test classes for Complete, Prompt, Resource, and Tool implementations
Package Restructuring
- Moved adapter classes to dedicated package structure:
CompleteAdapter
,PromptAdapter
, andResourceAdapter
moved fromorg.springaicommunity.mcp.annotation
toorg.springaicommunity.mcp.adapter
- Fixed naming typos in adapter classes:
PromptAdaptor
→PromptAdapter
ResourceAdaptor
→ResourceAdapter
- Reorganized imports throughout codebase for better consistency and organization
📦 What's Changed
- Enhanced package organization by separating adapter utilities from annotation classes
- Improved code consistency with proper class naming conventions
- Aligned with MCP SDK 0.12.0 API restructuring for better maintainability
⚠️ Migration Notes
If you're upgrading from a previous version:
- Update any direct imports of
McpTransportContext
to use the newio.modelcontextprotocol.common
package - Update imports for adapter classes that have moved to the
org.springaicommunity.mcp.adapter
package - Check for any references to the old misspelled adapter class names
🙏 Contributors
- @tzolov (Christian Tzolov)
v0.2.0
Release Notes
🚀 Major Features
Complete MCP Tool Support (#9)
- New Annotations: Added
@McpTool
and@McpToolParam
annotations for defining MCP tools - Provider Classes: Implemented
AsyncMcpToolProvider
andSyncMcpToolProvider
for tool management - JSON Schema Generation: Integrated automatic schema generation using victools jsonschema library
- Comprehensive Support: Added tool method callbacks for both synchronous and asynchronous operations
- Spring Integration: Updated Spring integration classes to support tool specifications
Async Provider Architecture (#30, #28)
- New Async Providers: Added complete async provider support with
AsyncMcpCompleteProvider
,AsyncMcpPromptProvider
, andAsyncMcpResourceProvider
- API Improvements: Simplified API method names by removing create prefix and Specifications suffix
- Consistency: Renamed
SyncMcpCompletionProvider
toSyncMcpCompleteProvider
for naming consistency - Spring Integration: Updated Spring integration with comprehensive async/sync provider utilities
Stateless Operation Support (#16)
- Stateless Callbacks: Introduced stateless method callback and provider classes for Complete, Prompt, Resource, and Tool operations
- Flexible Architecture: Added support for both stateful and stateless MCP operations
- Spring Integration: Enhanced Spring integration to support stateless MCP operations
- SDK Update: Updated to MCP Java SDK 0.11.2
List Change Notifications (#24, #25, #26)
- Tool List Changes: Added
@McpToolListChanged
annotation for handling tool list change notifications - Resource List Changes: Added
@McpResourceListChanged
annotation for resource list change notifications - Prompt List Changes: Added
@McpPromptListChanged
annotation for prompt list change notifications - Client-Specific Support: Support for both client-specific and global change handling
- Async/Sync Support: Complete support for both synchronous and asynchronous notification handling
Progress & Logging Support (#19, #21, #20)
- Progress Notifications: Added
@McpProgress
annotation for handling progress notifications in long-running operations - Progress Tokens: Added
@McpProgressToken
annotation support for progress tracking across all callback types - Logging Support: Renamed and improved logging annotations from
@McpLoggingConsumer
to@McpLogging
- Provider Reorganization: Reorganized provider classes into dedicated domain packages
Elicitation Support (#15)
- Elicitation Annotations: Added comprehensive
@McpElicitation
annotation support - Spring Integration: Added elicitation support to Spring annotation providers with both sync and async implementations
- Documentation: Complete documentation and usage examples for elicitation functionality
🔧 Enhanced Parameter & Context Support
Metadata Access (#23)
- McpMeta Class: Added
McpMeta
class to wrap metadata from MCP requests, notifications, and results - Context-Aware Operations: Enable context-aware MCP operations with client-provided metadata (user identity, preferences, session info)
- Universal Support: McpMeta parameter injection supported in all method callback types
- Schema Exclusion: McpMeta parameters properly excluded from JSON schema generation
Dynamic Schema Handling (#18)
- Runtime Schema Support: Enabled tools to accept
CallToolRequest
parameters for dynamic schema handling - Backward Compatibility: Maintains compatibility with existing tool implementations
- Enhanced Generation: Improved JsonSchemaGenerator for minimal/partial schema generation
Client-Specific Architecture (#17)
- Client-Specific Annotations: Added clientId parameter to
@McpElicitation
,@McpLogging
, and@McpSampling
annotations - Specification-Based Architecture: Refactored providers to return specification lists instead of single handlers
- Breaking Change: Provider APIs now return specification lists for better flexibility
🐛 Bug Fixes & Improvements
Parameter Mounting Fix (#5)
- Prompt Parameters: Fixed parameter mounting issue in
AbstractMcpPromptMethodcallbacks
class - @McpArg Support: Changed parameter mounting to use
@McpArg
values instead of method parameter names - Test Updates: Updated corresponding unit tests
Method Ordering Fix (#7)
- Stable Method Lists: Fixed issue with
getDeclaredMethods()
returning unstable method order - Provider Reliability: Improved reliability of provider method discovery
📦 Infrastructure & Dependencies
Package Restructuring (#8)
- Package Rename: Changed root package name and group ID to
org.springaicommunity.mcp
- Better Organization: Improved package structure for better maintainability
Dependency Management (#27)
- SDK Dependencies: Added MCP SDK dependency to mcp-annotations-spring module
- Scope Management: Set MCP SDK scope to 'provided' in core mcp-annotations module
- Version Updates: Bumped MCP Java SDK to version 0.11.3
⚠️ Breaking Changes
- Provider API Changes (#17): Provider APIs now return specification lists instead of single handlers/consumers
- Logging Annotation Rename (#20):
@McpLoggingConsumer
renamed to@McpLogging
- users need to update imports - Package Name Change (#8): Root package changed to
org.springaicommunity.mcp
- Tool Provider Cleanup (#9): Removed incorrectly placed async sampling components from sync provider
📋 Migration Guide
From Previous Versions
- Update package imports from old package structure to
org.springaicommunity.mcp.*
- Replace
@McpLoggingConsumer
with@McpLogging
- Update provider usage to handle specification lists instead of single handlers
- Update
SyncMcpCompletionProvider
references toSyncMcpCompleteProvider
This release represents a major evolution of the MCP Annotations Framework with comprehensive async support, enhanced notification handling, and improved developer experience. The framework now provides complete coverage of MCP operations with both synchronous and asynchronous implementations.
What's Changed
- fix: fixed #4 ,The mcpPrompt parameter cannot be mounted by @TheEterna in #5
- Change package name by @tzolov in #8
- feat: Add comprehensive MCP tool support with annotations and JSON schema generation by @tzolov in #9
- feat: add elicitation support to Spring annotation providers by @tzolov in #15
- feat: Add stateless MCP operation support and improve documentation by @tzolov in #16
- feat: add client-specific support and refactor to specification-based architecture by @tzolov in #17
- feat: Add CallToolRequest support for dynamic schema handling by @tzolov in #18
- feat: Add McpProgress annotation support for progress notifications by @tzolov in #19
- refactor: Rename logging consumer classes to simplified naming convention by @tzolov in #20
- feat: Add @McpProgressToken annotation support for progress tracking by @tzolov in #21
- feat: add McpMeta parameter support for accessing request metadata by @tzolov in #23
- feat: add @McpToolListChanged annotation support for tool list change notifications by @tzolov in #24
- feat: add @McpResourceListChanged annotation support by @tzolov in #25
- feat: Add MCP prompt list changed notification support by @tzolov in #26
- feat: update MCP SDK dependency management by @tzolov in #27
- refactor: improve the (A)SyncMcpAnnotationProviders API by @tzolov in #28
- feat: add async providers and rename completion providers for consistency by @tzolov in #30
New Contributors
- @TheEterna made their first contribution in #5
Full Changelog: https://github.com/spring-ai-community/mcp-annotations/commits/v0.2.0