ClaudeCodeMod

All shelves / MCP servers

ClimateTraceKMP

joreilly/ClimateTraceKMP · 345 stars · Kotlin · Apache-2.0

MCP server Kotlin/Compose Multiplatform project to show climate related emission data from https://climatetrace.org/data.

Install

The repo has no one-line install. Follow its README.

Open the repo

Files

README.md

ClimateTraceKMP

kotlin-version

Kotlin/Compose Multiplatform project to show climate related emission data from https://climatetrace.org/data.

Running on

  • iOS (SwiftUI + shared Compose Multiplatform UI)
  • Android
  • Desktop
  • Web (Wasm)
  • Kotlin Notebook
  • MCP Server
  • AI Agents (Koog + Google ADK)

The iOS client as mentioned includes shared Compose Multiplatform UI code. It also includes option to use either SwiftUI or Compose code for the Country List screen (in both cases selecting a country will navigate to shared Compose emissions details screen).

Screenshot 2024-04-29 at 21 13 54

Related posts:

Project structure

  • composeApp - shared Kotlin Multiplatform code (data layer, view models and Compose Multiplatform UI) along with desktop and web entry points
  • androidApp - Android app
  • iosApp - iOS app (SwiftUI + shared Compose UI)
  • mcp-server - MCP server that exposes emissions data as MCP tools (using the Kotlin MCP SDK)
  • agents - Kotlin based AI agent built using Google's Agent Development Kit (ADK), which connects to mcp-server as an MCP client

Uses, amongst other things, Ktor, Koin, kstore, Voyager, KoalaPlot and Koog.

Building and running

  • Android: open the project in Android Studio, or run ./gradlew :androidApp:installDebug
  • iOS: open iosApp/iosApp.xcodeproj in Xcode and run
  • Desktop: ./gradlew :composeApp:run
  • Web (Wasm): ./gradlew :composeApp:wasmJsBrowserDevelopmentRun
  • MCP server: ./gradlew :mcp-server:shadowJar (see MCP Server section below)
  • ADK agent Dev UI: ./gradlew :agents:startDevUI (see AI Agents section below; requires the MCP server to be running)

Android (Compose)

Screenshot_20260524_101722

iOS (SwiftUI/Compose)

Simulator Screenshot - iPhone 17 Pro - 2026-05-24 at 10 18 46

Compose for Desktop

Screenshot 2026-05-24 at 10 11 18 Screenshot 2026-05-24 at 10 12 37

Compose for Web (Wasm)

Screenshot 2026-05-24 at 10 10 29

Kotlin Notebook

See ClimateTrace.ipynb

Screenshot 2023-12-14 at 20 33 45

MCP Server

The mcp-server module uses the Kotlin MCP SDK to expose an MCP tools endpoint (returning per country emission data) that can for example be plugged in to Claude Desktop as shown below. That module uses same KMP shared code.

Screenshot 2025-07-06 at 17 24 20

To integrate the MCP server with Claude Desktop for example you need to firstly run gradle shadowJar task and then select "Edit Config" under Developer Settings and add something like the following (update with your path)

{
  "mcpServers": {
    "climatetrace": {
      "command": "java",
      "args": [
        "-jar",
        "/path/to/ClimateTraceKMP/mcp-server/build/libs/serverAll.jar",
        "--stdio"
      ]
    }
  }
}

AI Agents

The app includes an Agents screen, built using Koog, that allows querying emissions data using an LLM based agent.

The agents module also includes a Kotlin based agent built using Google's Agent Development Kit for Kotlin (ADK). Rather than depending on the shared KMP code directly, it acts as an MCP client and connects to the mcp-server module (over the Streamable HTTP transport) to fetch emissions data as tools.

To run it, first start the MCP server in Streamable HTTP mode, then the ADK Dev UI (in a separate terminal):

./gradlew :mcp-server:run --args="--streamable-http-server 8080"
./gradlew :agents:startDevUI

The Dev UI is then available at http://localhost:8081. A gemini_api_key entry in local.properties (the same one used by the Koog agent) is picked up automatically; alternatively set a GEMINI_API_KEY/GOOGLE_API_KEY environment variable.

There's also a ./gradlew :agents:runAdkAgent task that runs the agent once against a fixed prompt from the console.

Full set of Kotlin Multiplatform/Compose/SwiftUI samples

Facts

Kind
MCP server
Repo
joreilly/ClimateTraceKMP
Group
Uncategorized
Stars
345
License
Apache-2.0
Language
Kotlin
Last push
2026-10-10
Forks
24
Topics
compose, kmp, kotlin-multiplatform, ktor, compose-multiplatform, wasm, android, compose-desktop, compose-ios, compose-web, kotlin, swift, swiftui, kotlin-notebook, mcp, kmp-sample

More on this shelf

  1. 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
  2. 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
  3. 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
  4. 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
  5. 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
  6. 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k