跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

如何将 StackQL 与 Claude 配合使用

Claude 通过 Model Context Protocol 连接到 StackQL:在 Claude Desktop(或 Claude Code)中将 stackql 注册为 MCP 服务器后,Claude 就可以在自然语言的驱动下,对 StackQL 支持的每个 Provider 中的云资源进行清点、审计,并在你批准后进行修改。

步骤​

  1. 安装 StackQL,并确认它在你的 PATH 中:
stackql --version
  1. 编辑 Claude Desktop 配置文件:
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
  1. 添加服务器条目,其中包含所用 Provider 的凭据:
{
"mcpServers": {
"stackql": {
"command": "stackql",
"args": [
"mcp",
"--mcp.server.type=stdio",
"--mcp.config",
"{\"server\": {\"transport\": \"stdio\", \"mode\": \"safe\"}}"
],
"env": {
"AWS_ACCESS_KEY_ID": "your-aws-access-key-id",
"AWS_SECRET_ACCESS_KEY": "your-aws-secret-access-key",
"STACKQL_GITHUB_USERNAME": "your-github-username",
"STACKQL_GITHUB_PASSWORD": "your-github-personal-access-token"
}
}
}
}

只包含你需要的 Provider(Azure 使用 AZURE_TENANT_ID/AZURE_CLIENT_ID/AZURE_CLIENT_SECRET,Google Cloud 使用 GOOGLE_CREDENTIALS,Databricks 使用 DATABRICKS_CLIENT_ID/DATABRICKS_CLIENT_SECRET)。切勿将此文件提交到版本控制系统。

  1. 重启 Claude Desktop。 对话开始时服务器会自动启动。

  2. 用自然语言提问。 以下示例可直接对应到 StackQL 操作:

  • “列出 us-east-1 中所有具有公有 IP 地址的 EC2 实例”
  • “我们的 GitHub 组织中有哪些仓库禁用了分支保护?”
  • “在 us-west-2 中创建一个名为 analytics-data 的 S3 存储桶”

对于读取操作,Claude 会发现 schema 并立即运行 SELECT 语句。对于创建存储桶的请求,safe 模式会在执行任何操作之前触发审批请求,显示确切的 INSERT。

控制 Claude 可以执行的操作​

配置中的 mode 字段就是契约:read_only 用于仅做资源清单的助手,safe(默认)用于受审批门控的更改,delete_safe 允许创建/更新但对删除进行门控,full_access 仅用于受信任的自动化。无论处于哪种模式,Claude 发出的每次调用都会记录在服务器的 JSONL 审计日志中。