mcpField
C
ClimateTraceKMP

ClimateTraceKMP

本地服务
github.com/joreilly科研与教育3453 天前更新

关于 ClimateTraceKMP

ClimateTraceKMP 是一个 Kotlin/Compose Multiplatform 项目,用于查看 Climate TRACE 的气候排放数据,支持多个应用目标。项目还包含 MCP 服务和可查询各国排放数据的 Kotlin Agent。

主要功能

  1. 01按国家查看排放数据
  2. 02支持 Android、iOS、桌面端和 WebAssembly
  3. 03共享 Compose Multiplatform UI
  4. 04Kotlin Notebook 示例
  5. 05Koog 和 Google ADK Agent

适用场景

  1. 01在不同应用目标中查看排放数据
  2. 02通过 AI Agent 查询各国排放数据
  3. 03让 MCP 客户端调用各国排放工具

MCP 相关

mcp-server 模块将各国排放数据作为 MCP 工具提供。项目内的 Google ADK Agent 作为 MCP 客户端连接该服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ClimateTraceKMP

kotlin-version

用于展示 https://climatetrace.org/data 气候相关排放数据的 Kotlin/Compose Multiplatform 项目。

运行平台:

  • iOS(SwiftUI + 共享的 Compose Multiplatform UI)
  • Android
  • 桌面端
  • Web(Wasm)
  • Kotlin Notebook
  • MCP 服务
  • AI Agent(Koog + Google ADK)

如上所述,iOS 客户端包含共享的 Compose Multiplatform UI 代码。它还提供了 Country List 屏幕的两种实现选项:SwiftUI 或 Compose(两种情况下,选择国家后都会导航至共享的 Compose 排放详情屏幕)。

截图 2024-04-29 at 21 13 54

相关文章:

项目结构

  • composeApp - 共享的 Kotlin Multiplatform 代码(数据层、视图模型和 Compose Multiplatform UI),以及桌面端和 Web 入口点
  • androidApp - Android 应用
  • iosApp - iOS 应用(SwiftUI + 共享的 Compose UI)
  • mcp-server - 将排放数据作为 MCP 工具公开的 MCP 服务(使用 Kotlin MCP SDK)
  • agents - 使用 Google 的 Agent Development Kit(ADK)构建的 Kotlin AI Agent,它通过 MCP 客户端连接到 mcp-server

此外还使用了 Ktor、Koin、kstore、Voyager、KoalaPlot 和 Koog 等技术。

构建和运行

  • Android:在 Android Studio 中打开项目,或运行 ./gradlew :androidApp:installDebug
  • iOS:在 Xcode 中打开 iosApp/iosApp.xcodeproj 并运行
  • 桌面端:./gradlew :composeApp:run
  • Web(Wasm):./gradlew :composeApp:wasmJsBrowserDevelopmentRun
  • MCP 服务:./gradlew :mcp-server:shadowJar(见下文的 MCP Server 部分)
  • ADK Agent Dev UI:./gradlew :agents:startDevUI(见下文的 AI Agents 部分;需要 MCP 服务正在运行)
Android(Compose)
截图_20260524_101722
iOS(SwiftUI/Compose)
模拟器截图 - iPhone 17 Pro - 2026-05-24 at 10 18 46
Compose 桌面端
截图 2026-05-24 at 10 11 18 截图 2026-05-24 at 10 12 37
Compose Web(Wasm)
截图 2026-05-24 at 10 10 29
Kotlin Notebook

参见 ClimateTrace.ipynb

截图 2023-12-14 at 20 33 45 ### MCP 服务

mcp-server 模块使用 Kotlin MCP SDK 提供 MCP 工具端点(返回各国家/地区的排放数据),例如可以按下方所示接入 Claude Desktop。该模块使用相同的 KMP 共享代码。

2025 年 7 月 6 日 17:24:20 的截图

例如,要将 MCP 服务接入 Claude Desktop,首先需要运行 Gradle shadowJar 任务,然后在 Developer Settings 下选择“Edit Config”,并添加类似以下内容(请替换为你的路径)

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

应用包含一个使用 Koog 构建的 Agent 页面,可通过基于大模型的 Agent 查询排放数据。

agents 模块还包含一个使用 Google 的 Agent Development Kit for Kotlin(ADK)构建的 Kotlin Agent。它不会直接依赖共享 KMP 代码,而是作为 MCP 客户端,通过 Streamable HTTP 传输连接到 mcp-server 模块,并将排放数据作为工具获取。

要运行它,请先以 Streamable HTTP 模式启动 MCP 服务,然后在单独的终端中启动 ADK Dev UI:

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

随后可通过 http://localhost:8081 访问 Dev UI。系统会自动读取 local.properties 中的 gemini_api_key 条目(与 Koog Agent 使用的条目相同);或者设置 GEMINI_API_KEY/GOOGLE_API_KEY 环境变量。

此外,还有一个 ./gradlew :agents:runAdkAgent 任务,可在控制台中使用固定提示词运行一次 Agent。

UI 测试

Android 和 iOS 客户端共用一个 Maestro UI 测试流程,CI 会在模拟器和仿真器上运行该流程(例如 maestro test -e APP_ID=dev.johnoreilly.climatetrace maestro/ClimateTraceKMP.flow)。

Kotlin Multiplatform/Compose/SwiftUI 示例全集

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。