GitShow/modelcontextprotocol/kotlin-sdk
modelcontextprotocol

kotlin-sdk

The official Kotlin SDK for Model Context Protocol servers and clients. Maintained in collaboration with JetBrains

by modelcontextprotocol
kotlin-multiplatformmcp
Star on GitHubForkWebsite

Kotlin

1.4k stars240 forks56 contributorsActive · 3d agoSince 20240.15.0

Meet the team

See all 56 on GitHub →
dependabot[bot]Bot
dependabot[bot]232 contributions
devcrocod
devcrocod137 contributions
kpavlov
kpavlov88 contributions
e5l
e5l24 contributions
tiginamaria
tiginamaria10 contributions
ignatov
ignatov9 contributions
Mr3zee
Mr3zee9 contributions
jclyne
jclyne5 contributions

Languages

View on GitHub →
Kotlin98%
TypeScript1.7%
Shell0.3%

Commit activity

Last 12 weeks · 122 commits

Full graph →

Community health

5 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct○Issue Template✓PR Template

Recent PRs & issues

Active · Last activity 3d ago
See all on GitHub →
lArtiquel
fix(server): release the standalone GET stream on session teardownOpenPR

Fixes #922. parks on for the lifetime of the standalone GET stream. only called , which flushes and closes the response body but never cancels that coroutine, so the and its connection were never released — one leaked socket per completed session, as measured in the issue. already holds the , so this cancels its job alongside closing the session. Same assumption appeared a second time in the GET-replacement path, where the comment claimed cancels the old coroutine. It doesn't, so a client reconnecting its GET stream leaked the previous one the same way. Fixed and the comment corrected. Two tests, both failing before the change: one for teardown via , one for a replacement stream. Both assert the handler is still suspended before teardown, otherwise they'd pass vacuously — the client-side view can't catch this, since gives the client EOF while the server coroutine stays parked. , , and the JVM test suites pass.

lArtiquel · 6h ago
mikemikimike
fix(server): cancel mapped request jobs when closing transportOpenPR

Fixes #922 Summary Cancel the coroutine job associated with each mapped Streamable HTTP request when the transport closes. Cancel replaced standalone GET stream jobs and explicitly closed SSE stream jobs as well. Preserve the current caller job so stateless request cleanup can finish normally. Add a regression test proving that closing the transport cancels a standalone GET SSE handler. Test context All Gradle commands were run in because the host default JDK is 8. — passed, 229 tests, 0 failures, 0 errors. — passed. — passed. — passed across the configured JVM, JS, and native API targets. — passed. — passed.

mikemikimike · 10h ago
mikemikimike
fix(server): replay late initialization callbacksOpenPR

Summary Replay callbacks registered after . Preserve registration order for callbacks registered before initialization and make the state transition race-safe. Add a handshake-level regression test and document synchronous replay behavior. Fixes #920 Validation — passed — passed — passed — passed — passed — passed

mikemikimike · 10h ago
Structured data for AI agents

Repository: modelcontextprotocol/kotlin-sdk. Description: The official Kotlin SDK for Model Context Protocol servers and clients. Maintained in collaboration with JetBrains Stars: 1442, Forks: 240. Primary language: Kotlin. Languages: Kotlin (98%), TypeScript (1.7%), Shell (0.3%). Homepage: https://modelcontextprotocol.github.io/kotlin-sdk/ Topics: kotlin-multiplatform, mcp. Latest release: 0.15.0 (3w ago). Open PRs: 15, open issues: 67. Last activity: 3d ago. Community health: 87%. Top contributors: dependabot[bot], devcrocod, kpavlov, e5l, tiginamaria, ignatov, Mr3zee, jclyne, SeanChinJunKai, skarpovdev and others.

·@ofershap

Replace github.com with gitshow.dev