翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
如何在 Kotlin 或 JVM 应用中嵌入 StackQL MCP 服务器
StackQL 的 MCP 服务器可以在 Kotlin 或 JVM 应用内运行,无需 npx,无需单独安装,也没有运行时依赖。io.stackql:stackql-mcp 库在官方 Kotlin MCP SDK 客户端的背后通过 stdio 启动已签名的 StackQL 二进制文件,配套的 Gradle 插件将相同的启动方式接入构建。这就是 costgate 所采用的模式,它是面向 CI/CD 的成本门控,以 CLI 和 Gradle 插件两种形式发布。
步骤
- 添加库到你的 Gradle 依赖中:
dependencies {
implementation("io.stackql:stackql-mcp:0.1.0")
}
需要 JDK 17 和 Kotlin 2.x。客户端来自官方的 Kotlin MCP SDK。
- 启动服务器并列出工具。 构建器默认使用
Mode.ReadOnly:
import io.stackql.mcp.LaunchArgs
import io.stackql.mcp.Mode
import io.stackql.mcp.StackqlMcp
suspend fun main() {
val server = StackqlMcp.builder()
.mode(Mode.ReadOnly)
.auth(LaunchArgs.authFor("github", "null_auth"))
.start()
server.use {
val tools = server.client.listTools().tools
println("${tools.size} tools available")
}
}
- 选择模式。
.mode()默认为Mode.ReadOnly。仅当应用需要预配资源时,才设置Mode.Safe、Mode.DeleteSafe或Mode.FullAccess。权限提升必须显式进行。
在 Gradle 构建中运行 StackQL 查询
Gradle 插件将嵌入式服务器接入你的构建,因此 CI 任务无需单独的安装步骤即可运行 StackQL 查询。costgate 演示应用根据成本预算对基础设施部署进行门控,可作为 CLI 使用:
costgate check --intent examples/costgate.yaml --explain
也可作为 Gradle 插件使用:
plugins {
id("io.stackql.costgate") version "0.1.0"
}
costgate {
intent.set(layout.projectDirectory.file("costgate.yaml"))
explain.set(true)
}
相关概念
- 嵌入式 MCP:Kotlin / JVM 参考:安装、API 和 Gradle 插件
- 如何将 StackQL 与 AI 智能体配合使用:MCP 模型和安全模式
- StackQL MCP 架构:传输方式、模式和审计的内部机制
- 什么是智能体基础设施?:由此实现的模式