kotlin-sdk
官方 Kotlin 多平台 SDK,通过 MCP 协议让 Kotlin 应用(JVM/Native/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
官方 Kotlin 多平台 SDK,通过 MCP 协议让 Kotlin 应用(JVM/Native/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:MCP Kotlin SDK 组织 Logo
想象一下这样的场景:你在开发一款 IntelliJ IDEA 插件,需要让 AI 助手能够读取项目文件、搜索代码、执行构建任务——但每次换一个 AI 工具就得重新对接一遍 API,工作量巨大。Anthropic 提出的 Model Context Protocol(MCP)正是为了解决这个痛点:为 AI 应用与数据源之间建立一套通用、可插拔的通信协议。而 modelcontextprotocol/kotlin-sdk 则是这个协议在 Kotlin/JVM 生态中的官方实现。
MCP(Model Context Protocol)由 AI 公司 Anthropic 于 2024 年底发布,旨在打破 AI 工具与各类数据源之间的壁垒。类似于 USB 协议让各种设备能够通过统一接口连接电脑,MCP 的目标是为 AI 模型与外部工具/数据之间建立一套「即插即用」的标准化连接层。
该协议于 2024 年 11 月以开源方式发布后,迅速获得了广泛关注。GitHub 上已出现 Python、TypeScript/JavaScript、Java、C++、Go、Rust 等多语言 SDK 实现。其中 Kotlin SDK 由 JetBrains 团队与 Anthropic 合作维护,是唯一支持 Kotlin Multiplatform(全平台统一代码库)的官方实现,可同时运行于 JVM、Native(iOS/macOS/Windows/Linux)、JavaScript/Wasm 四大平台。
Kotlin SDK 的架构严格遵循 MCP 协议规范,将系统分为以下核心层次:
传输层(Transports):负责客户端与服务端之间的底层通信。SDK 内置了 5 种传输方式:
协议层(Protocol):实现 MCP 规范的 JSON-RPC 消息格式,包括初始化握手、请求/响应、通知(notifications)、采样(sampling)等核心协议交互。
应用层(Server / Client API):提供高阶 DSL 风格的 Kotlin API,开发者无需关心协议细节,只需声明式注册 Prompt、Resource、Tool 三种核心原语即可。
这是 Kotlin SDK 区别于其他语言实现的核心特色。项目采用 Kotlin Multiplatform(KMP)架构,核心业务逻辑放在 commonMain 源集,通过 Kotlin 编译器平台插件生成 JVM 字节码、Native 机器码和 JavaScript/Wasm 代码。SDK 拆分为三个独立模块:
kotlin-sdk-core:协议核心模型与序列化(MCP 的 JSON Schema → Kotlin data class)kotlin-sdk-client:客户端 API(连接 MCP 服务器、调用工具)kotlin-sdk-server:服务端 API(暴露工具、资源、Prompt)这种模块化拆分让依赖管理更精确:客户端应用只需引入 kotlin-sdk-client,服务端只需引入 kotlin-sdk-server。
SDK 底层网络依赖 JetBrains 自家的 Ktor 框架(也是 Kotlin 语言官方出品的网络库)。所有 I/O 操作均为非阻塞协程(suspend 函数),与现代 Kotlin 异步编程风格完美融合。开发者需要自行引入 Ktor 引擎依赖(如 ktor-client-cio 或 ktor-server-netty),SDK 不做传递依赖,保持包体积精简。
MCP 协议消息的 JSON 编解码使用 Kotlinx Serialization(@Serializable 注解驱动)。这使得 MCP 的 JSON Schema 定义能够直接映射为强类型的 Kotlin data class,相比运行时反射更安全、更高效。
MCP 协议定义了四个核心原语,Kotlin SDK 对每一项都提供了完整的 API 支持:
| 原语 | 服务端行为 | 客户端行为 | Kotlin API |
|---|---|---|---|
| Prompts | 暴露 Prompt 模板,支持参数化 | 获取并使用 Prompt | server.addPrompt() |
| Resources | 暴露数据源(文件、API 等) | 读取/订阅资源 | server.addResource() |
| Tools | 定义可执行函数 | 调用工具获取结果 | server.addTool() |
| Sampling | 请求 LLM 补全 | 执行 LLM 调用返回结果 | client.createSamplingRequest() |
Tool 是最常用的原语。以一个最简单的工具注册为例:
mcpServer.addTool(
name = "example-tool",
description = "An example tool",
inputSchema = ToolSchema(...)
) { request ->
CallToolResult(content = listOf(TextContent("Hello, world!")))
}
相比手动写 HTTP 接口 + AI 厂商 SDK,MCP Tool 的优势在于:一旦注册为 MCP 工具,同一个服务端可以被任何 MCP 兼容客户端(如 Claude Desktop、各类 AI IDE 插件)直接调用,无需为每个 AI 平台单独适配。
重要说明:这是一个软件开发工具包(SDK),而非可直接运行的应用程序。它以 Maven Central 依赖包的形式发布,开发者通过 Gradle/Maven 引入项目后使用,不存在独立的部署入口。
最低环境要求:
引入方式(JVM 项目):
// 完整 SDK(客户端+服务端)
implementation("io.modelcontextprotocol:kotlin-sdk:$mcpVersion")
// 单独引入
implementation("io.modelcontextprotocol:kotlin-sdk-client:$mcpVersion")
implementation("io.modelcontextprotocol:kotlin-sdk-server:$mcpVersion")
Samples 示例项目:项目自带 5 个完整可运行的示例,覆盖 Weather STDIO Server、Kotlin MCP Client、IntelliJ 插件服务端等场景。
尽管设计精良,该项目仍面临一些现实挑战:
协议仍处于快速迭代阶段:MCP 规范尚未完全稳定,截至 2026 年 6 月仍有大量breaking change,Issue 列表显示 106 个 open issues,其中包括不少协议兼容性相关问题。
Kotlin 生态的采纳速度有待观察:相比 Python(pip install)和 TypeScript(npm install),JVM 生态的 AI 工具生态本身较小,Kotlin 开发者群体中需要 MCP 的场景(IntelliJ 插件、Compose Multiplatform 应用)相对垂直。
依赖管理门槛:SDK 需要开发者自行引入 Ktor 引擎,对于 Kotlin 新手来说有一定的理解成本。
MCP 正在成为 AI 工具互联的新标准。从 GitHub stars 增长曲线来看(该组织多个仓库在 2025-2026 年快速突破 10k+ stars),MCP 协议生态正处于爆发期。Kotlin SDK 作为 JetBrains 官方背书的实现,在 IntelliJ 平台 AI 插件开发领域具有不可替代的优势。
随着 Kotlin Multiplatform 技术在移动端(Compose Multiplatform for iOS/Android)和桌面端(Compose Desktop/IntelliJ)持续渗透,未来 Kotlin SDK 很可能成为这些平台上构建 AI 增强功能的事实标准底层库。对于有意在 Kotlin 生态中布局 AI 能力的开发者而言,提前熟悉这套 SDK 的使用方式具有长期战略价值。