基础设施数据分析服务

Steampipe MCP服务器连接AI助手与云基础设施数据,支持跨AWS、Azure、GCP等100+云服务的自然语言查询、安全合规分析、成本优化及查询开发辅助。

  • by turbot
  • TypeScript
  • 本地部署
  • 48 星标
  • 更新于
在 GitHub 查看 turbot/steampipe-mcp

使用说明

蒸汽管道模型上下文协议(MCP)服务器

通过以下方式释放人工智能驱动的基础设施分析的力量 蒸汽管!此模型上下文协议服务器将Claude等人工智能助手无缝连接到您的云基础设施数据,实现对整个云资产的自然语言探索和分析。

Steampipe MCP连接AI助手和您的基础设施数据,允许自然语言:

  • 跨AWS、Azure、GCP和100多种云服务的查询
  • 安全性和合规性分析
  • 成本和资源优化
  • 查询开发协助

与当地人合作 蒸汽管 安装和 涡轮管 工作空间,提供对所有云和SaaS数据的安全、只读访问。

安装

先决条件

  • Node.js v16或更高版本(包括 npx)
  • 供本地使用: 蒸汽管 已安装并正在运行(steampipe service start)
  • 对于涡轮管:A 涡轮管 工作区和连接字符串

配置

将Steampipe MCP添加到AI助手的配置文件中:

{
  "mcpServers": {
    "steampipe": {
      "command": "npx",
      "args": [
        "-y",
        "@turbot/steampipe-mcp"
      ]
    }
  }
}

默认情况下,这将连接到您的本地Steampipe安装 postgresql://steampipe@localhost:9193/steampipe。一定要跑 steampipe service start 第一。

要连接到 涡轮管 请将您的连接字符串添加到args中:

{
  "mcpServers": {
    "steampipe": {
      "command": "npx",
      "args": [
        "-y",
        "@turbot/steampipe-mcp",
        "postgresql://my_name:my_pw@workspace-name.usea1.db.pipes.turbot.com:9193/abc123"
      ]
    }
  }
}

AI助手设置

助手 配置文件位置 安装指南
克劳德桌面 claude_desktop_config.json 克劳德桌面MCP指南→
光标 ~/.cursor/mcp.json 光标MCP指南→

保存配置文件并重新启动AI助手以使更改生效。

提示指南

首先,运行 best_practices MCP服务器中包含的提示,教您的LLM如何最好地使用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等)
  • 如果你对特定地区或客户感兴趣,请提及这些地区或客户
  • 在添加复杂条件之前,先从简单的查询开始
  • 使用自然语言-LLM将处理SQL翻译
  • 大胆探索-法学硕士可以帮助您发现整个基础设施的见解!

能力

工具

  • steampipe_query

    • 使用SQL查询云和安全日志。
    • 为了获得最佳性能:使用CTE而不是连接,限制所请求的列。
    • 所有查询都是只读的,并使用PostgreSQL语法。
    • 输入: sql (string):使用PostgreSQL语法执行的SQL查询
  • 蒸汽管道表列表

    • 列出所有可用的Steampipe表。
    • 可选输入: schema (string):按特定架构筛选表
    • 可选输入: filter (string):按ILIKE模式筛选表(例如“%ec2%”)
  • 蒸汽管_表_展示

    • 获取特定表的详细信息,包括列定义、数据类型和描述。
    • 输入: name (string):显示详细信息的表的名称(可以是模式限定的,例如“aws_account”或“aws.aws_account”)
    • 可选输入: schema (string):包含表的架构
  • 蒸汽管道_插件列表

    • 列出系统上安装的所有Steampipe插件。插件提供对AWS、GCP或Azure等不同数据源的访问。
    • 无需输入参数
  • 蒸汽管道_插件_展示

    • 获取特定Steampipe插件安装的详细信息,包括版本、内存限制和配置。
    • 输入: name (string):显示详细信息的插件的名称

鼓励

  • 最佳实践
    • 使用Steampipe数据的最佳实践
    • 提供以下方面的详细指导:
      • 响应样式和格式约定
      • 使用CTE(WITH子句)vs连接
      • SQL语法和样式约定
      • 柱的选择和优化
      • 图式探索与理解
      • 查询结构和组织
      • 性能考虑和缓存
      • 错误处理和故障排除

资源

  • 状态
    • 表示蒸汽管道连接的当前状态
    • 属性包括:
      • 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检查器验证服务器实现:

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许可证请查看我们的 行为准则我们期待与您合作!

蒸汽管 是由该开源软件独家生产的产品 多宝公司总部。它是根据我们的商业条款分销的。其他人可以自己分发软件,但他们不能使用任何Turbot商标、云服务等。您可以在我们的 开源常见问题.

参与

在Slack上连接#steampipe→

想帮忙,但不知道从哪里开始?拿起其中一个 help wanted 问题: