| Filename | Latest commit message | Latest commit date |
|---|---|---|
Bumps `kotlin` from 2.2.21 to 2.3.21. Updates `org.jetbrains.kotlin.jvm` from 2.2.21 to 2.3.21 <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.3.21</h2> <h2>Changelog</h2> <h3>Backend. Wasm</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a> [Wasm] Failed to compile klibs in IC mode</li> </ul> <h3>Compiler</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a> Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a> Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a> <code>@JvmRecord</code> in commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a> Postpone/Revert <code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a> K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a> False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project</li> </ul> <h3>JavaScript</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a> Support top-level declarations from compiler plugins in JS incremental compilation</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a> K/JS: false-positive exportability warnings in multi-module project</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a> Kotlin/JS: "Serializer for class not found" error when IR output granularity is <code>whole-program</code></li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a> Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion generates incorrect d.ts</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a> K/JS: bad mappings data in outputted Kotlin stdlib source map</li> </ul> <h3>Libraries</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a> Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li> </ul> <h3>Native. C and ObjC Import</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a> Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a> K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20</li> </ul> <h3>Tools. Gradle</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a> Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal</li> </ul> <h3>Tools. Gradle. Compiler plugins</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a> AGP/Compose: MergeMappingFileTask clears R8 artifacts due to <code>@OutputDirectory</code> annotation on AGP 9.1+</li> </ul> <h3>Tools. Scripts</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a> Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a> Exception while generating code when explain destructuring decls</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a> scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a> Kotlin Scripting: ScriptDiagnostic reports "at null" instead of error location</li> </ul> <h3>Tools. Statistics (FUS)</h3> <!-- 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.3.21</h2> <h3>Backend. Wasm</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-84610"><code>KT-84610</code></a> [Wasm] Failed to compile klibs in IC mode</li> </ul> <h3>Compiler</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-84566"><code>KT-84566</code></a> Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85358"><code>KT-85358</code></a> Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85626"><code>KT-85626</code></a> <code>@JvmRecord</code> in commonMain breaks compileCommonMainKotlinMetadata with "Cannot access 'java.lang.Record'"</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85405"><code>KT-85405</code></a> Postpone/Revert <code>DontIgnoreUpperBoundViolatedOnImplicitArguments</code></li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84678"><code>KT-84678</code></a> K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85021"><code>KT-85021</code></a> False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project</li> </ul> <h3>JavaScript</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-82395"><code>KT-82395</code></a> Support top-level declarations from compiler plugins in JS incremental compilation</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84475"><code>KT-84475</code></a> K/JS: false-positive exportability warnings in multi-module project</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84633"><code>KT-84633</code></a> Kotlin/JS: "Serializer for class not found" error when IR output granularity is <code>whole-program</code></li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85047"><code>KT-85047</code></a> Kotlin/JS: <code>@JsStatic</code> on suspend fun of class companion generates incorrect d.ts</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84517"><code>KT-84517</code></a> K/JS: bad mappings data in outputted Kotlin stdlib source map</li> </ul> <h3>Libraries</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-71848"><code>KT-71848</code></a> Kotlinx.metadata: Add <code>CompilerPluginData</code> into Km API</li> </ul> <h3>Native. C and ObjC Import</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-85399"><code>KT-85399</code></a> Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85508"><code>KT-85508</code></a> K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20</li> </ul> <h3>Tools. Gradle</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-84729"><code>KT-84729</code></a> Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal</li> </ul> <h3>Tools. Gradle. Compiler plugins</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-85257"><code>KT-85257</code></a> AGP/Compose: MergeMappingFileTask clears R8 artifacts due to <code>@OutputDirectory</code> annotation on AGP 9.1+</li> </ul> <h3>Tools. Scripts</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-85105"><code>KT-85105</code></a> Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85103"><code>KT-85103</code></a> Exception while generating code when explain destructuring decls</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-84842"><code>KT-84842</code></a> scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-85029"><code>KT-85029</code></a> Kotlin Scripting: ScriptDiagnostic reports "at null" instead of error location</li> </ul> <h3>Tools. Statistics (FUS)</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-85628"><code>KT-85628</code></a> KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
| .. | ||
| gradle | ||
| src | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| mcp-inspector-config.json | ||
| README.md | ||
| settings.gradle.kts | ||
Kotlin MCP Server
A sample MCP server demonstrating multiple transport modes: STDIO, SSE (plain), and SSE (Ktor plugin).
Note: The SSE transport modes are provided for backward compatibility. For new projects, consider using the simple-streamable-server sample, which uses the recommended Streamable HTTP transport.
Overview
This sample registers a prompt, a tool, and a resource, then lets you choose how to expose them.
STDIO mode is the default and is best for process-based clients. The two SSE modes show how to
serve MCP over HTTP using either a manual Ktor routing setup or the built-in mcp { } Ktor plugin.
Prerequisites
- JDK 17+
- MCP Inspector (optional, for testing)
Build & Run
STDIO mode (default)
./gradlew run
Or explicitly:
./gradlew run --args="--stdio"
Connect with the MCP Inspector:
npx @modelcontextprotocol/inspector --config samples/kotlin-mcp-server/mcp-inspector-config.json --server stdio-server
SSE with Ktor plugin
./gradlew run --args="--sse-server-ktor 3002"
Connect with the MCP Inspector:
npx @modelcontextprotocol/inspector --config samples/kotlin-mcp-server/mcp-inspector-config.json --server sse-ktor-server
SSE with plain configuration
Known issue: This mode may not work correctly at this time.
./gradlew run --args="--sse-server 3001"
Connect with the MCP Inspector:
npx @modelcontextprotocol/inspector --config samples/kotlin-mcp-server/mcp-inspector-config.json --server sse-server
MCP Capabilities
Tools
| Name | Description |
|---|---|
kotlin-sdk-tool |
A test tool that returns a "Hello, world!" greeting. |
Prompts
| Name | Description |
|---|---|
Kotlin Developer |
Generates a prompt to develop a small Kotlin application for a given project name. |
Resources
| Name | URI | Description |
|---|---|---|
Web Search |
https://search.com/ |
A placeholder resource demonstrating resource handling. |