kotlin-sdk/samples/weather-stdio-server
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dependabot[bot] eb24803547
chore(deps): bump mcp-kotlin from 0.11.0 to 0.11.1 in /samples/weather-stdio-server (#702)
Bumps `mcp-kotlin` from 0.11.0 to 0.11.1.
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.11.0 to
0.11.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-client's
releases</a>.</em></p>
<blockquote>
<h2>0.11.1</h2>
<h3>Description</h3>
<p>Fixes an SSE stream crash on Netty when clients connect to the
Streamable HTTP GET endpoint.</p>
<h3>Fixed</h3>
<ul>
<li>Fixed GET SSE stream crash on Netty in Streamable HTTP where
<code>appendSseHeaders()</code> was called after response headers were
already committed, causing <code>UnsupportedOperationException</code>
and client retry loops by <a
href="https://github.com/devcrocod"><code>@​devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/681">#681</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>mcp-kotlin to v0.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/672">#672</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/673">#673</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/675">#675</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/676">#676</a></li>
<li>Ktor BOM to v3.3.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/650">#650</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/653">#653</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/656">#656</a></li>
<li>Kotest assertions to v6.1.11 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/674">#674</a></li>
<li>anthropic-java to v2.19.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/671">#671</a></li>
<li><code>@​modelcontextprotocol/sdk</code> to v1.29.0,
<code>@​types/node</code> update in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/677">#677</a></li>
<li>hono to v4.12.12 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/680">#680</a></li>
<li><code>@​hono/node-server</code> to v1.19.13 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/679">#679</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.0...0.11.1">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.0...0.11.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f02f5d3d10"><code>f02f5d3</code></a>
release: bump mcp kotlin-sdk version to 0.11.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/682">#682</a>)</li>
<li><a
href="8a7f9f8d31"><code>8a7f9f8</code></a>
fix(server): GET SSE stream crash on Netty in Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/681">#681</a>)</li>
<li><a
href="cceca4df58"><code>cceca4d</code></a>
chore(deps): bump io.ktor:ktor-bom from 3.2.3 to 3.3.3 in
/samples/kotlin-mcp...</li>
<li><a
href="12171dc2ec"><code>12171dc</code></a>
chore(deps): bump hono from 4.12.9 to 4.12.12 in
/integration-test/src/jvmTes...</li>
<li><a
href="66d17956c1"><code>66d1795</code></a>
chore(deps): bump <code>@​hono/node-server</code> from 1.19.11 to
1.19.13 in /integration-t...</li>
<li><a
href="8442ab852b"><code>8442ab8</code></a>
chore(deps): bump com.anthropic:anthropic-java from 2.18.0 to 2.19.0 in
/samp...</li>
<li><a
href="20ac69f9af"><code>20ac69f</code></a>
chore(deps): bump mcp-kotlin from 0.10.0 to 0.11.0 in
/samples/simple-streama...</li>
<li><a
href="4144db6736"><code>4144db6</code></a>
chore(deps): bump io.modelcontextprotocol:kotlin-sdk-client from 0.10.0
to 0....</li>
<li><a
href="3f7f499dbe"><code>3f7f499</code></a>
chore(deps): bump mcp-kotlin from 0.10.0 to 0.11.0 in
/samples/kotlin-mcp-ser...</li>
<li><a
href="7c87ed1ba5"><code>7c87ed1</code></a>
chore(deps): bump the kotest group with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/674">#674</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.0...0.11.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.11.0 to
0.11.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/releases">io.modelcontextprotocol:kotlin-sdk-server's
releases</a>.</em></p>
<blockquote>
<h2>0.11.1</h2>
<h3>Description</h3>
<p>Fixes an SSE stream crash on Netty when clients connect to the
Streamable HTTP GET endpoint.</p>
<h3>Fixed</h3>
<ul>
<li>Fixed GET SSE stream crash on Netty in Streamable HTTP where
<code>appendSseHeaders()</code> was called after response headers were
already committed, causing <code>UnsupportedOperationException</code>
and client retry loops by <a
href="https://github.com/devcrocod"><code>@​devcrocod</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/681">#681</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>mcp-kotlin to v0.11.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/672">#672</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/673">#673</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/675">#675</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/676">#676</a></li>
<li>Ktor BOM to v3.3.3 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/650">#650</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/653">#653</a>,
<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/656">#656</a></li>
<li>Kotest assertions to v6.1.11 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/674">#674</a></li>
<li>anthropic-java to v2.19.0 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/671">#671</a></li>
<li><code>@​modelcontextprotocol/sdk</code> to v1.29.0,
<code>@​types/node</code> update in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/677">#677</a></li>
<li>hono to v4.12.12 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/680">#680</a></li>
<li><code>@​hono/node-server</code> to v1.19.13 in <a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/pull/679">#679</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.0...0.11.1">https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.0...0.11.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f02f5d3d10"><code>f02f5d3</code></a>
release: bump mcp kotlin-sdk version to 0.11.1 (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/682">#682</a>)</li>
<li><a
href="8a7f9f8d31"><code>8a7f9f8</code></a>
fix(server): GET SSE stream crash on Netty in Streamable HTTP (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/681">#681</a>)</li>
<li><a
href="cceca4df58"><code>cceca4d</code></a>
chore(deps): bump io.ktor:ktor-bom from 3.2.3 to 3.3.3 in
/samples/kotlin-mcp...</li>
<li><a
href="12171dc2ec"><code>12171dc</code></a>
chore(deps): bump hono from 4.12.9 to 4.12.12 in
/integration-test/src/jvmTes...</li>
<li><a
href="66d17956c1"><code>66d1795</code></a>
chore(deps): bump <code>@​hono/node-server</code> from 1.19.11 to
1.19.13 in /integration-t...</li>
<li><a
href="8442ab852b"><code>8442ab8</code></a>
chore(deps): bump com.anthropic:anthropic-java from 2.18.0 to 2.19.0 in
/samp...</li>
<li><a
href="20ac69f9af"><code>20ac69f</code></a>
chore(deps): bump mcp-kotlin from 0.10.0 to 0.11.0 in
/samples/simple-streama...</li>
<li><a
href="4144db6736"><code>4144db6</code></a>
chore(deps): bump io.modelcontextprotocol:kotlin-sdk-client from 0.10.0
to 0....</li>
<li><a
href="3f7f499dbe"><code>3f7f499</code></a>
chore(deps): bump mcp-kotlin from 0.10.0 to 0.11.0 in
/samples/kotlin-mcp-ser...</li>
<li><a
href="7c87ed1ba5"><code>7c87ed1</code></a>
chore(deps): bump the kotest group with 3 updates (<a
href="https://redirect.github.com/modelcontextprotocol/kotlin-sdk/issues/674">#674</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/kotlin-sdk/compare/0.11.0...0.11.1">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-14 23:10:52 +00:00
..
gradle chore(deps): bump mcp-kotlin from 0.11.0 to 0.11.1 in /samples/weather-stdio-server (#702) 2026-04-14 23:10:52 +00: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