| Filename | Latest commit message | Latest commit date |
|---|---|---|
Bumps `kotlin` from 2.4.0 to 2.4.10. Updates `org.jetbrains.kotlin.jvm` from 2.4.0 to 2.4.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin.jvm's releases</a>.</em></p> <blockquote> <h2>Kotlin 2.4.10</h2> <h2>Changelog</h2> <h3>Backend. Wasm</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a> K/Wasm: Not all files are presented in compiler output directory with multimodule-closed-world and incremental compilation</li> </ul> <h3>Compiler</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a> JVM: IllegalStateException "No value for annotation parameter" when using const val in nested Java annotation array argument</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a> K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for annotation arguments referencing a const val</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a> Reified type inference: expected type not propagated into inline call inside lambda with elvis operator</li> </ul> <h3>Compose Compiler</h3> <ul> <li><a href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a> Compose Compiler 2.4: classes previously inferred <code>stable</code> now reported <code>runtime</code>/<code>Uncertain</code></li> </ul> <h3>Klibs</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a> Native: IrTypeAliasSymbolImpl is already bound. Signature: kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li> </ul> <h3>Tools. CLI</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a> Introduce <code>kotlinr</code> in the Kotlin distribution</li> </ul> <h3>Tools. Gradle. BCV</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a> Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of 2.4.0</li> </ul> <h3>Tools. Gradle. JS</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a> jsBrowserTest fails with "exited with errors (exit code: 1)"</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a> kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall is up-to-date, causing kotlinStoreYarnLock to fail</li> </ul> <h3>Tools. Gradle. Multiplatform</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a> False positive warning for JS and Wasm compilations when CRI is enabled</li> </ul> <h3>Tools. Scripts</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a> <code>@file</code>:CompilerOptions("-jvm-target", ...) ignored in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target 1.8</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a> K2 scripting: FirResolvedTypeRef exception when resolving extension functions from imported scripts</li> </ul> <h2>Kotlin 2.4.10-RC2</h2> <h2>Changelog</h2> <h3>Backend. Wasm</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a> K/Wasm: Not all files are presented in compiler output directory with multimodule-closed-world and incremental compilation</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.jvm's changelog</a>.</em></p> <blockquote> <h2>2.4.10</h2> <h3>Backend. Wasm</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87066"><code>KT-87066</code></a> K/Wasm: Not all files are presented in compiler output directory with multimodule-closed-world and incremental compilation</li> </ul> <h3>Compiler</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-86939"><code>KT-86939</code></a> JVM: IllegalStateException "No value for annotation parameter" when using const val in nested Java annotation array argument</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83766"><code>KT-83766</code></a> K2: Wrong sourcePsi is set for <code>SymbolPsiLiteral</code> in SLC for annotation arguments referencing a const val</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-86728"><code>KT-86728</code></a> Reified type inference: expected type not propagated into inline call inside lambda with elvis operator</li> </ul> <h3>Compose Compiler</h3> <ul> <li><a href="https://issuetracker.google.com/issues/522127447"><code>b/522127447</code></a> Compose Compiler 2.4: classes previously inferred <code>stable</code> now reported <code>runtime</code>/<code>Uncertain</code></li> </ul> <h3>Klibs</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-86501"><code>KT-86501</code></a> Native: IrTypeAliasSymbolImpl is already bound. Signature: kotlinx.datetime/Instant|null[0] on iosSimulatorArm64</li> </ul> <h3>Tools. CLI</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-86930"><code>KT-86930</code></a> Introduce <code>kotlinr</code> in the Kotlin distribution</li> </ul> <h3>Tools. Gradle. BCV</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87223"><code>KT-87223</code></a> Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of 2.4.0</li> </ul> <h3>Tools. Gradle. JS</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87304"><code>KT-87304</code></a> jsBrowserTest fails with "exited with errors (exit code: 1)"</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-86057"><code>KT-86057</code></a> kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall is up-to-date, causing kotlinStoreYarnLock to fail</li> </ul> <h3>Tools. Gradle. Multiplatform</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87084"><code>KT-87084</code></a> False positive warning for JS and Wasm compilations when CRI is enabled</li> </ul> <h3>Tools. Scripts</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-87076"><code>KT-87076</code></a> <code>@file</code>:CompilerOptions("-jvm-target", ...) ignored in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target 1.8</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-86352"><code>KT-86352</code></a> K2 scripting: FirResolvedTypeRef exception when resolving extension functions from imported scripts</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
| .. | ||
| kotlin-mcp-client | ||
| kotlin-mcp-server | ||
| kotlinlang-mcp-server | ||
| notebooks | ||
| simple-streamable-server | ||
| weather-stdio-server | ||
| README.md | ||
Kotlin MCP SDK Samples
Runnable projects demonstrating MCP server and client implementations with the Kotlin MCP SDK. For background on the protocol itself, see the MCP documentation.
Overview
| Sample | Type | Transport | MCP Features |
|---|---|---|---|
| simple-streamable-server | Server | Streamable HTTP | Tools, Resources, Prompts, Logging |
| kotlinlang-mcp-server | Server | Streamable HTTP | Tools |
| kotlin-mcp-server | Server | STDIO, SSE | Tools, Resources, Prompts |
| weather-stdio-server | Server | STDIO | Tools |
| kotlin-mcp-client | Client | STDIO | Tool discovery & invocation |
| notebooks | Client (Notebook) | Streamable HTTP | Tool discovery & invocation |
Getting Started
- Building a server? Start with simple-streamable-server — it uses the recommended Streamable HTTP transport and covers tools, resources, prompts, and logging.
- Building a client? Open the notebooks sample for a step-by-step walkthrough, or see kotlin-mcp-client for a full CLI client with Anthropic API integration.
Samples
Simple Streamable HTTP Server
A minimal Streamable HTTP server with optional Bearer token authentication. Demonstrates tools
(greet, multi-greet), a prompt template, a resource, and server-to-client logging notifications.
Read more →
Kotlinlang MCP Server
A Streamable HTTP server that exposes the official Kotlin documentation (kotlinlang.org) to LLM clients — full-text search via Algolia and page retrieval in markdown. Demonstrates wrapping a real external API in an MCP server with in-memory caching. Read more →
Kotlin MCP Server
A multi-transport server supporting STDIO, SSE (plain), and SSE (Ktor plugin). Useful for exploring different transport modes side by side. Read more →
Weather STDIO Server
A focused STDIO server that exposes weather forecast and alert tools backed by the weather.gov API. Includes Claude Desktop integration instructions. Read more →
Kotlin MCP Client
An interactive CLI client that connects to any MCP server over STDIO and routes queries through Anthropic's Claude API, bridging MCP tools with LLM conversations. Read more →
MCP Client Notebook
A Kotlin notebook that connects to a remote MCP server via Streamable HTTP and demonstrates ping, tool listing, and tool invocation — all in an interactive cell-by-cell format. Read more →