Commit graph kotlin-sdk/build.gradle.kts
Author SHA1 Message Date
Konstantin Pavlov
2da14b0f2e
#302 Update samples build workflow (#330)
# #302 Update samples build workflow

- Introduce workflow to build samples independently from the main
project
- Keep building samples against the current snapshot version of the SDK.
Update composite build configuration.
- Temporarily disable "samples/kotlin-mcp-server": the multiplatform
project is broken. **It doesn't compile for me even on the main
branch**. Not working with [MCP
Instepcor](https://modelcontextprotocol.io/docs/tools/inspector),
because CORS is not configured. Deserves a separate PR to fix.

## Motivation and Context

Samples should be independently buildable

## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Build improvement
- [x] Tests

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-10-23 13:02:22 +03:00
Konstantin Pavlov
79bfed07dc
Update badges in README and set version to 0.7.4-SNAPSHOT (#326)
Update badges in README and set version to 0.7.4-SNAPSHOT

Not updating the version of sample projects because of #302 

## Motivation and Context
<!-- Why is this change needed? What problem does it solve? -->

## How Has This Been Tested?
<!-- Have you tested this in a real application? Which scenarios were
tested? -->

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-10-22 13:59:17 +03:00
Konstantin Pavlov
eb2a2b53da
Release 0.7.3 (#325)
Release 0.7.3

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-10-21 18:57:18 +03:00
Konstantin Pavlov
d962e28ff7
Generate MCP classes with OpenAPI Generator (#294)
- Add OpenAPI Generator to build system to automatically generate MCP
protocol data classes from the official schema.
- Configure code quality tools to exclude generated files
- Add deserialization test

## Motivation and Context

Writing classes by hand is error-prone, when json schema exists. See
#185,
Also, autogenerating model classes ensures the SDK is in sync with the
protocol and can quickly catch up with its changes (see #218)

## How Has This Been Tested?
Regression tests

## Breaking Changes
No

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-09-29 12:34:32 +03:00
Pavel Gorgulov
7e45708c78
Release 0.7.2 (#285)
prepare new release 0.7.2
2025-09-19 17:08:27 +02:00
Pavel Gorgulov
ac3d7709cf
Prepare prerelease 0.7.2-alpha3 (#284)
Prepare new prerelease. Bump version to 0.7.2-alpha3
2025-09-19 15:58:52 +02:00
Pavel Gorgulov
5fe1975ec5
Prepare prerelease 0.7.2-alpha2 (#282)
Bump version to 0.7.2-alpha2

## Motivation and Context
New prerelease version with signing fixes 

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
2025-09-19 13:11:59 +02:00
Pavel Gorgulov
77357a1d22
Prerelease 0.7.2-alpha1 (#278)
## Motivation and Context
- test new publish plugin
- add package.kt to kotlin-sdk umbrella module to resolve klib
generation errors during Maven publishing


## Breaking Changes
no

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
2025-09-18 15:18:12 +02:00
Konstantin Pavlov
cdda68577c
#196 Update build configuration and workflows for enhanced local publ… (#275)
#196 Update build configuration and workflows for enhanced local
publishing and sample builds

- Add `mavenLocal()` to repository configuration in sample projects.
- Update dependencies to distinguish between `mcp.kotlin.client` and
`mcp.kotlin.server`.
- Include `JAVA_OPTS` for optimized memory usage in GitHub workflow.
- Enhance build workflow to include local publishing and build steps for
sample projects.
- Add package-lock.json for Kotlin JS/WASM Store
- Switch to SNAPSHOT versions by default

## Motivation and Context

#196 Samples MUST be validated as part of the build

## How Has This Been Tested?

```sh
./gradlew :kotlin-sdk-core:publishToMavenLocal
./gradlew :kotlin-sdk-client:publishToMavenLocal
./gradlew :kotlin-sdk-server:publishToMavenLocal
( cd ./samples/kotlin-mcp-client && ./../../gradlew clean build )
( cd ./samples/kotlin-mcp-server && ./../../gradlew clean build )
( cd ./samples/weather-stdio-server && ./../../gradlew clean build )
```

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-09-16 21:43:50 +03:00
Pavel Gorgulov
e0da2a8e92
Patch release 0.7.1 (#268)
Bump version to 0.7.1

## How Has This Been Tested?
Locally

## Breaking Changes
-

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed
2025-09-15 20:48:46 +02:00
Konstantin Pavlov
557bc5ef6a
Add module documentation and enhance Dokka configuration (#261)
##  #252 Add module documentation and enhance Dokka configuration

## How Has This Been Tested?

`./gradlew :docs:dokkaGenerate`

## Changes

- Add workflow to build and publish API documentation with Dokka
- Introduce `.github/workflows/apidocs.yaml` to build and deploy API
docs on `main` and release events.
  - Configure Gradle for Dokka builds and update project dependencies.
  - Include `:docs` module in project settings.
- Introduce `Module.md` for `kotlin-sdk-server`, `kotlin-sdk-client`,
and `kotlin-sdk-core` modules.
- Update `.gitignore` to include `.idea/icon.png` and add placeholder
icon files
- Remove outdated documentation HTML files

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [ ] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [x] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->

---------

Co-authored-by: devcrocod <devcrocod@gmail.com>
2025-09-15 17:44:43 +02:00
Pavel Gorgulov
dbfb62b517
Release 0.7.0 (#254)
Prepare new release 0.7.0
2025-09-11 15:34:12 +02:00
Konstantin Pavlov
6b5f7a7345
Add Kover check (#250)
## Motivation and Context

Make sure, that code is properly tested

## How Has This Been Tested?

Run `./gradlew clean ktlintCheck build koverVerify koverLog
koverHtmlReport` on CI

## Changes

- Integrate Kover plugin for code coverage analysis
- Publish Html report
- Run `./gradlew clean ktlintCheck build koverVerify koverLog
koverHtmlReport` on CI

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [x] Build tooling update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [ ] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [ ] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed

## Additional context
<!-- Add any other context, implementation notes, or design decisions
-->
2025-09-11 13:43:12 +03:00
Pavel Gorgulov
91cf1205af
Add ktlint (#213)
* Add ktlint

* Simplify `initClient` function and clean imports in SseIntegrationTest.
2025-08-05 13:10:44 +00:00
Pavel Gorgulov
8698b96dd2
modularize sdk (#208)
* Modularize SDK: migrated client and server implementations to separate modules. Removed old configuration files and reorganized the source code structure

* add support native targets and update js/wasm configurations

* Refactor sample projects: add samples as composite builds, replace hardcoded dependencies with version catalog, remove obsolete gradle wrapper files

* Update .gitignore: exclude SWE agent directories (.claude/ and .junie/)

* Refine CodeQL workflow: update Kotlin build steps to target individual modules separately instead of building all at once
2025-08-04 11:53:38 +02:00
Pavel Gorgulov
b19d9f1746
fix key name (#181) 2025-07-21 14:37:22 +00:00
Pavel Gorgulov
39cf8ea086
fix signing (#179)
* Workaround for signing artifacts in CI

* Enable signing of files in build configuration
2025-07-21 13:50:07 +00:00
Pavel Gorgulov
da9def95c0
Update CI workflows configuration for debugging (#172)
* Update CI workflows configuration for debugging

* Update .github/workflows/gradle-publish.yml

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

* Refine Gradle and CI workflows for improved variable usage and error handling

* Add validation for OSSRH credentials in Gradle publish workflow

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-21 11:14:07 +00:00
Pavel Gorgulov
5347a7ac14
Fix release (#155)
* disable parallel execution, update gradle wrapper and disable changelog generation

* enable gradle build caching and increase memory allocation
2025-07-18 14:08:05 +00:00
Pavel Gorgulov
b8f69b41a1
Revert "FEAT: Support all Tier 1, 2 and 3 targets by Kotlin & remove dependency on Kotest Json due to not supporting all targets (#151)" (#154)
This reverts commit 21aec46cd0.
2025-07-17 08:45:32 +00:00
Simon Vergauwen
21aec46cd0
FEAT: Support all Tier 1, 2 and 3 targets by Kotlin & remove dependency on Kotest Json due to not supporting all targets (#151)
Co-authored-by: Leonid Stashevsky <e5l@users.noreply.github.com>
2025-07-17 09:50:50 +02:00
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) 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
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
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
Leonid Stashevsky
f42fcecebe
Release 0.5.0 (#90) 2025-04-30 07:49:34 +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
Leonid Stashevsky
0f3adfdd14
Release 0.4.0 (#61) 2025-03-26 11:36:43 +00:00
Leland Takamine
b0532d9e9b
Support consumers that require Java 8 (#60) 2025-03-26 08:23:09 +00:00
Kazik Pogoda
0d6fa860cd
Add support for testing JSON serialization of the mcp API (#45)
* Add kotest-assertions-json dependency + ToolSerializationTest

* ToolSerializationTest update
2025-02-21 17:21:14 +00:00
Alexander Sysoev
de5ef4460f
Modify SSE config for server (#23)
* Fixed compilation

* Added `mcp` Ktor server route alongside Application extension

* Fix AbstractTransport to not skip messages
2025-01-24 12:31:32 +00:00
Kazik Pogoda
c2c0df5992
Add org.jetbrains.kotlinx.binary-compatibility-validator plugin (#35) 2025-01-08 09:12:56 +01:00
leonid.stashevsky
ff0eaa6084 Release 0.3.0 2025-01-07 10:32:28 +01:00
Pavel Gorgulov
e8c2f007a5
Migrate project to Multiplatform (KMP) (#22)
* Migrate to Kotlin multiplatform

* Fix publication

* Switch to using `alias` for the AtomicFu plugin

---------

Co-authored-by: Alexander Sysoev <Alexander.Sysoev@jetbrains.com>
2025-01-07 10:26:16 +01:00
Sergey Ignatov
d8a8f89465
0.2.0 (#27) 2024-12-22 11:58:23 +01:00
leonid.stashevsky
c9b90290df Update sample to 0.1.0 2024-12-17 20:19:11 +01:00
leonid.stashevsky
c0f404eb7b Update publication config 2024-12-17 19:50:27 +01:00
leonid.stashevsky
507cf6c964 Change repository path 2024-12-17 19:42:05 +01:00
leonid.stashevsky
8101c97970 Cleanup gradle configuration 2024-12-17 17:43:08 +01:00
Leonid Stashevsky
98410df7af
Introduce jreleaser to make the release (#19) 2024-12-17 15:55:27 +01:00
Leonid Stashevsky
ac3c9b1e43
Setup sign and publishing configuration (#15)
* Setup publishing configuration

* Update signing properties and action name

* Update token name

* Align property names

* Rename step
2024-12-17 12:39:33 +01:00
Leonid Stashevsky
215effb7d6
Update package name across the project (#2)
* Change package name

* Update publication

* Update docs

* Update settings.gradle.kts, README and CONTRIBUTING

* Cleanup leftovers
2024-12-17 07:28:51 +01:00
Alexander Sysoev
9e71ab0b21
fix compilation (#1) 2024-12-16 21:30:17 +01:00
Alexander Sysoev
852a4a3d5e
Enable Explicit Api (#21) 2024-12-16 20:59:53 +01:00
Alexander Sysoev
5d1854723b
Added Space Packages Publication (#9) 2024-12-16 14:38:53 +01:00
Leonid Stashevsky
42f560e665
Add server sample (#8)
* Change required dependencies from implementation to api

* Add kotlin mcp server sample

Fixes #6

* Add explicit nop logger to clean CLI

* Update readme with reference
2024-12-16 13:27:00 +01:00
Leonid Stashevsky
eacec89146
Configure maven publishing (#1) 2024-12-15 20:29:09 +01:00
leonid.stashevsky
7b32c3e3da Initial commit 2024-12-15 20:17:55 +01:00