Steampipe Model Context Protocol (MCP) Server について
Steampipe MCP Server は、Claude などの AI アシスタントが自然言語でクラウドインフラのデータを照会できるようにするサーバーです。AWS、Azure、GCP などのクラウドや SaaS のデータを分析する利用者向けで、ローカルの Steampipe と Turbot Pipes ワークスペースの両方に読み取り専用で接続します。
主な機能
- 01クラウドデータに対する読み取り専用の SQL 実行
- 02Steampipe テーブルの一覧と詳細表示
- 03インストール済みプラグインの詳細表示
- 04best_practices プロンプトの提供
- 05接続状態を確認する status リソース
活用シーン
- 01AWS、Azure、GCP のリソース棚卸し
- 02IAM アクセスキーのローテーションなどセキュリティ状況の確認
- 03EC2 と EBS などリソース構成のレビュー
MCP 対応
本サーバーは、Steampipe の照会および確認機能をツールとして、またベストプラクティスのプロンプトと接続状態のリソースを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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のワークスペースと接続文字列
設定
AI アシスタントの設定ファイルに Steampipe MCP を追加します。
{
"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 を効果的に使う方法を LLM に教えます。その後は、何でも質問してください!
クラウドインフラストラクチャを探索します。
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 への変換を処理します
- 思い切って幅広く探索しましょう。LLM は、インフラストラクチャ全体にわたる知見の発見を支援できます!
機能
ツール
-
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 の設定を更新し、npm パッケージの代わりにローカルの dist/index.js を使用します。例:
{
"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 license のもとで公開されています。code of conduct もご確認ください。皆さまと協力できることを楽しみにしています!
Steampipe は、このオープンソースソフトウェアから Turbot HQ, Inc のみが開発した製品です。商用利用規約に基づいて配布されています。他のユーザーもソフトウェアを独自に配布できますが、Turbot の商標やクラウドサービスなどを使用することはできません。詳しくは Open Source FAQ をご覧ください。
参加する
協力したいけれど、何から始めればよいかわからない場合は、help wanted の課題を選んでください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。