Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion samples/kotlinlang-mcp-server/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
kotlin = "2.4.20"
ktor = "3.5.2"
ktor = "3.6.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Problem: kotlinlang-mcp-server is missing from the matrix.sample lists in both .github/workflows/samples.yml and .github/workflows/build.yml (each lists only kotlin-mcp-client, kotlin-mcp-server, simple-streamable-server, weather-stdio-server). No CI job ever compiles or tests this sample, so every green check on this PR covers code the PR does not touch, and the one line it does change is unverified.

Failure scenario: the Ktor 3.5.2 → 3.6.0 minor touches ContentNegotiation (Accept entries with q=0 are now rejected), auth, and SSE. If it breaks compilation or the Streamable HTTP endpoint in this sample, this PR still merges green and the breakage surfaces only when someone clones the sample — the same blind spot the ~20 earlier dependency bumps to this directory landed through.

Suggested fix: add - kotlinlang-mcp-server to the matrix.sample list in .github/workflows/samples.yml and .github/workflows/build.yml (a follow-up PR is fine — the sample's unit tests use mocked HTTP clients and MapApplicationConfig, so no Algolia secrets are needed for ./gradlew build). Until that lands, run ./gradlew build in samples/kotlinlang-mcp-server locally before merging this bump.

Non-blocking.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verification update on the local-build advice above: I ran ./gradlew build in samples/kotlinlang-mcp-server against both ktor = "3.5.2" and ktor = "3.6.0" (JDK 21 toolchain).

The bump itself is clean. Compiles, installDist works, the server boots, and a live Streamable HTTP smoke test over Ktor 3.6.0 passes: initialize → 200 + mcp-session-id, notifications/initialized → 202, tools/list returns both tools, and the GET /mcp SSE stream opens with text/event-stream. The CORS + ContentNegotiation + SSE + Netty combination this sample uses is unaffected by the 3.6.0 changes.

But the build is red for an unrelated, pre-existing reason — worth knowing before you act on a BUILD FAILED:

KotlinlangServerTest > server registers both tools with correct schema and annotations() FAILED
    io.modelcontextprotocol.kotlin.sdk.types.McpException: Request timed out
    ERROR i.m.kotlin.sdk.shared.Protocol - Request timed out after 60000ms: Initialize

55/56 tests pass; this one fails identically on 3.5.2, so it is not caused by this PR. The path involves no Ktor at all — it is ChannelTransport.createLinkedPair() + Client.connect() under runTest, where the SDK's 60 s initialize timeout fires immediately in virtual time.

Suggested handling: merge this bump on its own merits, and track the KotlinlangServerTest initialize timeout as a separate issue (alongside adding kotlinlang-mcp-server to the CI matrices, which is why neither problem was visible here).


Produced by Air Automations. Name: Code review / Run: https://air.jetbrains.cloud/org/05cf1a7f-6ab5-713b-abd3-29d0c8a05e2d/automations/409567ec-d3a7-40ac-ba95-8518ec577ac2?run=0a8d01a9-719b-4c78-a279-9fa66a41b229

mcp-kotlin = "0.15.0"
serialization = "1.11.0"
coroutines = "1.11.0"
Expand Down
Loading