mcpField
S
Steampipe Model Context Protocol (MCP) Server

Steampipe Model Context Protocol (MCP) Server

本地服务
github.com/turbot云与基础设施4875 周前更新

关于 Steampipe Model Context Protocol (MCP) Server

Steampipe MCP Server 让 Claude 等 AI 助手通过自然语言查询云基础设施数据。它面向需要分析 AWS、Azure、GCP 等云资源的用户,并支持本地 Steampipe 与 Turbot Pipes 工作区,且仅提供只读访问。

主要功能

  1. 01使用 SQL 查询云与安全数据
  2. 02列出与查看 Steampipe 表及其结构
  3. 03查看已安装插件的详情
  4. 04提供 best_practices 提示词
  5. 05提供 status 资源以检查连接状态

适用场景

  1. 01查询 AWS、Azure、GCP 等云资源清单
  2. 02检查 IAM 密钥轮换等安全与合规状况
  3. 03分析 EC2 与 EBS 等资源的成本与配置

MCP 相关

该服务通过工具、提示词和资源向 MCP 客户端暴露 Steampipe 的数据查询与连接状态功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"steampipe": {
"command": "npx",
"args": [
"-y",
"@turbot/steampipe-mcp"
]
}
}
}
启动命令npx -y @turbot/steampipe-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@turbot/steampipe-mcp

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
sqlstring是要执行的 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 Desktopclaude_desktop_config.jsonClaude Desktop MCP 指南 →
Cursor~/.cursor/mcp.jsonCursor 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 实例的连接状态。

开发

克隆和设置
  1. 克隆仓库并进入目录:
git clone https://github.com/turbot/steampipe-mcp.git
cd steampipe-mcp
  1. 安装依赖项:
npm install
  1. 构建项目:
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 商标、云服务等。您可以在我们的开源常见问题中了解更多信息。

参与其中

在 Slack 上加入 #steampipe →

想要帮忙,却不知道从何开始?可以认领一个标记为 help wanted 的问题:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。