Skip to content

Releases: spring-ai-community/mcp-annotations

v0.5.0

02 Oct 05:23

Choose a tag to compare

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

22 Sep 16:09

Choose a tag to compare

Full Changelog: v0.4.0...v0.4.1

v0.4.0

22 Sep 15:57

Choose a tag to compare

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

Full Changelog: v0.3.1...v0.4.0

v0.3.1

08 Sep 13:19

Choose a tag to compare

Release Notes

📦 What's Changed

  • Upgrade MCP Java SDK to 0.12.1
  • Add title attribute to the @McpTool annotation with clear precedence (#45)

Full Changelog: v0.3.0...v0.3.1

v0.3.0

04 Sep 21:40

Choose a tag to compare

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 from io.modelcontextprotocol.server to io.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, and ResourceAdapter moved from org.springaicommunity.mcp.annotation to org.springaicommunity.mcp.adapter
  • Fixed naming typos in adapter classes:
    • PromptAdaptorPromptAdapter
    • ResourceAdaptorResourceAdapter
  • 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:

  1. Update any direct imports of McpTransportContext to use the new io.modelcontextprotocol.common package
  2. Update imports for adapter classes that have moved to the org.springaicommunity.mcp.adapter package
  3. Check for any references to the old misspelled adapter class names

🙏 Contributors


v0.2.0

28 Aug 07:30

Choose a tag to compare

Release Notes

🚀 Major Features

Complete MCP Tool Support (#9)

  • New Annotations: Added @McpTool and @McpToolParam annotations for defining MCP tools
  • Provider Classes: Implemented AsyncMcpToolProvider and SyncMcpToolProvider 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, and AsyncMcpResourceProvider
  • API Improvements: Simplified API method names by removing create prefix and Specifications suffix
  • Consistency: Renamed SyncMcpCompletionProvider to SyncMcpCompleteProvider 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

  1. Provider API Changes (#17): Provider APIs now return specification lists instead of single handlers/consumers
  2. Logging Annotation Rename (#20): @McpLoggingConsumer renamed to @McpLogging - users need to update imports
  3. Package Name Change (#8): Root package changed to org.springaicommunity.mcp
  4. Tool Provider Cleanup (#9): Removed incorrectly placed async sampling components from sync provider

📋 Migration Guide

From Previous Versions

  1. Update package imports from old package structure to org.springaicommunity.mcp.*
  2. Replace @McpLoggingConsumer with @McpLogging
  3. Update provider usage to handle specification lists instead of single handlers
  4. Update SyncMcpCompletionProvider references to SyncMcpCompleteProvider

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

Full Changelog: https://github.com/spring-ai-community/mcp-annotations/commits/v0.2.0