Commit graph

100 commits

Author SHA1 Message Date
Pavel Gorgulov
058bba110f
fix deploy for klibs (#153)
* fix deploy for klibs

- update gradle wrapper
- upgrade jreleaser to 1.19.0
- remove unused code in build.gradle

* remove unnecessary check for js

* exclude kotlinMultiplatform from publication overrides
2025-07-17 03:53:46 +00:00
Pavel Gorgulov
b6bbf40175
revert jreleaser to 1.17.0 and skip checksums (#150) 2025-07-16 18:51:40 +00:00
Pavel Gorgulov
41410033a8
Release 0.6.0 (#149) 0.6.0 2025-07-16 05:37:08 +00:00
Pavel Gorgulov
2a38e59bd3
Add streamable http client transport (#147)
* feat: add streamable http client

* update StreamableHttpClientTransport

* improve StreamableHttpClientTransport handling of headers, event parsing, and session termination

* add simple tests for StreamableClient and fix send

* add client mocking

* add notification e2e tests

---------

Co-authored-by: Zach Tang <zachtangoj@gmail.com>
2025-07-15 13:00:52 +00:00
Didier Villevalois
12f686fa4b
feat(server): add support for tool structured content and output schema (#146)
Fixes #139
2025-07-14 12:59:56 +00:00
Didier Villevalois
675cc73c6d
Add support for elicitation (#138)
* feat(client): add support for elicitation

Fixes #137

* feat(client): add a convenience method to set the elicitation handler
2025-07-11 12:46:57 +00:00
dependabot[bot]
609b52cf63
Bump org.gradle.toolchains.foojay-resolver-convention (#130)
Bumps org.gradle.toolchains.foojay-resolver-convention from 0.8.0 to 1.0.0.

---
updated-dependencies:
- dependency-name: org.gradle.toolchains.foojay-resolver-convention
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-09 06:49:33 +00:00
Pavel Gorgulov
29072527eb
atomic and persistent collections for thread safety (#143)
* Refactor handlers and collections to use atomic references: use persistent collections for thread safety

* refactor remove and add public tools/roots/prompts for server

---------

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-09 06:43:48 +00:00
Pavel Gorgulov
bd3cc4e1d2
refactor SseClientTransport (#142)
* refactor `SseClientTransport`

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* replace `Exception` with `Throwable` in `SseClientTransport` error handling and try/catch `cancel` in closeResources

---------

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-08 13:27:03 +00:00
dependabot[bot]
e9eb109e9b
Bump org.jreleaser from 1.17.0 to 1.19.0 (#141)
Bumps org.jreleaser from 1.17.0 to 1.19.0.

---
updated-dependencies:
- dependency-name: org.jreleaser
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 11:16:55 +00:00
dependabot[bot]
badbee8ef5
Bump gradle/actions from 4.0.0 to 4.4.1 (#122)
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.0.0 to 4.4.1.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](af1da67850...ac638b010c)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: 4.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-07 11:02:05 +00:00
dependabot[bot]
9d2b5e1c03
Bump ktor from 3.1.3 to 3.2.1 (#140)
Bumps `ktor` from 3.1.3 to 3.2.1.

Updates `io.ktor:ktor-client-cio` from 3.1.3 to 3.2.1
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.1.3...3.2.1)

Updates `io.ktor:ktor-server-sse` from 3.1.3 to 3.2.1
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.1.3...3.2.1)

Updates `io.ktor:ktor-server-websockets` from 3.1.3 to 3.2.1
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.1.3...3.2.1)

Updates `io.ktor:ktor-server-cio` from 3.1.3 to 3.2.1
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.1.3...3.2.1)

Updates `io.ktor:ktor-server-test-host` from 3.1.3 to 3.2.1
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.1.3...3.2.1)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-cio
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.ktor:ktor-server-sse
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.ktor:ktor-server-websockets
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.ktor:ktor-server-cio
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.ktor:ktor-server-test-host
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-07 10:01:10 +00:00
SeanChinJunKai
89c20379ab
feat: add tool annotations according to 2025-03-26 spec (#71)
* feat: add tool annotations

* chore: commit api dump

* fix import and api

---------

Co-authored-by: devcrocod <devcrocod@gmail.com>
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-07 06:52:16 +00:00
Pavel Gorgulov
ed842e5255
Add labels to dependabot configuration for Kotlin and GitHub Actions (#135)
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-06 15:57:47 +00:00
shendaxia
958e5e5ee9
sse server does not process endpoint correctly when sse path is not a directory (#43)
* fix SSEClientTransport endpoint process with none directory sse path

* fix SSEClientTransport endpoint process with none directory sse path

* Refactor `SseTransportTest` to use `route` for better clarity and update server handling with suspend functions.

---------

Co-authored-by: tpp-builder <tpp-builder@alibaba-inc.com>
Co-authored-by: devcrocod <devcrocod@gmail.com>
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-04 12:21:11 +00:00
adamglin0
aa00fc3d5e
Remove fixed suffix /sse (#108)
* Simplify URL handling in SSE client transport.

* fix the sse integration test

---------

Co-authored-by: devcrocod <devcrocod@gmail.com>
2025-07-04 12:40:00 +02:00
dependabot[bot]
1bd9734c6a
Bump io.mockk:mockk from 1.13.13 to 1.14.4 (#133)
Bumps [io.mockk:mockk](https://github.com/mockk/mockk) from 1.13.13 to 1.14.4.
- [Release notes](https://github.com/mockk/mockk/releases)
- [Commits](https://github.com/mockk/mockk/compare/1.13.13...1.14.4)

---
updated-dependencies:
- dependency-name: io.mockk:mockk
  dependency-version: 1.14.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 16:10:16 +00:00
dependabot[bot]
1990ac406c
Bump org.jetbrains.kotlinx:kotlinx-serialization-json (#132)
Bumps [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kotlin/kotlinx.serialization/compare/v1.8.1...v1.9.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 16:03:48 +00:00
dependabot[bot]
85db834ae8
Bump org.slf4j:slf4j-simple from 2.0.16 to 2.0.17 (#131)
Bumps org.slf4j:slf4j-simple from 2.0.16 to 2.0.17.

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-simple
  dependency-version: 2.0.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 10:59:53 +00:00
Didier Villevalois
a464ea336d
feat(client): add roots addition/removal API and listRoots handler (#118) 2025-06-30 07:14:28 +00:00
Pavel Gorgulov
d79569d703
update kotlin to 2.2.0 and ktor to 3.1.3 (#120)
* update kotlin to 2.2.0 and ktor to 3.1.3

* api dump: add `typeParametersSerializers` to all synthetic serializers
2025-06-27 11:15:16 +00:00
dependabot[bot]
d351690af3
Bump org.jetbrains.kotlinx.binary-compatibility-validator (#125)
Bumps [org.jetbrains.kotlinx.binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) from 0.17.0 to 0.18.0.
- [Release notes](https://github.com/Kotlin/binary-compatibility-validator/releases)
- [Commits](https://github.com/Kotlin/binary-compatibility-validator/compare/0.17.0...0.18.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlinx.binary-compatibility-validator
  dependency-version: 0.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-27 09:43:52 +00:00
dependabot[bot]
a0fac0d5c9
Bump io.github.oshai:kotlin-logging from 7.0.0 to 7.0.7 (#126)
Bumps [io.github.oshai:kotlin-logging](https://github.com/oshai/kotlin-logging) from 7.0.0 to 7.0.7.
- [Release notes](https://github.com/oshai/kotlin-logging/releases)
- [Changelog](https://github.com/oshai/kotlin-logging/blob/master/ChangeLog-old.md)
- [Commits](https://github.com/oshai/kotlin-logging/compare/7.0.0...7.0.7)

---
updated-dependencies:
- dependency-name: io.github.oshai:kotlin-logging
  dependency-version: 7.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-26 08:57:53 +00:00
dependabot[bot]
6d89a946f2
Bump org.jetbrains.kotlinx:kotlinx-serialization-json (#127)
Bumps [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization) from 1.7.3 to 1.8.1.
- [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kotlin/kotlinx.serialization/compare/v1.7.3...v1.8.1)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json
  dependency-version: 1.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-26 07:02:04 +00:00
Stefan M.
c97341aa06
Add dependabot (#121) 2025-06-25 19:02:06 +00:00
Pavel Gorgulov
0cff2ca718
add ios and wasm targets (#81)
* add wasm and ios targets

* add yarn.lock file to gitignore

* clean up code

* fix typo in method name

* add wasm server example

* update jrelease publishing for klibs

* update gradle-publish workflow to use macos runner

* update README to reflect multiplatform support and clarify server setup for JVM and WASM

* remove the old main file from the kotlin-mcp-server example

* update api dump

* Refactor `build.gradle.kts`

* clean up imports and remove unnecessary charset specification in tests

* add JS target configuration and update API dump
2025-05-29 05:01:50 +00:00
adamglin0
7ce665b931
fix: Remove @SerialName annotation for inputSchema (#105)
* Remove unused @SerialName annotation for inputSchema

* update test
2025-05-27 07:03:31 +00:00
Vaibhav Raj
782b525f27
nit: apply requestBuilder headers when rpc messages (#96)
fixes: #63

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-05-13 13:36:41 +00:00
Theeraphol Wattanavekin
5fa378c49d
Make McpJson public to allow flexible protocol development (#103) 2025-05-13 06:54:57 +00:00
shiqicao
fb568bbcab
fix(client) add encodeDefault for field with non spec default value (#99)
* fix(client) add encodeDefault for field with non spec default value

* add test
2025-05-09 06:52:40 +00:00
shiqicao
9341f1e42f
fix(client): serialize inputSchema as input_schema (#97) 2025-05-06 06:39:12 +00:00
SeanChinJunKai
9f00f22596
feat: Add audio type according to 2025-03-26 spec (#68)
* feat: Add audio type according to 2025-03-26 spec

* chore: update documentation

* feat: add unit test

* chore: commit api dump

* feat: Add audio type according to 2025-03-26 spec

* chore: update documentation

* feat: add unit test

* chore: rebase and commit api dump

---------

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-04-30 12:58:05 +00:00
Leonid Stashevsky
c582a8c442
Disable configuration cache to fix jreleaser issue (#92)
* Update jreleaser to fix publication issue

* Disable configuration cache
2025-04-30 09:49:26 +00:00
Leonid Stashevsky
937681e8fa
Update jreleaser to fix publication issue (#91) 2025-04-30 09:25:07 +00:00
Leonid Stashevsky
f42fcecebe
Release 0.5.0 (#90) 0.5.0 2025-04-30 07:49:34 +00:00
SeanChinJunKai
b60e12af8f
feat: add message field to ProgressNotification according to 2025-03-26 spec (#69)
* feat: add message field to ProgressNotification to provide descriptive status updates

* chore: commit api dump

---------

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-04-30 07:42:19 +00:00
Stream
129731c34c
feat(server): add utility functions for CallToolResult (#73)
* feat(server): add utility functions for CallToolResult

CallToolResult.Companion.ok and CallToolResult.Companion.error

* test(server): add unit test for `CallToolResult.Companion.ok`and `CallToolResult.Companion.error`

* feat: update api dump

---------

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-04-30 04:34:43 +00:00
JiHwan Oh
d7b31aa37b
feat(server): Support removing tools, prompts and resources (#85)
* Add removing APIs for tools, prompts and resources

* Add remove tests

* API dump
2025-04-30 04:30:16 +00:00
Marcos Souza
c3efd65379
fix: Add build jar configuration (#86)
Add jar config to build aplication with correct Main-Class into MANIFEST.MF
2025-04-29 12:13:19 +00:00
Konstantin Aleev
dc5c155761
Skip empty lines (#89) 2025-04-29 12:09:03 +00:00
Stepan Goncharov
9b5c69fa5b
Gradle 8.13 + flags tuning (#75)
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-04-26 10:54:56 +00:00
Pavel Gorgulov
63a50c1bf4
Update to Kotlin 2.1.20 and minor refactoring (#78)
* update kotlin version to 2.1.20

* change atomics from atomicfu to kotlin.concurrent

* refactor to use the writechannel

* cancel job and close channel
2025-04-17 09:54:08 +00:00
SeanChinJunKai
63288ea63a
Add specific error handling for client connect (#64)
* feat: add specific error handling for client connect

* chore: fix typo

* feat(tests): Add unit test for client connect function

* feat: remove else block to improve readability

* feat: remove unneeded file

* feat: revert change to misc.xml

---------

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-04-10 14:23:35 +00:00
Pavel Gorgulov
a4d765cf94
Refactor for simplify JSON object construction for input schemas using buildJsonObject (#65) 2025-04-02 09:23:26 +00:00
Pavel Gorgulov
1c5e54936d
Refactor onCloseCallback to onClose and update related usages across the codebase (#62) 2025-03-26 14:04:28 +00:00
Leonid Stashevsky
0f3adfdd14
Release 0.4.0 (#61) 0.4.0 2025-03-26 11:36:43 +00:00
Pavel Gorgulov
68faa51235
Remove CompletableDeferred (#57)
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-03-26 11:31:22 +00:00
이용진
1fbf819ac5
Change ErrorCodeSerializer descriptor kind (#54)
* Change descriptor to INT for correct serialization

* Remove @OptIn(ExperimentalSerializationApi::class)

bacause The opt-in annotation is redundant: no matching experimental API is used

---------

Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-03-26 09:05:43 +00:00
Abdullatif Ghajar
be4f9c37e0
Test and fix #52 (#53)
* Add test to reproduce #52

* Solve issue #52 by improving url handling in SseClientTransport

* Remove unnecessary url processing

---------

Co-authored-by: Abdullatif.Ghajar <abdullatif.ghajar@jetbrains.com>
2025-03-26 08:29:48 +00:00
Leland Takamine
b0532d9e9b
Support consumers that require Java 8 (#60) 2025-03-26 08:23:09 +00:00