Sourced from io.modelcontextprotocol:kotlin-sdk-server's releases.
0.12.0
Description
Adds sampling-with-tools per SEP-1577, JSON Schema dialect declaration on tool schemas, server-side tool name validation, and capability extensions; fixes SSE reconnect on the same session and stops swallowing
CancellationException.Breaking Changes
Sampling messages can carry tool calls and results (SEP-1577) by
@devcrocodin #718
SamplingMessage.contentis now typed as a newSamplingMessageContentsupertype, withMediaContent(text/image/audio),ToolUseContent, andToolResultContentas variants.MediaContentstill exists and now extendsSamplingMessageContent, so most source code that constructs sampling messages compiles unchanged — but the binary signatures ofSamplingMessage,CreateMessageResult, and related types have changed.ClientCapabilities.samplingis also now a typedSamplingobject instead of a rawJsonObject. Recompilation is required; consumers readingsamplingasJsonObjectmust migrate to the typed accessors.
watchosX64andtvosX64Kotlin/Native targets removed by@devcrocodin #727These targets have been deprecated upstream. Migrate to the corresponding ARM/simulator targets (
watchosArm64,watchosSimulatorArm64,tvosArm64,tvosSimulatorArm64).Features
- Add
$schemafield toToolSchema, declaring JSON Schema 2020-12 as the default dialect (SEP-1613) by@devcrocodin #696- Validate tool names at registration time on the server, following the MCP tool naming standard (SEP-986) by
@devcrocodin #695- Add
extensionsfield toClientCapabilitiesandServerCapabilitiesfor advertising supported MCP extensions during the initialize handshake by@eritscherin #678Fixed
- Validate the
mcp-protocol-versionHTTP header on initialization requests and correctDEFAULT_NEGOTIATED_PROTOCOL_VERSIONto match the spec by@devcrocodin #697- Propagate
CancellationExceptioninstead of logging it as an error by@devcrocodin #706- Evict stale GET SSE stream mapping on reconnect so a new GET on the same session is no longer silently rejected by the leftover entry from the previous stream by
@amrin #716Maintenance
- Add
kotlinlangMCP server sample withsearchandget_pagetools by@devcrocodin #713- Migrate detekt to a
buildSrcconvention plugin with a fully explicit, version-locked YAML config by@devcrocodin #729- Add Streamable HTTP integration tests for pagination, bad-request handling, and logging by
@jskjw157in #613- Remove unused OpenAPI Generator plugin and configuration by
@devcrocodin #683- Remove Codecov configuration in favor of kover by
@devcrocodin #691- Remove redundant JUnit XML report configuration by
@devcrocodin #728- Remove IDEA files tied to the incompatible detekt IDE plugin by
@devcrocodin #714- Add Node.js setup to the release workflow so TypeScript integration tests run on macOS runners by
@devcrocodin #684Dependencies
New Contributors
@eritschermade their first contribution in #678@amrmade their first contribution in #716Full Changelog: https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.1...0.12.0
c339d8c
release: bump version to 0.12.0 (#731)64804a0
refactor: explicit locked detekt config (#729)a238fc0
fix(server): evict stale GET SSE stream mapping on reconnect (#716)66d9efb
test(streamable-http): add missing integration tests for pagination, bad
requ...f434fca
feat!: SEP-1577 sampling with tools (#718)7474a33
chore: drop deprecated watchosX64 and tvosX64 targets (#727)12ace76
chore: remove redundant JUnit XML report configuration (#728)ec606db
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in
/samples/weather-stdio-serv...1d93042
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in
/samples/kotlin-mcp-server ...9817b17
chore(deps): bump org.jetbrains.kotlin.jvm from 2.2.21 to 2.3.21 in
/samples/...Sourced from io.modelcontextprotocol:kotlin-sdk-client's releases.
0.12.0
Description
Adds sampling-with-tools per SEP-1577, JSON Schema dialect declaration on tool schemas, server-side tool name validation, and capability extensions; fixes SSE reconnect on the same session and stops swallowing
CancellationException.Breaking Changes
Sampling messages can carry tool calls and results (SEP-1577) by
@devcrocodin #718
SamplingMessage.contentis now typed as a newSamplingMessageContentsupertype, withMediaContent(text/image/audio),ToolUseContent, andToolResultContentas variants.MediaContentstill exists and now extendsSamplingMessageContent, so most source code that constructs sampling messages compiles unchanged — but the binary signatures ofSamplingMessage,CreateMessageResult, and related types have changed.ClientCapabilities.samplingis also now a typedSamplingobject instead of a rawJsonObject. Recompilation is required; consumers readingsamplingasJsonObjectmust migrate to the typed accessors.
watchosX64andtvosX64Kotlin/Native targets removed by@devcrocodin #727These targets have been deprecated upstream. Migrate to the corresponding ARM/simulator targets (
watchosArm64,watchosSimulatorArm64,tvosArm64,tvosSimulatorArm64).Features
- Add
$schemafield toToolSchema, declaring JSON Schema 2020-12 as the default dialect (SEP-1613) by@devcrocodin #696- Validate tool names at registration time on the server, following the MCP tool naming standard (SEP-986) by
@devcrocodin #695- Add
extensionsfield toClientCapabilitiesandServerCapabilitiesfor advertising supported MCP extensions during the initialize handshake by@eritscherin #678Fixed
- Validate the
mcp-protocol-versionHTTP header on initialization requests and correctDEFAULT_NEGOTIATED_PROTOCOL_VERSIONto match the spec by@devcrocodin #697- Propagate
CancellationExceptioninstead of logging it as an error by@devcrocodin #706- Evict stale GET SSE stream mapping on reconnect so a new GET on the same session is no longer silently rejected by the leftover entry from the previous stream by
@amrin #716Maintenance
- Add
kotlinlangMCP server sample withsearchandget_pagetools by@devcrocodin #713- Migrate detekt to a
buildSrcconvention plugin with a fully explicit, version-locked YAML config by@devcrocodin #729- Add Streamable HTTP integration tests for pagination, bad-request handling, and logging by
@jskjw157in #613- Remove unused OpenAPI Generator plugin and configuration by
@devcrocodin #683- Remove Codecov configuration in favor of kover by
@devcrocodin #691- Remove redundant JUnit XML report configuration by
@devcrocodin #728- Remove IDEA files tied to the incompatible detekt IDE plugin by
@devcrocodin #714- Add Node.js setup to the release workflow so TypeScript integration tests run on macOS runners by
@devcrocodin #684Dependencies
New Contributors
@eritschermade their first contribution in #678@amrmade their first contribution in #716Full Changelog: https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.1...0.12.0
c339d8c
release: bump version to 0.12.0 (#731)64804a0
refactor: explicit locked detekt config (#729)a238fc0
fix(server): evict stale GET SSE stream mapping on reconnect (#716)66d9efb
test(streamable-http): add missing integration tests for pagination, bad
requ...f434fca
feat!: SEP-1577 sampling with tools (#718)7474a33
chore: drop deprecated watchosX64 and tvosX64 targets (#727)12ace76
chore: remove redundant JUnit XML report configuration (#728)ec606db
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in
/samples/weather-stdio-serv...1d93042
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in
/samples/kotlin-mcp-server ...9817b17
chore(deps): bump org.jetbrains.kotlin.jvm from 2.2.21 to 2.3.21 in
/samples/...Sourced from io.modelcontextprotocol:kotlin-sdk-testing's releases.
0.12.0
Description
Adds sampling-with-tools per SEP-1577, JSON Schema dialect declaration on tool schemas, server-side tool name validation, and capability extensions; fixes SSE reconnect on the same session and stops swallowing
CancellationException.Breaking Changes
Sampling messages can carry tool calls and results (SEP-1577) by
@devcrocodin #718
SamplingMessage.contentis now typed as a newSamplingMessageContentsupertype, withMediaContent(text/image/audio),ToolUseContent, andToolResultContentas variants.MediaContentstill exists and now extendsSamplingMessageContent, so most source code that constructs sampling messages compiles unchanged — but the binary signatures ofSamplingMessage,CreateMessageResult, and related types have changed.ClientCapabilities.samplingis also now a typedSamplingobject instead of a rawJsonObject. Recompilation is required; consumers readingsamplingasJsonObjectmust migrate to the typed accessors.
watchosX64andtvosX64Kotlin/Native targets removed by@devcrocodin #727These targets have been deprecated upstream. Migrate to the corresponding ARM/simulator targets (
watchosArm64,watchosSimulatorArm64,tvosArm64,tvosSimulatorArm64).Features
- Add
$schemafield toToolSchema, declaring JSON Schema 2020-12 as the default dialect (SEP-1613) by@devcrocodin #696- Validate tool names at registration time on the server, following the MCP tool naming standard (SEP-986) by
@devcrocodin #695- Add
extensionsfield toClientCapabilitiesandServerCapabilitiesfor advertising supported MCP extensions during the initialize handshake by@eritscherin #678Fixed
- Validate the
mcp-protocol-versionHTTP header on initialization requests and correctDEFAULT_NEGOTIATED_PROTOCOL_VERSIONto match the spec by@devcrocodin #697- Propagate
CancellationExceptioninstead of logging it as an error by@devcrocodin #706- Evict stale GET SSE stream mapping on reconnect so a new GET on the same session is no longer silently rejected by the leftover entry from the previous stream by
@amrin #716Maintenance
- Add
kotlinlangMCP server sample withsearchandget_pagetools by@devcrocodin #713- Migrate detekt to a
buildSrcconvention plugin with a fully explicit, version-locked YAML config by@devcrocodin #729- Add Streamable HTTP integration tests for pagination, bad-request handling, and logging by
@jskjw157in #613- Remove unused OpenAPI Generator plugin and configuration by
@devcrocodin #683- Remove Codecov configuration in favor of kover by
@devcrocodin #691- Remove redundant JUnit XML report configuration by
@devcrocodin #728- Remove IDEA files tied to the incompatible detekt IDE plugin by
@devcrocodin #714- Add Node.js setup to the release workflow so TypeScript integration tests run on macOS runners by
@devcrocodin #684Dependencies
New Contributors
@eritschermade their first contribution in #678@amrmade their first contribution in #716Full Changelog: https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.1...0.12.0
c339d8c
release: bump version to 0.12.0 (#731)64804a0
refactor: explicit locked detekt config (#729)a238fc0
fix(server): evict stale GET SSE stream mapping on reconnect (#716)66d9efb
test(streamable-http): add missing integration tests for pagination, bad
requ...f434fca
feat!: SEP-1577 sampling with tools (#718)7474a33
chore: drop deprecated watchosX64 and tvosX64 targets (#727)12ace76
chore: remove redundant JUnit XML report configuration (#728)ec606db
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in
/samples/weather-stdio-serv...1d93042
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in
/samples/kotlin-mcp-server ...9817b17
chore(deps): bump org.jetbrains.kotlin.jvm from 2.2.21 to 2.3.21 in
/samples/...