翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
Rust
将 StackQL MCP 服务器嵌入 Rust 应用,可作为下载的 sidecar 运行,或通过 include_bytes! 以 vendoring 方式打包进你的二进制文件。客户端是 rmcp。
信息
嵌入的二进制文件在首次运行时下载并经 sha256 校验,或以 vendoring 方式打包进你的应用。参阅通用契约。
安装
添加 stackql-mcp crate:
stackql-mcp = "0.1"
快速入门
use stackql_mcp::{Mode, StackqlMcp};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let server = StackqlMcp::builder()
.mode(Mode::ReadOnly)
.auth(serde_json::json!({"github": {"type": "null_auth"}}))
.start()
.await?;
let tools = server.list_all_tools().await?;
println!("{} tools available", tools.len());
server.shutdown().await?;
Ok(())
}
API 为 StackqlMcp::builder(),搭配 .mode()、.auth()、.binary()、.bundle_path()、.approot()、.command()、.start() 和 .shutdown(),另有 .list_all_tools()。MSRV 为 Rust 1.88。
模式
构建器默认使用 Mode::ReadOnly。调用 .mode() 并传入 Mode::Safe、Mode::DeleteSafe 或 Mode::FullAccess 即可提升权限。权限提升必须显式进行:除非你明确选择启用,否则服务器不会启用变更或生命周期工具。
Vendoring / 嵌入
两个功能标志控制二进制文件的获取方式:
sidecar(默认):在首次运行时下载、校验并缓存已签名的二进制文件。vendored:使用include_bytes!嵌入二进制文件,生成单个自包含的可执行文件。
vendored 二进制文件会使构建体积增加约 80 MB。
演示应用
auditron 是一个终端合规助手:它是一个 TUI,以流式方式输出通过/失败结果,同时显示所用的 SQL 和 Claude 的解释,以约 80 MB 的 vendored 单一二进制文件发布。