Sourced from io.modelcontextprotocol:kotlin-sdk-client's releases.
0.13.0
Description
Adds a
taskscapability and a typedelicitationcapability, hardens transport lifecycle, dispatchers, and back-pressure, and enables DNS rebinding protection by default.Breaking Changes
Typed
elicitationcapability and newtaskscapability by@devcrocodin #732
ClientCapabilities.elicitationis now a typedClientCapabilities.Elicitation(form,url) instead of a rawJsonObject?, and bothClientCapabilitiesandServerCapabilitiesgained a typedtaskscapability. The constructors of both types changed and are binary-incompatible; recompilation is required.Transport handlers now run on
Dispatchers.Defaultby@devcrocodin #778Handlers moved from
Dispatchers.IOtoDispatchers.Default(override viahandlerDispatcher),send()now suspends under back-pressure instead of buffering unbounded, and the two-argumentStdioServerTransport(input, output)constructor is deprecated in favor of the builder-lambda form. Also fixes astart()/close()race, consistentCancellationExceptionpropagation, and an input-Sourceleak (closes #573, #574, #708).DNS rebinding protection enabled by default by
@devcrocodin #659
enableDnsRebindingProtectionnow defaults totrueonmcpStreamableHttp/mcpStatelessStreamableHttp, and theRoute.mcp()/Application.mcp()overloads gainedenableDnsRebindingProtection,allowedHosts, andallowedOriginsparameters (binary-incompatible on JVM). Onlylocalhost,127.0.0.1, and[::1]are allowed by default; opt out withenableDnsRebindingProtection = false. TheConfiguration.enableDnsRebindingProtection,.allowedHosts, and.allowedOriginsproperties are deprecated in favor of the newDnsRebindingProtectionplugin.Features
- Add a
taskscapability (list,cancel, and per-request augmentation for sampling and elicitation) onClientCapabilitiesandServerCapabilities, with assertions fortasks/*andnotifications/tasks/statusenforced byClientandServerSessionby@devcrocodin #732- Configurable
handlerDispatcherandioDispatcher, plus an optional caller-suppliedCoroutineScope, on transports by@devcrocodin #778Fixed
- Fire
onClosecallbacks onSseClientTransportwhen the SSE session ends — whether closed gracefully or terminated by an error — matching the other client transports by@jskjw157in #738Security
- Enable DNS rebinding protection by default across all HTTP transports, including the SSE endpoints that previously had none (see Breaking Changes for migration) by
@devcrocodin #659- Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
TooLongFrameExceptioninstead of buffering unbounded when a peer never sends a newline terminator by@devcrocodin 6e6f805Maintenance
- Remove the test-only
dev.mokksy:mokksydependency in favor ofMockEngineandembeddedServerby@devcrocodin #754Dependencies
- Ktor to v3.4.3 in #785
- kotlinx.coroutines to v1.11.0 in #760
- kotlin-logging to v8.0.03 in #752, #783
- 24 further Dependabot updates across sample projects, TypeScript conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple, Gradle wrapper, anthropic-java)
Full Changelog: https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0
b7eeeb1
release: 0.13.0 (#796)6e6f805
Merge commit from fork0eb1822
Update Ktor to version 3.4.3 (#785)0adfb3b
fix!: harden lifecycle, dispatchers, back-pressure (#778)37ee423
chore(deps): bump the infrastructure group with 2 updates (#783)ff4b623
chore(deps): bump the other-dependencies group across 3 directories with
3 up...78066a9
chore(deps): bump the all-dependencies group across 1 directory with 2
update...1ff5f00
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...6d5bac1
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (#776)c854560
chore(deps): bump the all-dependencies group across 1 directory with 2
update...Sourced from io.modelcontextprotocol:kotlin-sdk-server's releases.
0.13.0
Description
Adds a
taskscapability and a typedelicitationcapability, hardens transport lifecycle, dispatchers, and back-pressure, and enables DNS rebinding protection by default.Breaking Changes
Typed
elicitationcapability and newtaskscapability by@devcrocodin #732
ClientCapabilities.elicitationis now a typedClientCapabilities.Elicitation(form,url) instead of a rawJsonObject?, and bothClientCapabilitiesandServerCapabilitiesgained a typedtaskscapability. The constructors of both types changed and are binary-incompatible; recompilation is required.Transport handlers now run on
Dispatchers.Defaultby@devcrocodin #778Handlers moved from
Dispatchers.IOtoDispatchers.Default(override viahandlerDispatcher),send()now suspends under back-pressure instead of buffering unbounded, and the two-argumentStdioServerTransport(input, output)constructor is deprecated in favor of the builder-lambda form. Also fixes astart()/close()race, consistentCancellationExceptionpropagation, and an input-Sourceleak (closes #573, #574, #708).DNS rebinding protection enabled by default by
@devcrocodin #659
enableDnsRebindingProtectionnow defaults totrueonmcpStreamableHttp/mcpStatelessStreamableHttp, and theRoute.mcp()/Application.mcp()overloads gainedenableDnsRebindingProtection,allowedHosts, andallowedOriginsparameters (binary-incompatible on JVM). Onlylocalhost,127.0.0.1, and[::1]are allowed by default; opt out withenableDnsRebindingProtection = false. TheConfiguration.enableDnsRebindingProtection,.allowedHosts, and.allowedOriginsproperties are deprecated in favor of the newDnsRebindingProtectionplugin.Features
- Add a
taskscapability (list,cancel, and per-request augmentation for sampling and elicitation) onClientCapabilitiesandServerCapabilities, with assertions fortasks/*andnotifications/tasks/statusenforced byClientandServerSessionby@devcrocodin #732- Configurable
handlerDispatcherandioDispatcher, plus an optional caller-suppliedCoroutineScope, on transports by@devcrocodin #778Fixed
- Fire
onClosecallbacks onSseClientTransportwhen the SSE session ends — whether closed gracefully or terminated by an error — matching the other client transports by@jskjw157in #738Security
- Enable DNS rebinding protection by default across all HTTP transports, including the SSE endpoints that previously had none (see Breaking Changes for migration) by
@devcrocodin #659- Cap a single stdio JSON-RPC frame at 16 MiB, throwing the new
TooLongFrameExceptioninstead of buffering unbounded when a peer never sends a newline terminator by@devcrocodin 6e6f805Maintenance
- Remove the test-only
dev.mokksy:mokksydependency in favor ofMockEngineandembeddedServerby@devcrocodin #754Dependencies
- Ktor to v3.4.3 in #785
- kotlinx.coroutines to v1.11.0 in #760
- kotlin-logging to v8.0.03 in #752, #783
- 24 further Dependabot updates across sample projects, TypeScript conformance-test fixtures, and build/test tooling (JUnit, slf4j-simple, Gradle wrapper, anthropic-java)
Full Changelog: https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.12.0...0.13.0
b7eeeb1
release: 0.13.0 (#796)6e6f805
Merge commit from fork0eb1822
Update Ktor to version 3.4.3 (#785)0adfb3b
fix!: harden lifecycle, dispatchers, back-pressure (#778)37ee423
chore(deps): bump the infrastructure group with 2 updates (#783)ff4b623
chore(deps): bump the other-dependencies group across 3 directories with
3 up...78066a9
chore(deps): bump the all-dependencies group across 1 directory with 2
update...1ff5f00
chore(deps): bump qs from 6.14.2 to 6.15.2 in
/integration-test/src/jvmTest/t...6d5bac1
chore(deps): bump gradle-wrapper from 9.5.0 to 9.5.1 (#776)c854560
chore(deps): bump the all-dependencies group across 1 directory with 2
update...