Skip to content

v0.17.0

Choose a tag to compare

@codeboyzhou codeboyzhou released this 29 May 16:07
· 98 commits to main since this release

0.17.0 (2026-05-29)

Highlights

  • Jackson profile merge — replaces the hand-written McpConfigurationMerger with Jackson deep merge plus McpConfigurationSupport.finalizeMerged() for predictable profile overlays.
  • Formal server lifecycle — STDIO uses DeferredActivationServerTransportProvider so transport starts only after components are registered; McpApplication.run() calls start() then awaitShutdown().
  • Stricter, clearer configuration validation — McpConfigurationChecker refactored with qualified error keys (for example capabilities.subscribe-resource, streamable.mcp-endpoint).
  • Broader test coverage — async component registration, McpApplication, McpServerCompletion, prompt/resource fromAsync, and quieter expected ERROR logs in tests.
  • Documentation aligned with implementation — README, docs, and llms*.txt updated for required YAML fields, profile merge behavior, and removed stale McpServers references.

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 DeferredActivationServerTransportProvider to defer STDIO transport activation until after component registration.

Refactoring

  • Simplify McpConfigurationChecker structure and error keys.
  • Add McpConfigurationSupport for 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*.txt with current implementation.
  • Fix Javadoc warnings for clean mvn verify builds.

Upgrade notes

  1. Profile YAML — profile files (mcp-server-{profile}.yml) are merged with Jackson deep merge; nested objects such as capabilities and streamable overlay field-by-field. Transport sections for non-matching mode values are cleared after merge.
  2. Required instructions — instructions must be a non-blank string in mcp-server.yml.
  3. Validation error keys — configuration error messages now use qualified keys (for example capabilities.subscribe-resource instead of subscribe-resource).
  4. STDIO lifecycle — McpApplication.run() blocks on awaitShutdown(); custom integrations should call start() after registering components when not using McpApplication.
  5. SSE still deprecated — ServerMode.SSE, McpSseServer, McpServerSSE, and sse.* remain for compatibility but are scheduled for removal in 0.18.0; migrate to STREAMABLE.

Full changelog: v0.16.0...v0.17.0