diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 200a049e..20b9a7fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 @@ -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 - name: Upload Reports if: ${{ !cancelled() }} diff --git a/build.gradle.kts b/build.gradle.kts index 81117d2a..2c365fa8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ plugins { allprojects { group = "io.modelcontextprotocol" - version = "0.7.1" + version = "0.7.2-SNAPSHOT" } dependencies { diff --git a/gradle.properties b/gradle.properties index 85b95662..7e636348 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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 # MPP kotlin.mpp.enableCInteropCommonization=true kotlin.native.ignoreDisabledTargets=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6728830a..f06f9bb5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -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" @@ -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" } diff --git a/samples/kotlin-mcp-client/build.gradle.kts b/samples/kotlin-mcp-client/build.gradle.kts index b34e8ed2..3e3ad859 100644 --- a/samples/kotlin-mcp-client/build.gradle.kts +++ b/samples/kotlin-mcp-client/build.gradle.kts @@ -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) diff --git a/samples/kotlin-mcp-client/settings.gradle.kts b/samples/kotlin-mcp-client/settings.gradle.kts index 6e2f160d..c5f225b8 100644 --- a/samples/kotlin-mcp-client/settings.gradle.kts +++ b/samples/kotlin-mcp-client/settings.gradle.kts @@ -9,6 +9,7 @@ pluginManagement { dependencyResolutionManagement { repositories { + mavenLocal() mavenCentral() } versionCatalogs { @@ -16,4 +17,4 @@ dependencyResolutionManagement { from(files("../../gradle/libs.versions.toml")) } } -} \ No newline at end of file +} diff --git a/samples/kotlin-mcp-server/build.gradle.kts b/samples/kotlin-mcp-server/build.gradle.kts index 6a649687..e85100d7 100644 --- a/samples/kotlin-mcp-server/build.gradle.kts +++ b/samples/kotlin-mcp-server/build.gradle.kts @@ -11,10 +11,6 @@ plugins { group = "org.example" version = "0.1.0" -repositories { - mavenCentral() -} - val jvmMainClass = "Main_jvmKt" kotlin { @@ -43,7 +39,7 @@ kotlin { sourceSets { commonMain.dependencies { - implementation(libs.mcp.kotlin) + implementation(libs.mcp.kotlin.server) implementation(libs.ktor.server.cio) } jvmMain.dependencies { diff --git a/samples/kotlin-mcp-server/settings.gradle.kts b/samples/kotlin-mcp-server/settings.gradle.kts index 08039844..cac44ab8 100644 --- a/samples/kotlin-mcp-server/settings.gradle.kts +++ b/samples/kotlin-mcp-server/settings.gradle.kts @@ -9,6 +9,7 @@ pluginManagement { dependencyResolutionManagement { repositories { + mavenLocal() mavenCentral() } versionCatalogs { @@ -16,4 +17,4 @@ dependencyResolutionManagement { from(files("../../gradle/libs.versions.toml")) } } -} \ No newline at end of file +} diff --git a/samples/weather-stdio-server/build.gradle.kts b/samples/weather-stdio-server/build.gradle.kts index f82306cc..f39057f9 100644 --- a/samples/weather-stdio-server/build.gradle.kts +++ b/samples/weather-stdio-server/build.gradle.kts @@ -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) } diff --git a/samples/weather-stdio-server/settings.gradle.kts b/samples/weather-stdio-server/settings.gradle.kts index 1121bf5f..67e786b1 100644 --- a/samples/weather-stdio-server/settings.gradle.kts +++ b/samples/weather-stdio-server/settings.gradle.kts @@ -9,6 +9,7 @@ pluginManagement { dependencyResolutionManagement { repositories { + mavenLocal() mavenCentral() } versionCatalogs { @@ -16,4 +17,4 @@ dependencyResolutionManagement { from(files("../../gradle/libs.versions.toml")) } } -} \ No newline at end of file +}