| Filename | Latest commit message | Latest commit date |
|---|---|---|
Bumps `kotlin` from 2.3.21 to 2.4.0. Updates `org.jetbrains.kotlin.jvm` from 2.3.21 to 2.4.0 <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.0</h2> <h2>Changelog</h2> <h3>Analysis API</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a> OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repo</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a> [Analysis API] Enable experimental KDoc resolver by default</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a> Analysis API: properly support KMP in KotlinPackageProvider</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a> Analysis API: Dangling file session creation causes a <code>computeIfAbsent</code> contract violation</li> </ul> <h3>Analysis API. Code Compilation</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a> Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception</li> </ul> <h3>Analysis API. FIR</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a> K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text <code>::lam1</code>, unexpected element of type: no element found” with illegal callable reference call</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a> AA: False positive deprecation warning with override of built-in method in JDK mapped class</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a> K2 IDE sometimes loses FIR plugin-generated declarations after file changes</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a> Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a> Improve K2 Jooq completion performance</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a> KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a> Kotlin analysis reach ClsCustomNavigationPolicy</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a> Move CommonDefaultImportsProvider to the frontend independent module</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a> Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a> AA: exception from sealed inheritors checker when <code>analyzeCopy</code></li> </ul> <h3>Analysis API. Infrastructure</h3> <h4>Fixes</h4> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a> Analysis API: Improve UX with test data</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a> Extract compiler classes used by the PSI & Analysis API to a separate module</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a> Analysis API: Implement Analysis API tests for different KMP Platforms</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a> The test data manager misses the redundancy check in the update mode</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a> The test data manager misses -ea flag</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a> Preserve the EOF status in the test data manager to avoid extra changes</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a> Analysis API tests produce many warnings due to "not yet loaded registry"</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a> Test Data Manager fails on a clean build</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a> Exclude compiler-based Analysis API tests from Git tracking</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a> Extract per-module test generators for AA tests</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a> Move CLI modules out of kotlin-compiler-fe10-for-ide</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a> Track external dependencies of the Analysis API modules</li> </ul> <h3>Analysis API. Light Classes</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a> Light classes should prefer enum entries to properties</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a> SLC: return type is not boxed for delegated methods with generic original method</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a> "CCE: class PsiPrimitiveType cannot be cast to class PsiClassType" with same-named enum class and typealias</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.0</h2> <h3>Analysis API</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-83867"><code>KT-83867</code></a> OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repo</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83723"><code>KT-83723</code></a> [Analysis API] Enable experimental KDoc resolver by default</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83388"><code>KT-83388</code></a> Analysis API: properly support KMP in KotlinPackageProvider</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-65683"><code>KT-65683</code></a> Analysis API: Dangling file session creation causes a <code>computeIfAbsent</code> contract violation</li> </ul> <h3>Analysis API. Code Compilation</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-78946"><code>KT-78946</code></a> Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception</li> </ul> <h3>Analysis API. FIR</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-68260"><code>KT-68260</code></a> K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text <code>::lam1</code>, unexpected element of type: no element found” with illegal callable reference call</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-70896"><code>KT-70896</code></a> AA: False positive deprecation warning with override of built-in method in JDK mapped class</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84711"><code>KT-84711</code></a> K2 IDE sometimes loses FIR plugin-generated declarations after file changes</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84625"><code>KT-84625</code></a> Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84596"><code>KT-84596</code></a> Improve K2 Jooq completion performance</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84525"><code>KT-84525</code></a> KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSite</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83546"><code>KT-83546</code></a> Kotlin analysis reach ClsCustomNavigationPolicy</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84259"><code>KT-84259</code></a> Move CommonDefaultImportsProvider to the frontend independent module</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-82945"><code>KT-82945</code></a> Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-71135"><code>KT-71135</code></a> AA: exception from sealed inheritors checker when <code>analyzeCopy</code></li> </ul> <h3>Analysis API. Infrastructure</h3> <h4>Fixes</h4> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-83905"><code>KT-83905</code></a> Analysis API: Improve UX with test data</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84913"><code>KT-84913</code></a> Extract compiler classes used by the PSI & Analysis API to a separate module</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-64986"><code>KT-64986</code></a> Analysis API: Implement Analysis API tests for different KMP Platforms</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84776"><code>KT-84776</code></a> The test data manager misses the redundancy check in the update mode</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84962"><code>KT-84962</code></a> The test data manager misses -ea flag</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84388"><code>KT-84388</code></a> Preserve the EOF status in the test data manager to avoid extra changes</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84362"><code>KT-84362</code></a> Analysis API tests produce many warnings due to "not yet loaded registry"</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84279"><code>KT-84279</code></a> Test Data Manager fails on a clean build</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83913"><code>KT-83913</code></a> Exclude compiler-based Analysis API tests from Git tracking</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-80379"><code>KT-80379</code></a> Extract per-module test generators for AA tests</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84120"><code>KT-84120</code></a> Move CLI modules out of kotlin-compiler-fe10-for-ide</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-83200"><code>KT-83200</code></a> Track external dependencies of the Analysis API modules</li> </ul> <h3>Analysis API. Light Classes</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-82434"><code>KT-82434</code></a> Light classes should prefer enum entries to properties</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84200"><code>KT-84200</code></a> SLC: return type is not boxed for delegated methods with generic original method</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-72451"><code>KT-72451</code></a> "CCE: class PsiPrimitiveType cannot be cast to class PsiClassType" with same-named enum class and typealias</li> </ul> <h3>Analysis API. PSI</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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 →