Skip to content
Merged
Show file tree
Hide file tree
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
20 changes: 17 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ jobs:
validate-pr:
runs-on: macos-latest-xlarge
name: Validate PR
env:
JAVA_OPTS: "-Xmx8g -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dkotlin.daemon.jvm.options=-Xmx6g"
steps:
- uses: actions/checkout@v5

Expand All @@ -32,9 +34,21 @@ jobs:
cache-read-only: true

- name: Build with Gradle
run: ./gradlew clean ktlintCheck build koverLog koverHtmlReport
env:
JAVA_OPTS: "-Xmx8g -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dkotlin.daemon.jvm.options=-Xmx6g"
run: |-
./gradlew clean ktlintCheck build koverLog koverHtmlReport
./gradlew :kotlin-sdk-core:publishToMavenLocal :kotlin-sdk-client:publishToMavenLocal :kotlin-sdk-server:publishToMavenLocal

- name: Build Kotlin-MCP-Client Sample
working-directory: ./samples/kotlin-mcp-client
run: ./../../gradlew clean build

- name: Build Kotlin-MCP-Server Sample
working-directory: ./samples/kotlin-mcp-server
run: ./../../gradlew clean build

- name: Build Weather-Stdio-Server Sample
working-directory: ./samples/weather-stdio-server
run: ./../../gradlew clean build
Comment on lines +42 to +51
Copy link
Contributor

Choose a reason for hiding this comment

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

you can simplify this by using the following:
./gradlew kotlin-mcp-client:build kotlin-mcp-server:build weather-stdio-server:build


- name: Upload Reports
if: ${{ !cancelled() }}
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {

allprojects {
group = "io.modelcontextprotocol"
version = "0.7.1"
version = "0.7.2-SNAPSHOT"
}

dependencies {
Expand Down
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true
# Kotlin
kotlin.code.style=official
kotlin.daemon.jvmargs=-Xmx4G
# Build JS targets using npm package manager https://kotlinlang.org/docs/js-project-setup.html#npm-dependencies
kotlin.js.yarn=false
Copy link
Contributor

Choose a reason for hiding this comment

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

You can also work with npm dependencies directly using the npm package manager instead.

Do we want to use npm directly?

Copy link
Contributor Author

@kpavlov kpavlov Sep 16, 2025

Choose a reason for hiding this comment

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

No, it's Kotlin doing this for us. Or it will require Yarn to be installed. I just don't have Yarn on my fresh laptop ;)

Copy link
Contributor

Choose a reason for hiding this comment

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

Then we should remove this property, if I understood the documentation correctly.

# MPP
kotlin.mpp.enableCInteropCommonization=true
kotlin.native.ignoreDisabledTargets=true
5 changes: 3 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ kotest = "5.9.1"
awaitility = "4.3.0"

# Samples
mcp-kotlin = "0.7.1"
mcp-kotlin = "0.7.2-SNAPSHOT"
anthropic = "2.7.0"
shadow = "8.1.1"

Expand Down Expand Up @@ -57,7 +57,8 @@ slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4
# Samples
ktor-client-cio = { group = "io.ktor", name = "ktor-client-cio", version.ref = "ktor" }
ktor-server-cio = { group = "io.ktor", name = "ktor-server-cio", version.ref = "ktor" }
mcp-kotlin = { group = "io.modelcontextprotocol", name = "kotlin-sdk", version.ref = "mcp-kotlin" }
mcp-kotlin-client = { group = "io.modelcontextprotocol", name = "kotlin-sdk-client", version.ref = "mcp-kotlin" }
mcp-kotlin-server = { group = "io.modelcontextprotocol", name = "kotlin-sdk-server", version.ref = "mcp-kotlin" }
anthropic-java = { group = "com.anthropic", name = "anthropic-java", version.ref = "anthropic" }
ktor-client-content-negotiation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktor" }
ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktor" }
Expand Down
2 changes: 1 addition & 1 deletion samples/kotlin-mcp-client/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ group = "org.example"
version = "0.1.0"

dependencies {
implementation(libs.mcp.kotlin)
implementation(libs.mcp.kotlin.client)
implementation(libs.ktor.client.cio)
implementation(libs.anthropic.java)
implementation(libs.slf4j.simple)
Expand Down
3 changes: 2 additions & 1 deletion samples/kotlin-mcp-client/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ pluginManagement {

dependencyResolutionManagement {
repositories {
mavenLocal()
mavenCentral()
}
versionCatalogs {
create("libs") {
from(files("../../gradle/libs.versions.toml"))
}
}
}
}
6 changes: 1 addition & 5 deletions samples/kotlin-mcp-server/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ plugins {
group = "org.example"
version = "0.1.0"

repositories {
mavenCentral()
}

val jvmMainClass = "Main_jvmKt"

kotlin {
Expand Down Expand Up @@ -43,7 +39,7 @@ kotlin {

sourceSets {
commonMain.dependencies {
implementation(libs.mcp.kotlin)
implementation(libs.mcp.kotlin.server)
implementation(libs.ktor.server.cio)
}
jvmMain.dependencies {
Expand Down
3 changes: 2 additions & 1 deletion samples/kotlin-mcp-server/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ pluginManagement {

dependencyResolutionManagement {
repositories {
mavenLocal()
mavenCentral()
}
versionCatalogs {
create("libs") {
from(files("../../gradle/libs.versions.toml"))
}
}
}
}
7 changes: 2 additions & 5 deletions samples/weather-stdio-server/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,19 @@ application {
mainClass.set("io.modelcontextprotocol.sample.server.MainKt")
}

repositories {
mavenCentral()
}

group = "org.example"
version = "0.1.0"

dependencies {
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.mcp.kotlin)
implementation(libs.mcp.kotlin.server)
implementation(libs.ktor.server.cio)
implementation(libs.ktor.client.cio)
implementation(libs.slf4j.simple)

testImplementation(kotlin("test"))
testImplementation(libs.mcp.kotlin.client)
testImplementation(libs.kotlinx.coroutines.test)
}

Expand Down
3 changes: 2 additions & 1 deletion samples/weather-stdio-server/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ pluginManagement {

dependencyResolutionManagement {
repositories {
mavenLocal()
mavenCentral()
}
versionCatalogs {
create("libs") {
from(files("../../gradle/libs.versions.toml"))
}
}
}
}
Loading