kotlin-sdk/samples/weather-stdio-server
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dependabot[bot] ec606dbc24
chore(deps): bump kotlin from 2.2.21 to 2.3.21 in /samples/weather-stdio-server (#726)
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>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 &quot;Cannot access
'java.lang.Record'&quot;</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: &quot;Serializer for class not found&quot; 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 &quot;at null&quot; 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="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />

Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.21 to
2.3.21
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin.plugin.serialization'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 &quot;Cannot access
'java.lang.Record'&quot;</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: &quot;Serializer for class not found&quot; 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 &quot;at null&quot; 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="fea1ad8c18"><code>fea1ad8</code></a>
Add ChangeLog for 2.3.21-RC2</li>
<li><a
href="09c341e858"><code>09c341e</code></a>
disable swift export execution tests in order to update macos</li>
<li><a
href="67a08681cd"><code>67a0868</code></a>
Avoid accessing KotlinNativeLink taskProvider when task was not
executed</li>
<li><a
href="f89e5dbc18"><code>f89e5db</code></a>
[K/N] Disable TSAN in runtime tests</li>
<li><a
href="45d6c859c0"><code>45d6c85</code></a>
[K/N] Don't generate generic safe casts for Objective-C types</li>
<li><a
href="9261a6f079"><code>9261a6f</code></a>
[K/N][tests] Add a reproducer for KT-85508</li>
<li><a
href="c9ab9db37a"><code>c9ab9db</code></a>
[K/N][tests] Add a reproducer for KT-85399</li>
<li><a
href="502e84484e"><code>502e844</code></a>
Explain: fix for destructuring declarations</li>
<li><a
href="0c26485d83"><code>0c26485</code></a>
Explain: fix for object literals</li>
<li><a
href="68a9e3f99f"><code>68a9e3f</code></a>
[minor] fix testdata name in explain test</li>
<li>Additional commits viewable in <a
href="https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.21">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-27 22:07:10 +02:00
..
gradle chore(deps): bump kotlin from 2.2.21 to 2.3.21 in /samples/weather-stdio-server (#726) 2026-04-27 22:07:10 +02:00
src docs: update client and server samples (#598) 2026-03-13 10:23:51 +01:00
build.gradle.kts docs: update client and server samples (#598) 2026-03-13 10:23:51 +01:00
gradle.properties #302 Update samples build workflow (#330) 2025-10-23 13:02:22 +03:00
gradlew chore(deps): bump the other-dependencies group across 4 directories with 4 updates (#634) 2026-03-27 00:58:15 +00:00
gradlew.bat chore(deps): bump the other-dependencies group across 4 directories with 4 updates (#634) 2026-03-27 00:58:15 +00:00
README.md docs: update client and server samples (#598) 2026-03-13 10:23:51 +01:00
settings.gradle.kts #302 Update samples build workflow (#330) 2025-10-23 13:02:22 +03:00

Weather STDIO Server

A minimal MCP server that exposes weather forecast and alert tools using the National Weather Service API over STDIO transport.

Overview

This sample shows how to build a STDIO-based MCP server in Kotlin. It registers two tools that query the weather.gov API — one for weather forecasts by latitude/longitude and one for active alerts by US state. Because it uses STDIO, the server is launched as a subprocess by an MCP client or a desktop application like Claude Desktop.

Prerequisites

  • JDK 17+
  • Internet access (the server calls the weather.gov API at runtime)

Build & Run

Run the server (it communicates via stdin/stdout):

./gradlew run

MCP Inspector

Build the fat JAR first, then connect with the MCP Inspector:

./gradlew build
npx @modelcontextprotocol/inspector -- java -jar samples/weather-stdio-server/build/libs/weather-stdio-server-0.1.0-all.jar

Claude Desktop integration

Add the following to your Claude Desktop configuration:

{
    "mcpServers": {
        "weather": {
            "command": "java",
            "args": [
                "-jar",
                "/absolute/path/to/samples/weather-stdio-server/build/libs/weather-stdio-server-0.1.0-all.jar"
            ]
        }
    }
}

MCP Capabilities

Tools

Name Description
get_alerts Returns active weather alerts for a two-letter US state code (e.g. CA, NY).
get_forecast Returns weather forecast for a given latitude / longitude using the weather.gov API.

Additional Resources