返回市场
蒸汽管道-MCP

蒸汽管道-MCP

作者:turbot32 星标更新:2025-05-19

项目介绍

Steampipe 模型上下文协议(MCP)服务器

通过 Steampipe 解锁AI驱动的基础设施分析能力!此模型上下文协议服务器无缝连接AI助手(如Claude)与您的云基础设施数据,支持自然语言探索和分析整个云环境。

Steampipe MCP连接AI助手和您的基础设施数据,允许使用自然语言进行以下操作:

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

适用于本地安装的SteampipeTurbot Pipes工作区,提供对所有云和SaaS数据的安全只读访问。

安装

先决条件

  • Node.js v16或更高版本(包括npx
  • 对于本地使用:已安装并运行的Steampipe (steampipe service start)
  • 对于Turbot Pipes:一个Turbot Pipes工作区和连接字符串

配置

在您的AI助手配置文件中添加Steampipe MCP:

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

默认情况下,这会连接到您本地的Steampipe安装,地址为postgresql://steampipe@localhost:9193/steampipe。请确保首先运行steampipe service start

要连接到Turbot Pipes工作区,请在参数中添加您的连接字符串:

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

AI助手设置

助手配置文件位置设置指南
Claude Desktopclaude_desktop_config.jsonClaude Desktop MCP指南 →
Cursor~/.cursor/mcp.jsonCursor MCP指南 →

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

提示指南

首先,运行包含在MCP服务器中的best_practices提示,以教导您的LLM如何最好地与Steampipe配合工作。然后,尽情提问!

探索您的云基础设施:

你能看到哪些AWS账户?

简单具体的问题效果很好:

显示过去一周内创建的所有S3存储桶

生成基础设施报告:

列出我的EC2实例及其附加的EBS卷

深入安全分析:

查找任何在过去90天内未旋转访问密钥的IAM用户

获取合规性见解:

显示所有不符合我们标签标准的EC2实例

探索潜在风险:

分析我的S3存储桶的安全风险,包括公共访问、日志记录和加密

记住:

  • 明确指定您想要分析的云资源(EC2、S3、IAM等)
  • 如果对特定区域或账户感兴趣,请提及它们
  • 从简单的查询开始,然后再添加复杂的条件
  • 使用自然语言——LLM将处理SQL翻译
  • 大胆探索——LLM可以帮助您发现整个基础设施的洞察!

功能

工具

  • steampipe_query

    • 使用SQL查询云和安全日志。
    • 为了最佳性能:使用CTEs而不是连接,限制请求的列数。
    • 所有查询都是只读的,并使用PostgreSQL语法。
    • 输入:sql(字符串):要执行的SQL查询,使用PostgreSQL语法
  • 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数据的最佳实践
    • 提供详细的指导:
      • 响应风格和格式约定
      • 使用CTEs(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": [
        "/绝对路径/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商标、云服务等。您可以在我们的开源FAQ中了解更多。

参与进来

加入Slack上的#steampipe →

想帮忙但不知道从哪里开始?领取一个help wanted问题: