关于 Steampipe Model Context Protocol (MCP) Server
Steampipe MCP Server 让 Claude 等 AI 助手通过自然语言查询云基础设施数据。它面向需要分析 AWS、Azure、GCP 等云资源的用户,并支持本地 Steampipe 与 Turbot Pipes 工作区,且仅提供只读访问。
主要功能
- 01使用 SQL 查询云与安全数据
- 02列出与查看 Steampipe 表及其结构
- 03查看已安装插件的详情
- 04提供 best_practices 提示词
- 05提供 status 资源以检查连接状态
适用场景
- 01查询 AWS、Azure、GCP 等云资源清单
- 02检查 IAM 密钥轮换等安全与合规状况
- 03分析 EC2 与 EBS 等资源的成本与配置
MCP 相关
该服务通过工具、提示词和资源向 MCP 客户端暴露 Steampipe 的数据查询与连接状态功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sql | string | 是 | 要执行的 SQL 查询。PostgreSQL 语法,且必须为只读。 |
详细介绍
Steampipe Model Context Protocol (MCP) 服务
借助 Steampipe,释放 AI 驱动的基础设施分析能力!此 Model Context Protocol 服务可无缝连接 Claude 等 AI 助手与您的云基础设施数据,让您通过自然语言探索和分析整个云环境。
Steampipe MCP 架起了 AI 助手与基础设施数据之间的桥梁,支持通过自然语言进行:
- 查询 AWS、Azure、GCP 和 100 多种云服务
- 安全与合规性分析
- 成本和资源优化
- 查询开发辅助
既支持本地安装的 Steampipe,也支持 Turbot Pipes 工作区,可安全地只读访问您的所有云和 SaaS 数据。
安装
前提条件
- Node.js v16 或更高版本(包含
npx) - 本地使用:Steampipe 已安装并运行(
steampipe service start) - 使用 Turbot Pipes:一个 Turbot Pipes 工作区和连接字符串
配置
将 Steampipe MCP 添加到 AI 助手的配置文件中:
{
"mcpServers": {
"steampipe": {
"command": "npx",
"args": [
"-y",
"@turbot/steampipe-mcp"
]
}
}
}
默认情况下,这会连接到本地 Steampipe 安装,地址为 postgresql://steampipe@localhost:9193/steampipe。请确保先运行 steampipe service start。
若要改为连接 Turbot Pipes 工作区,请将连接字符串添加到 args 中:
{
"mcpServers": {
"steampipe": {
"command": "npx",
"args": [
"-y",
"@turbot/steampipe-mcp",
"postgresql://my_name:[email protected]:9193/abc123"
]
}
}
}
AI 助手设置
| 助手 | 配置文件位置 | 设置指南 |
|---|---|---|
| Claude Desktop | claude_desktop_config.json | Claude Desktop MCP 指南 → |
| Cursor | ~/.cursor/mcp.json | Cursor MCP 指南 → |
保存配置文件并重启 AI 助手,使更改生效。
提示词指南
首先,运行 MCP 服务中包含的 best_practices 提示词,指导您的大模型如何更好地使用 Steampipe。然后,想问什么就问!
探索您的云基础设施:
What AWS accounts can you see?
简单明确的问题效果很好:
Show me all S3 buckets that were created in the last week
生成基础设施报告:
List my EC2 instances with their attached EBS volumes
深入开展安全分析:
Find any IAM users with access keys that haven't been rotated in the last 90 days
获取合规性见解:
Show me all EC2 instances that don't comply with our tagging standards
探索潜在风险:
Analyze my S3 buckets for security risks including public access, logging, and encryption
请记住:
- 明确指出您想分析哪些云资源(EC2、S3、IAM 等)
- 如果关注特定区域或账户,请注明
- 先从简单查询开始,再逐步添加复杂条件
- 使用自然语言——大模型会处理 SQL 转换
- 大胆探索——大模型可以帮助您发现整个基础设施中的见解!
功能
工具
-
steampipe_query
- 使用 SQL 查询云和安全日志。
- 为获得最佳性能:使用 CTE 代替联接,并限制请求的列数。
- 所有查询均为只读,并使用 PostgreSQL 语法。
- 输入:
sql(字符串):要执行的 PostgreSQL 语法 SQL 查询
-
steampipe_table_list
- 列出所有可用的 Steampipe 表。
- 可选输入:
schema(字符串):按指定架构筛选表 - 可选输入:
filter(字符串):按 ILIKE 模式筛选表(例如:'%ec2%')
-
steampipe_table_show
- 获取指定表的详细信息,包括列定义、数据类型和说明。
- 输入:
name(字符串):要查看详细信息的表名(可包含架构限定名,例如 'aws_account' 或 'aws.aws_account') - 可选输入:
schema(字符串):包含该表的架构
-
steampipe_plugin_list
- 列出系统上安装的所有 Steampipe 插件。插件提供对 AWS、GCP 或 Azure 等不同数据源的访问。
- 无需输入参数
-
steampipe_plugin_show
- 获取指定 Steampipe 插件安装的详细信息,包括版本、内存限制和配置。
- 输入:
name(字符串):要查看详细信息的插件名称
提示词
- best_practices
- 使用 Steampipe 数据的最佳实践
- 提供以下方面的详细指导:
- 回复风格和格式规范
- 使用 CTE(WITH 子句)还是联接
- SQL 语法和风格规范
- 列选择和优化
- 架构探索与理解
- 查询结构和组织
- 性能注意事项和缓存
- 错误处理和故障排查
资源
- status
- 表示 Steampipe 连接的当前状态
- 属性包括:
- connection_string:当前数据库连接字符串
- status:连接状态(已连接/已断开)
此资源可让 AI 工具检查并验证与 Steampipe 实例的连接状态。
开发
克隆和设置
- 克隆仓库并进入目录:
git clone https://github.com/turbot/steampipe-mcp.git
cd steampipe-mcp
- 安装依赖项:
npm install
- 构建项目:
npm run build
测试
若要使用支持 MCP 的 AI 工具测试本地开发构建,请更新 MCP 配置,使用本地的 dist/index.js,而不是 npm 包。例如:
{
"mcpServers": {
"steampipe": {
"command": "node",
"args": [
"/absolute/path/to/steampipe-mcp/dist/index.js",
"postgresql://steampipe@localhost:9193/steampipe"
]
}
}
}
或者,使用 MCP Inspector 验证服务实现:
npx @modelcontextprotocol/inspector dist/index.js
环境变量
以下环境变量可用于配置 MCP 服务:
STEAMPIPE_MCP_LOG_LEVEL:控制服务日志详细程度(默认值:info)STEAMPIPE_MCP_WORKSPACE_DATABASE:覆盖默认的 Steampipe 连接字符串(默认值:postgresql://steampipe@localhost:9193/steampipe)
开源与贡献
此仓库根据 Apache 2.0 许可证 发布。请参阅我们的行为准则。期待与您合作!
Steampipe 是由 Turbot HQ, Inc 独家基于此开源软件开发的产品。该产品根据我们的商业条款分发。其他人可以自行分发此软件,但不得使用任何 Turbot 商标、云服务等。您可以在我们的开源常见问题中了解更多信息。
参与其中
想要帮忙,却不知道从何开始?可以认领一个标记为 help wanted 的问题:
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。