Releases: modelcontextprotocol/kotlin-sdk
0.8.0
🚨 Breaking changes
MCP schema types refactor (#386)
The MCP schema implementation has been updated to the latest MCP spec and reorganized into dedicated packages:
- All MCP types moved to
io.modelcontextprotocol.kotlin.sdk.typespackage - Many schema types have new fields and updated constructor signatures
- Request/response types now use nested
paramsobjects
Migration:
// Before:
import io.modelcontextprotocol.kotlin.sdk.InitializeRequest
import io.modelcontextprotocol.kotlin.sdk.Resource
// After:
import io.modelcontextprotocol.kotlin.sdk.types.InitializeRequest
import io.modelcontextprotocol.kotlin.sdk.types.ResourceMinimum JVM version raised to 11 (#394)
The minimum supported JVM version is now 11. Projects running on Java 8 must upgrade their runtime and build toolchain.
Transport.send signature change (#408)
The Transport.send method now accepts TransportSendOptions? parameter to support resumption tokens, progress callbacks, and request–response association.
Note
Who is affected?
Only custom Transport implementations. Built-in transports require no changes.
Migration:
Update all Transport.send implementations to include the new TransportSendOptions? parameter.
Features
- New MCP Schema types (#386) @devcrocod
- Add server session id (#381) @tiginamaria
- Add new helper properties to request and notification types (#388) @devcrocod
- Add experimental mcpClient(...) factory method (#396) @kpavlov
- Proposal: DSL Builders for request types (#399) @devcrocod
- Add options in Transport.send method (#408) @devcrocod
- Add convenience constructors to JSONRPCRequest (#336) @kpavlov
Improvements
- Raise the version of the supported specification (#391) @devcrocod
- Increase deprecation levels (#393) @devcrocod
- Updated ServerPromptsTest, move AbstractTransport to its own file (#376) @kpavlov
- Add backwards compatibility constructors and tests (#395) @kpavlov
- Add warning message to ExperimentalMcpApi annotation and change level (#398) @devcrocod
- Handle additional error types in client initialization handling (#404) @devcrocod
- Add test with new schema types (#389) @devcrocod
Bug Fixes
- Kotlin-MCP can't be used without ktor-bom starting from 0.7.5 (#392) @IRus
- Fix providing progressToken with request (#405) @devcrocod
Documentation & Examples
Build & Dependencies
- Bump version to 0.8.0-SNAPSHOT and update mcp-kotlin dependency in samples (#385) @kpavlov
- Update JVM target to 11 in Gradle build configuration (#394) @kpavlov
- Bump org.jlleitschuh.gradle.ktlint from 13.1.0 to 14.0.1 (#402) @dependabot[bot]
- Bump com.vanniktech:gradle-maven-publish-plugin from 0.34.0 to 0.35.0 (#403) @dependabot[bot]
New Contributors
Full Changelog: 0.7.7...0.8.0
0.7.7
0.7.6
What's Changed
Bugfixes
Dependencies
- Bump version to 0.7.6-SNAPSHOT and update version to 0.7.5 in samples by @kpavlov in #374
- Update Gradle to version 9.2.0 across all projects by @kpavlov in #377
Full Changelog: 0.7.5...0.7.6
0.7.5
What's Changed
- Refactor WebSocket dependency by @devcrocod in #350
- Fix: Return CallToolResult with isError for tool errors to conform with MCP spec by @devcrocod in #354
- Relocate
WebSocketIntegrationTestfromcommonTesttojvmTestby @devcrocod in #352 - Fix kotlin-mcp-server example and update samples by @devcrocod in #345
- Fix security for logging in server by @devcrocod in #360
- Refactor mcp server, rename connect to by @tiginamaria in #364
- Fix: Memory leak from unclosed sessions in Server by @devcrocod in #359
- Move features(tools, prompts, resources) management to the FeatureRegistry by @tiginamaria in #365
- Refactor ServerTest test structure by @tiginamaria in #366
- Fix: Handle logging/setLevel request for server by @devcrocod in #358
- Add Ktor BOM for dependency management across all modules, run Kotlin-MCP-Server Sample by @kpavlov in #367
- Add tests to server samples by @tiginamaria in #369
- Adds optional _meta field to Tool by @jclyne in #339
- Update Kotlin-MCP-Server with STDIO support, logging & CORS by @kpavlov in #371
- Update .gitignore to exclude kotlin-js-store directory by @devcrocod in #343
- Add AGENTS.md by @devcrocod in #349
Dependencies
- Bump org.openapi.generator from 7.16.0 to 7.17.0 by @dependabot[bot] in #362
- Bump mikepenz/action-junit-report from 5 to 6 by @dependabot[bot] in #363
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #348
Full Changelog: 0.7.4...0.7.5
0.7.4
What's Changed
Features
Improvements
- Fix decimal separator format in calculator tool tests by @maeryo in #315
- Refactor testClientConnectWithInvalidJson by @devcrocod in #338
Build & CI
- #302 [part 1] Add GitHub workflow to validate samples by @kpavlov in #327
- #302 Update samples build workflow by @kpavlov in #330
Dependencies
- Bump kotest from 6.0.3 to 6.0.4 by @dependabot[bot] in #324
- Bump com.anthropic:anthropic-java from 2.7.0 to 2.9.0 by @dependabot[bot] in #323
- Bump org.jetbrains.kotlinx.kover from 0.9.2 to 0.9.3 by @dependabot[bot] in #322
- Update kotlin, ktor, dokka by @devcrocod in #334
- downgrade Ktor to 3.2.3 by @devcrocod in #342
- Exclude samples from composite gradle build by @kpavlov in #337
Docs
- Update badges in README and set version to 0.7.4-SNAPSHOT by @kpavlov in #326
- Prepare release 0.7.4 by @devcrocod in #341
New Contributors
Full Changelog: 0.7.3...0.7.4
0.7.3
What's Changed
-
Introduce server sessions by @tiginamaria in #198
-
Capture version at configuration time to avoid configuration cache issue by @jclyne in #291
-
Add
instructionsstring to the Server and propagate to theInitializeResultby @jclyne in #290 -
Change sample server host from
0.0.0.0to127.0.0.1by @JLLeitschuh in #307 -
Add
StreamableHttpClientTestwith test infrastructure setup and dependencies by @kpavlov in #316 -
Fix Streamable handling to support JSON-only responses by @devcrocod in #309
Chores
- Bump org.jetbrains.kotlinx.kover from 0.9.1 to 0.9.2 by @dependabot[bot] in #286
- Conditionally imports the samples only if it's the root project by @jclyne in #292
- Generate MCP classes with OpenAPI Generator by @kpavlov in #294
- Disable OpenAPI Generator by @kpavlov in #301
- Bump gradle/actions from 4 to 5 by @dependabot[bot] in #306
- Compatibility updates for gradle 9.x.x by @jclyne in #313
- Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #317
- Bump org.openapi.generator from 7.15.0 to 7.16.0 by @dependabot[bot] in #305
New Contributors
- @jclyne made their first contribution in #292
- @JLLeitschuh made their first contribution in #307
Full Changelog: 0.7.2...0.7.3
0.6.1
0.7.2
What's Changed
- migration from
jreleasertomavenPublishplugin by @devcrocod in #277 - Generate test report by @kpavlov in #271
- Move
generateLibVersiontask tokotlin-sdk-coreby @devcrocod in #274 - #196 Update build configuration and workflows for enhanced local publ… by @kpavlov in #275
- Add Stdio coverage for integration tests by @skarpovdev in #276
- Bump io.kotest:kotest-assertions-json from 5.9.1 to 6.0.3 by @dependabot[bot] in #247
- migration from
jreleasertomavenPublishplugin by @devcrocod in #277
Full Changelog: 0.7.1...0.7.2
0.7.2-alpha3
Prepare prerelease 0.7.2-alpha3 (#284) Prepare new prerelease. Bump version to 0.7.2-alpha3
0.7.2-alpha2
Prepare prerelease 0.7.2-alpha2 (#282) Bump version to 0.7.2-alpha2 ## Motivation and Context New prerelease version with signing fixes ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed