Skip to content

Conversation

tzolov
Copy link
Collaborator

@tzolov tzolov commented Aug 22, 2025

  • Add @McpProgress annotation for handling progress notifications in MCP clients
  • Implement AbstractMcpProgressMethodCallback base class with common validation logic
  • Add SyncMcpProgressMethodCallback for synchronous progress handling (Consumer)
  • Add AsyncMcpProgressMethodCallback for asynchronous progress handling (Function<ProgressNotification, Mono>)
  • Create SyncProgressSpecification and AsyncProgressSpecification records
  • Implement SyncMcpProgressProvider and AsyncMcpProgressProvider for method discovery
  • Extend Spring annotation providers with Progress support:
    • Add SpringAiSyncMcpProgressProvider to SyncMcpAnnotationProvider
    • Add SpringAiAsyncMcpProgressProvider to AsyncMcpAnnotationProvider
    • Add createSyncProgressSpecifications and createAsyncProgressSpecifications methods
  • Add comprehensive test coverage with example implementations
  • Update README.md with Progress documentation and usage examples

This enables MCP clients to handle progress notifications for long-running operations through annotated methods, supporting both synchronous and asynchronous implementations with optional client-specific handlers.

- Add @McpProgress annotation for handling progress notifications in MCP clients
- Implement AbstractMcpProgressMethodCallback base class with common validation logic
- Add SyncMcpProgressMethodCallback for synchronous progress handling (Consumer<ProgressNotification>)
- Add AsyncMcpProgressMethodCallback for asynchronous progress handling (Function<ProgressNotification, Mono<Void>>)
- Create SyncProgressSpecification and AsyncProgressSpecification records
- Implement SyncMcpProgressProvider and AsyncMcpProgressProvider for method discovery
- Extend Spring annotation providers with Progress support:
  - Add SpringAiSyncMcpProgressProvider to SyncMcpAnnotationProvider
  - Add SpringAiAsyncMcpProgressProvider to AsyncMcpAnnotationProvider
  - Add createSyncProgressSpecifications and createAsyncProgressSpecifications methods
- Add comprehensive test coverage with example implementations
- Update README.md with Progress documentation and usage examples

This enables MCP clients to handle progress notifications for long-running operations
through annotated methods, supporting both synchronous and asynchronous implementations
with optional client-specific handlers.

Signed-off-by: Christian Tzolov <[email protected]>
@tzolov tzolov merged commit bdc67f8 into spring-ai-community:main Aug 22, 2025
1 check passed
@tzolov tzolov added this to the 0.2.0 milestone Aug 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant