Overview
Features
Dynamic Tool Group Registration and Removal
Tool groups and their tools are registered with MCP servers at runtime via addToolGroups and can be removed with removeTools.
Annotation-driven Tool Metadata
@McpTool and @McpToolParam annotations provide automatic MCP metadata from interface definitions.
Sync and Async Tool Support
Supports both synchronous (add, multiply) and asynchronous (asyncAdd, asyncMultiply) tools.
OSGi-based Lifecycle
Integrates with OSGi using @Component, @Activate and @Deactivate to manage registration.
Automatic Tool Specs on Activation
Tool specifications are generated when the ToolGroupComponent activates and stored for use by the servers.
Reflection-based Tool Discovery
Tools are discovered by reflecting on the ExampleToolGroup.class to determine available tools and metadata.
Client-facing Tool Discovery and Execution
MCP clients can list tools, view metadata, provide inputs, call tools, and receive outputs.
Nested ToolGroups and Flexible Organization
Nested ToolGroups can be created/added via databases, file systems, or other tooling for organization and testing.
Who Is This For?
- MCP server developers:to implement dynamic ToolGroups and expose tools via MCP servers using annotations.
- QA and security testers:to test dynamic tool groups, organize tests, and perform red-teaming scenarios.
- Java service integrators:to annotate interfaces with McpTool and McpToolParam to expose tools for clients.




