Repository navigation
v0.17.0
0.17.0 (2026-05-29)
Highlights
- Jackson profile merge — replaces the hand-written
McpConfigurationMergerwith Jackson deep merge plusMcpConfigurationSupport.finalizeMerged()for predictable profile overlays. - Formal server lifecycle — STDIO uses
DeferredActivationServerTransportProviderso transport starts only after components are registered;McpApplication.run()callsstart()thenawaitShutdown(). - Stricter, clearer configuration validation —
McpConfigurationCheckerrefactored with qualified error keys (for examplecapabilities.subscribe-resource,streamable.mcp-endpoint). - Broader test coverage — async component registration,
McpApplication,McpServerCompletion, prompt/resourcefromAsync, and quieter expected ERROR logs in tests. - Documentation aligned with implementation — README, docs, and
llms*.txtupdated for required YAML fields, profile merge behavior, and removed staleMcpServersreferences.
Dependency
<dependency>
<groupId>io.github.thought2code</groupId>
<artifactId>mcp-annotated-java-sdk</artifactId>
<version>0.17.0</version>
</dependency>implementation 'io.github.thought2code:mcp-annotated-java-sdk:0.17.0'Built against MCP Java SDK 2.0.0-M3. Requires Java 17+ and Maven 3.9.16+ (use ./mvnw).
Changes since 0.16.0
Features
- Replace hand-written YAML profile merger with Jackson deep merge and formal server lifecycle.
- Add
DeferredActivationServerTransportProviderto defer STDIO transport activation until after component registration.
Refactoring
- Simplify
McpConfigurationCheckerstructure and error keys. - Add
McpConfigurationSupportfor post-merge configuration rules (preserve profile name, clear non-matching transport settings).
Tests & build
- Add
McpApplication, async registration, and completion/prompt/resource coverage. - Quiet expected async registration ERROR logs in tests.
- Bump logback, spotless, and surefire plugin versions.
Documentation
- Align README, docs, and
llms*.txtwith current implementation. - Fix Javadoc warnings for clean
mvn verifybuilds.
Upgrade notes
- Profile YAML — profile files (
mcp-server-{profile}.yml) are merged with Jackson deep merge; nested objects such ascapabilitiesandstreamableoverlay field-by-field. Transport sections for non-matchingmodevalues are cleared after merge. - Required
instructions—instructionsmust be a non-blank string inmcp-server.yml. - Validation error keys — configuration error messages now use qualified keys (for example
capabilities.subscribe-resourceinstead ofsubscribe-resource). - STDIO lifecycle —
McpApplication.run()blocks onawaitShutdown(); custom integrations should callstart()after registering components when not usingMcpApplication. - SSE still deprecated —
ServerMode.SSE,McpSseServer,McpServerSSE, andsse.*remain for compatibility but are scheduled for removal in 0.18.0; migrate to STREAMABLE.
Full changelog: v0.16.0...v0.17.0