Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
8af725b
feat: Add Kotlin SDK for MCP Apps
ochafik Dec 11, 2025
3eebaa9
feat: Add Kotlin SDK for MCP Apps
ochafik Dec 11, 2025
66fc58c
feat: Add Kotlin SDK for MCP Apps
ochafik Dec 11, 2025
7dc8540
Merge branch 'ochafik/kotlin-sdk' of https://github.com/modelcontextp…
ochafik Dec 11, 2025
cb70420
Merge main into kotlin-sdk
ochafik Dec 11, 2025
f03d1c6
Merge branch 'ochafik/kotlin-sdk' of https://github.com/modelcontextp…
ochafik Dec 11, 2025
143af83
Merge remote-tracking branch 'origin/main' into ochafik/kotlin-sdk
ochafik Dec 11, 2025
adf2c68
feat(kotlin-host): implement graceful teardown pattern
ochafik Dec 11, 2025
a4bfaa6
chore: Remove Swift SDK example and type generation
ochafik Dec 11, 2025
dbe05e7
chore: Remove non-existent Swift SDK job from CI
ochafik Dec 11, 2025
544b3be
test(kotlin-host): add protocol handler unit tests and test infrastru…
ochafik Dec 11, 2025
c388038
docs: add Kotlin example to main README and Mac setup instructions
ochafik Dec 11, 2025
114f2bc
Merge branch 'ochafik/kotlin-sdk' of https://github.com/modelcontextp…
ochafik Dec 11, 2025
80cf7d9
fix(kotlin-host): handle size-changed notification to resize WebView
ochafik Dec 11, 2025
fc87ef5
fix(kotlin-host): reduce teardown timeout from 3s to 500ms with polling
ochafik Dec 11, 2025
e873118
feat(kotlin-sdk): add timeout parameter to sendResourceTeardown
ochafik Dec 11, 2025
e32aa97
fix(kotlin-host): add proper WebView lifecycle management
ochafik Dec 12, 2025
fb35baf
Merge main into kotlin-sdk
ochafik Dec 15, 2025
674ff27
Merge main into ochafik/kotlin-sdk (resolved conflicts)
ochafik Dec 15, 2025
185b468
Merge origin/main into ochafik/kotlin-sdk
ochafik Dec 16, 2025
82e5473
Merge remote kotlin-sdk (resolve CI conflict)
ochafik Dec 17, 2025
8a7baaa
Merge main into kotlin-sdk
ochafik Dec 17, 2025
16ad0cd
ci: remove swift job (no swift folder on this branch)
ochafik Dec 17, 2025
b370494
refactor(kotlin): convert SDK to Android library and move WebViewTran…
ochafik Dec 18, 2025
9672c87
Merge remote-tracking branch 'origin/main' into ochafik/kotlin-sdk
ochafik Dec 18, 2025
933c35f
fix(kotlin-host): pass tool arguments to callTool instead of empty map
ochafik Dec 18, 2025
220778f
Merge remote-tracking branch 'origin/main' into ochafik/kotlin-sdk
ochafik Dec 18, 2025
16dcd27
feat(kotlin-host): add structuredContent support
ochafik Dec 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
21 changes: 21 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,27 @@ jobs:

- run: npm run prettier

kotlin:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: "21"
distribution: "temurin"

- name: Build Kotlin SDK
working-directory: kotlin
run: |
chmod +x gradlew
./gradlew build

- name: Test Kotlin SDK
working-directory: kotlin
run: ./gradlew test

e2e:
runs-on: ubuntu-latest
steps:
Expand Down
10 changes: 10 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,13 @@ examples/basic-server-react/**/*.ts
examples/basic-server-react/**/*.tsx
examples/basic-server-vanillajs/**/*.ts
examples/basic-server-vanillajs/**/*.tsx

# Swift package manager build artifacts
sdk/swift/.build/
examples/basic-host-swift/.build/
examples/basic-host-swift/build/
examples/basic-host-kotlin/.gradle/
examples/basic-host-kotlin/build/

# Swift build artifacts
swift/.build/
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ Start with these foundational examples to learn the SDK:

- [`examples/basic-server-vanillajs`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-vanillajs) — Example MCP server with tools that return UI Apps (vanilla JS)
- [`examples/basic-server-react`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-server-react) — Example MCP server with tools that return UI Apps (React)
- [`examples/basic-host`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-host) — Bare-bones example of hosting MCP Apps
- [`examples/basic-host`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-host) — Bare-bones example of hosting MCP Apps (TypeScript/React)
- [`examples/basic-host-kotlin`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples/basic-host-kotlin) — Android example of hosting MCP Apps (Kotlin/Jetpack Compose)

The [`examples/`](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples) directory contains additional demo apps showcasing real-world use cases.

Expand Down
12 changes: 12 additions & 0 deletions examples/basic-host-kotlin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Gradle
.gradle/
build/
!gradle/wrapper/gradle-wrapper.jar
!gradle/wrapper/gradle-wrapper.properties

# IDE
.idea/
*.iml

# Local properties
local.properties
Loading
Loading