kotlin-sdk/samples/simple-streamable-server
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dependabot[bot] 309d88fe1d
chore(deps): bump the other-dependencies group across 2 directories with 3 updates (#897)
Bumps the other-dependencies group with 2 updates in the
/samples/kotlinlang-mcp-server directory:
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) and
[com.gradleup.shadow](https://github.com/GradleUp/shadow).
Bumps the other-dependencies group with 2 updates in the
/samples/simple-streamable-server directory:
[com.gradleup.shadow](https://github.com/GradleUp/shadow) and
[org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework).

Updates `ch.qos.logback:logback-classic` from 1.5.37 to 1.5.38
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's
releases</a>.</em></p>
<blockquote>
<h2>Logback 1.5.38</h2>
<p><strong>2026-07-09 Release of logback version 1.5.38</strong></p>
<p>• In <code>HardenedObjectInputStream</code>, fixed a typo preventing
<code>Throwable</code> objects from being white-filtered. This issue was
reported in [PR <a
href="https://redirect.github.com/qos-ch/logback/issues/1045">#1045</a>](<a
href="https://redirect.github.com/qos-ch/logback/pull/1045">qos-ch/logback#1045</a>)
by <a href="https://github.com/t0rchwo0d">t0rchwo0d</a>.</p>
<p>• A bitwise identical binary of this version can be reproduced by
building from source code at commit
d04984a41fce42977466f45a2f076f0ee5cc4207 associated with the tag
v_1.5.38. Release built using Java &quot;21&quot; 2023-10-17 LTS build
21.0.1.+12-LTS-29 under Linux Debian 11.6.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d04984a41f"><code>d04984a</code></a>
prepare release 1.5.38</li>
<li><a
href="4fffda6549"><code>4fffda6</code></a>
updateversion of maven-gpg-plugin</li>
<li><a
href="7ee48a17be"><code>7ee48a1</code></a>
Fixed a typo where java,lang.Throwable was written with a comma instead
of a ...</li>
<li><a
href="84580a24e6"><code>84580a2</code></a>
remove license profile</li>
<li><a
href="f817c8de7d"><code>f817c8d</code></a>
start work on 1.5.28-SNAPSHOT</li>
<li>See full diff in <a
href="https://github.com/qos-ch/logback/compare/v_1.5.37...v_1.5.38">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.gradleup.shadow` from 9.5.1 to 9.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.6.0</h2>
<h3>Added</h3>
<ul>
<li>Extract R8 rules from dependency JARs when using <code>minimize { r8
{ ... } }</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2089">#2089</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Rename <code>ShadowDslMarker</code> to <code>ShadowDsl</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2091">#2091</a>)</li>
<li><strong>POTENTIALLY BREAKING:</strong> Apply <code>@ShadowDsl</code>
to <code>ShadowJar</code>, <code>ResourceTransformer</code>,
<code>DependencyFilter</code>, and <code>Relocator</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2090">#2090</a>)<br
/>
This restricts nested DSL configuration blocks from implicitly calling
outer receiver APIs in Kotlin script files.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Validate ZIP entry names to prevent Zip Slip path traversal.</li>
<li>Avoid resolving unused R8 dependency. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2101">#2101</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fb3666804b"><code>fb36668</code></a>
Prepare version 9.6.0</li>
<li><a
href="9e5c06d226"><code>9e5c06d</code></a>
Test relocation of ModuleMainClass in module-info (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2109">#2109</a>)</li>
<li><a
href="e37770cd4f"><code>e37770c</code></a>
Test relocation of nested class signatures (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2108">#2108</a>)</li>
<li><a
href="74792f7ba4"><code>74792f7</code></a>
Add unit tests for internal components (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2107">#2107</a>)</li>
<li><a
href="b5908197f5"><code>b590819</code></a>
Avoid resolving unused R8 dependency (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2101">#2101</a>)</li>
<li><a
href="1dd8db498c"><code>1dd8db4</code></a>
Update plugin android-lint to v9.3.0 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2104">#2104</a>)</li>
<li><a
href="083a01a712"><code>083a01a</code></a>
Defer shadowR8 configuration (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2100">#2100</a>)</li>
<li><a
href="1ce486dc5c"><code>1ce486d</code></a>
Update kotlin monorepo to v2.4.10 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2103">#2103</a>)</li>
<li><a
href="c89473ef4a"><code>c89473e</code></a>
Test allowing custom ShadowJar without shadowR8 registered (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2102">#2102</a>)</li>
<li><a
href="f23f5c9521"><code>f23f5c9</code></a>
Update dependency org.junit:junit-bom to v6.1.2 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2098">#2098</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/GradleUp/shadow/compare/9.5.1...9.6.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.gradleup.shadow` from 9.5.1 to 9.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.6.0</h2>
<h3>Added</h3>
<ul>
<li>Extract R8 rules from dependency JARs when using <code>minimize { r8
{ ... } }</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2089">#2089</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Rename <code>ShadowDslMarker</code> to <code>ShadowDsl</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2091">#2091</a>)</li>
<li><strong>POTENTIALLY BREAKING:</strong> Apply <code>@ShadowDsl</code>
to <code>ShadowJar</code>, <code>ResourceTransformer</code>,
<code>DependencyFilter</code>, and <code>Relocator</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2090">#2090</a>)<br
/>
This restricts nested DSL configuration blocks from implicitly calling
outer receiver APIs in Kotlin script files.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Validate ZIP entry names to prevent Zip Slip path traversal.</li>
<li>Avoid resolving unused R8 dependency. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2101">#2101</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fb3666804b"><code>fb36668</code></a>
Prepare version 9.6.0</li>
<li><a
href="9e5c06d226"><code>9e5c06d</code></a>
Test relocation of ModuleMainClass in module-info (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2109">#2109</a>)</li>
<li><a
href="e37770cd4f"><code>e37770c</code></a>
Test relocation of nested class signatures (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2108">#2108</a>)</li>
<li><a
href="74792f7ba4"><code>74792f7</code></a>
Add unit tests for internal components (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2107">#2107</a>)</li>
<li><a
href="b5908197f5"><code>b590819</code></a>
Avoid resolving unused R8 dependency (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2101">#2101</a>)</li>
<li><a
href="1dd8db498c"><code>1dd8db4</code></a>
Update plugin android-lint to v9.3.0 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2104">#2104</a>)</li>
<li><a
href="083a01a712"><code>083a01a</code></a>
Defer shadowR8 configuration (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2100">#2100</a>)</li>
<li><a
href="1ce486dc5c"><code>1ce486d</code></a>
Update kotlin monorepo to v2.4.10 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2103">#2103</a>)</li>
<li><a
href="c89473ef4a"><code>c89473e</code></a>
Test allowing custom ShadowJar without shadowR8 registered (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2102">#2102</a>)</li>
<li><a
href="f23f5c9521"><code>f23f5c9</code></a>
Update dependency org.junit:junit-bom to v6.1.2 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2098">#2098</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/GradleUp/shadow/compare/9.5.1...9.6.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.gradleup.shadow` from 9.5.1 to 9.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.6.0</h2>
<h3>Added</h3>
<ul>
<li>Extract R8 rules from dependency JARs when using <code>minimize { r8
{ ... } }</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2089">#2089</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Rename <code>ShadowDslMarker</code> to <code>ShadowDsl</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2091">#2091</a>)</li>
<li><strong>POTENTIALLY BREAKING:</strong> Apply <code>@ShadowDsl</code>
to <code>ShadowJar</code>, <code>ResourceTransformer</code>,
<code>DependencyFilter</code>, and <code>Relocator</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2090">#2090</a>)<br
/>
This restricts nested DSL configuration blocks from implicitly calling
outer receiver APIs in Kotlin script files.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Validate ZIP entry names to prevent Zip Slip path traversal.</li>
<li>Avoid resolving unused R8 dependency. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2101">#2101</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fb3666804b"><code>fb36668</code></a>
Prepare version 9.6.0</li>
<li><a
href="9e5c06d226"><code>9e5c06d</code></a>
Test relocation of ModuleMainClass in module-info (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2109">#2109</a>)</li>
<li><a
href="e37770cd4f"><code>e37770c</code></a>
Test relocation of nested class signatures (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2108">#2108</a>)</li>
<li><a
href="74792f7ba4"><code>74792f7</code></a>
Add unit tests for internal components (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2107">#2107</a>)</li>
<li><a
href="b5908197f5"><code>b590819</code></a>
Avoid resolving unused R8 dependency (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2101">#2101</a>)</li>
<li><a
href="1dd8db498c"><code>1dd8db4</code></a>
Update plugin android-lint to v9.3.0 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2104">#2104</a>)</li>
<li><a
href="083a01a712"><code>083a01a</code></a>
Defer shadowR8 configuration (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2100">#2100</a>)</li>
<li><a
href="1ce486dc5c"><code>1ce486d</code></a>
Update kotlin monorepo to v2.4.10 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2103">#2103</a>)</li>
<li><a
href="c89473ef4a"><code>c89473e</code></a>
Test allowing custom ShadowJar without shadowR8 registered (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2102">#2102</a>)</li>
<li><a
href="f23f5c9521"><code>f23f5c9</code></a>
Update dependency org.junit:junit-bom to v6.1.2 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2098">#2098</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/GradleUp/shadow/compare/9.5.1...9.6.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `org.junit.jupiter:junit-jupiter` from 6.1.1 to 6.1.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/junit-team/junit-framework/releases">org.junit.jupiter:junit-jupiter's
releases</a>.</em></p>
<blockquote>
<p>JUnit 6.1.2 = Platform 6.1.2 + Jupiter 6.1.2 + Vintage 6.1.2</p>
<p>See <a href="https://docs.junit.org/6.1.2/release-notes.html">Release
Notes</a>.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/junit-team/junit-framework/compare/r6.1.1...r6.1.2">https://github.com/junit-team/junit-framework/compare/r6.1.1...r6.1.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b6854269ee"><code>b685426</code></a>
Release 6.1.2</li>
<li><a
href="ae244a6936"><code>ae244a6</code></a>
Remove blanket outputDirectoryCreator from SuiteEngineTests (<a
href="https://redirect.github.com/junit-team/junit-framework/issues/5793">#5793</a>)</li>
<li><a
href="43bd154163"><code>43bd154</code></a>
Finalize 6.1.2 release notes</li>
<li><a
href="0cd9510637"><code>0cd9510</code></a>
Fix order of release note sections</li>
<li><a
href="a1507cbaf4"><code>a1507cb</code></a>
Add initial 6.1.2 release notes to release notes index</li>
<li><a
href="932664186b"><code>9326641</code></a>
Fix NoTestsDiscoveredException for suites containing only dynamic tests
(<a
href="https://redirect.github.com/junit-team/junit-framework/issues/5839">#5839</a>)</li>
<li><a
href="2ef11234dc"><code>2ef1123</code></a>
Create initial 6.1.2 release notes from template</li>
<li><a
href="83fa9ab372"><code>83fa9ab</code></a>
Back to snapshots for further development</li>
<li>See full diff in <a
href="https://github.com/junit-team/junit-framework/compare/r6.1.1...r6.1.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `com.gradleup.shadow` from 9.5.1 to 9.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GradleUp/shadow/releases">com.gradleup.shadow's
releases</a>.</em></p>
<blockquote>
<h2>9.6.0</h2>
<h3>Added</h3>
<ul>
<li>Extract R8 rules from dependency JARs when using <code>minimize { r8
{ ... } }</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2089">#2089</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Rename <code>ShadowDslMarker</code> to <code>ShadowDsl</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2091">#2091</a>)</li>
<li><strong>POTENTIALLY BREAKING:</strong> Apply <code>@ShadowDsl</code>
to <code>ShadowJar</code>, <code>ResourceTransformer</code>,
<code>DependencyFilter</code>, and <code>Relocator</code>. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2090">#2090</a>)<br
/>
This restricts nested DSL configuration blocks from implicitly calling
outer receiver APIs in Kotlin script files.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Validate ZIP entry names to prevent Zip Slip path traversal.</li>
<li>Avoid resolving unused R8 dependency. (<a
href="https://redirect.github.com/GradleUp/shadow/pull/2101">#2101</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fb3666804b"><code>fb36668</code></a>
Prepare version 9.6.0</li>
<li><a
href="9e5c06d226"><code>9e5c06d</code></a>
Test relocation of ModuleMainClass in module-info (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2109">#2109</a>)</li>
<li><a
href="e37770cd4f"><code>e37770c</code></a>
Test relocation of nested class signatures (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2108">#2108</a>)</li>
<li><a
href="74792f7ba4"><code>74792f7</code></a>
Add unit tests for internal components (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2107">#2107</a>)</li>
<li><a
href="b5908197f5"><code>b590819</code></a>
Avoid resolving unused R8 dependency (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2101">#2101</a>)</li>
<li><a
href="1dd8db498c"><code>1dd8db4</code></a>
Update plugin android-lint to v9.3.0 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2104">#2104</a>)</li>
<li><a
href="083a01a712"><code>083a01a</code></a>
Defer shadowR8 configuration (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2100">#2100</a>)</li>
<li><a
href="1ce486dc5c"><code>1ce486d</code></a>
Update kotlin monorepo to v2.4.10 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2103">#2103</a>)</li>
<li><a
href="c89473ef4a"><code>c89473e</code></a>
Test allowing custom ShadowJar without shadowR8 registered (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2102">#2102</a>)</li>
<li><a
href="f23f5c9521"><code>f23f5c9</code></a>
Update dependency org.junit:junit-bom to v6.1.2 (<a
href="https://redirect.github.com/GradleUp/shadow/issues/2098">#2098</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/GradleUp/shadow/compare/9.5.1...9.6.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 13:58:22 +02:00
..
gradle chore(deps): bump the other-dependencies group across 2 directories with 3 updates (#897) 2026-07-21 13:58:22 +02:00
src samples: update mcp-kotlin to 0.10.0 across sample projects (#645) 2026-03-30 23:47:31 +03:00
build.gradle.kts samples: update mcp-kotlin to 0.10.0 across sample projects (#645) 2026-03-30 23:47:31 +03:00
gradle.properties docs: streamable server sample (#595) 2026-03-10 12:45:21 +01:00
gradlew chore(deps): bump the other-dependencies group across 5 directories with 3 updates (#854) 2026-06-24 15:31:46 +02:00
gradlew.bat chore(deps): bump the other-dependencies group across 5 directories with 3 updates (#854) 2026-06-24 15:31:46 +02:00
README.md docs: streamable server sample (#595) 2026-03-10 12:45:21 +01:00
settings.gradle.kts docs: streamable server sample (#595) 2026-03-10 12:45:21 +01:00

Simple Streamable HTTP Server

A minimal MCP server using the recommended Streamable HTTP transport with optional Bearer token authentication.

Overview

This sample demonstrates a Streamable HTTP MCP server built with Ktor. It exposes tools, a prompt template, and a resource over HTTP, and optionally supports Bearer token authentication. The multi-greet tool showcases server-to-client logging notifications with streaming delays.

Prerequisites

  • JDK 17+

Build & Run

Without authentication

./gradlew run

The server starts on http://localhost:3001/mcp by default.

Connect with the MCP Inspector:

npx @modelcontextprotocol/inspector

In the Inspector UI, select Streamable HTTP transport and enter http://localhost:3001/mcp.

Pass a port number as an argument to change it:

./gradlew run --args="8080"

With authentication

MCP_AUTH_TOKEN=my-secret ./gradlew run --args="--auth"

When --auth is passed, clients must include an Authorization: Bearer <token> header. The token is read from the MCP_AUTH_TOKEN environment variable (required when --auth is used).

Authentication caveats

This sample is intended for demonstration only. In production you should:

  • Use a proper identity provider instead of a static token.
  • Restrict CORS origins to your deployment domain — the sample allows all origins.
  • Serve the endpoint over HTTPS.

MCP Capabilities

Tools

Name Description
greet Returns a greeting for a given name.
multi-greet Sends logging notifications between delayed greetings, demonstrating streaming.

Prompts

Name Description
greeting-template Generates a friendly greeting message for a given name.

Resources

Name URI Description
Default Greeting https://example.com/greetings/default Returns a static "Hello, world!" text.