Steampipe MCP Server について
Steampipe MCP Serverは、MCPクライアントをPostgreSQLデータベース、特にSteampipeに接続し、読み取り専用クエリやスキーマ確認を可能にします。ClaudeからSteampipe接続やクラウドプロバイダープラグインのデータを調べる用途に向いています。
主な機能
- 01読み取り専用SQLクエリ
- 02スキーマ横断のテーブル一覧
- 03指定スキーマ内のテーブル一覧
- 04テーブルの列名と型を確認
活用シーン
- 01Steampipeのクラウドプロバイダーデータを検索
- 02クエリ前にスキーマを確認
- 03Claudeでデータベースの結果を調査
MCP 対応
Claude Desktopなどのクライアントに、クエリ、テーブル一覧、スキーマ確認のツールを提供し、PostgreSQLデータベースに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Steampipe MCP サーバー
主にSteampipeと連携して、PostgreSQL データベースとやり取りする MCP サーバーです。
Steampipe では接続ごとにスキーマがあり、すべてのスキーマを含む search_path が作成されますが、通常、public スキーマは空です。さらに、Steampipe の AWS、GCP などのクラウド向けプラグインには大量のテーブルがあるため、すべてを一覧表示するのは現実的ではありません。そのため、Claude Desktop には「steampipe の aws_all スキーマを使って、すべての ec2 インスタンスの一覧を表示してください」のようにプロンプトを入力することをおすすめします。こうすることで、Claude は schema コマンドの list_tables_in_schema を使って、取得するテーブルの数を絞り込む可能性が高くなります。
前提条件
1. Steampipe をインストールする
macOS:
brew tap turbot/tap
brew install steampipe
Linux:
sudo /bin/sh -c "$(curl -fsSL https://steampipe.io/install/steampipe.sh)"
Windows:
iwr -useb https://steampipe.io/install/steampipe.ps1 | iex
2. Steampipe サービスを起動する
Steampipe をバックグラウンドサービスとして起動します。
steampipe service start
次のコマンドで、サービスが実行中であることを確認できます。
steampipe service status
3. データベース URL を取得する
Steampipe の PostgreSQL 接続文字列は、次の場所にあります。
steampipe service status
出力内の Database URL を探します。通常、次のような形式です。
postgres://steampipe:password@localhost:9193/steampipe
サーバーの実行時に、この URL を --database-url 引数で指定できます。
steampipe-mcp-server --database-url postgresql://steampipe:password@localhost:9193/steampipe
注:サーバーが正しく動作するには、プロトコルが postgresql:// である必要があります。
4. 環境変数を設定する
毎回接続情報を渡す代わりに、環境変数を使ってデータベース接続を設定できます。
-
プロジェクトディレクトリに
.envファイルを作成し、データベース URL を記述します。STEAMPIPE_MCP_DATABASE_URL=postgresql://steampipe:password@localhost:9193/steampipe -
サーバーの起動時に、この設定が自動的に読み込まれます。
5. Claude Desktop にインストールする
公開済みバージョンを使用する場合は、Claude Desktop を直接設定できます。
- Claude Desktop を開きます
- Settings > Developer > Edit Config に移動します
- 次の設定を JSON ファイルに追加します。
{
"mcpServers": {
"steampipe": {
"command": "uvx",
"args": [
"steampipe-mcp-server",
"--database-url",
"postgresql://steampipe:password@localhost:9193/steampipe"
]
}
}
}
- 設定ファイルを保存して、Claude Desktop を再起動します
データベース URL を実際の Steampipe データベース URL に置き換えてください。この設定では、uvx を使って公開済みパッケージを直接実行します。
ツールは Claude 内の steampipe 名前空間で利用できます。
利用可能なツール
この MCP サーバーには、PostgreSQL データベースとのやり取りに役立つツールがいくつか用意されています。
query
データベースに対して読み取り専用の SQL クエリを実行し、結果を JSON として返します。
list_all_tables
データベースの search_path にあるすべてのスキーマ内のテーブルを一覧表示します。Steampipe は public スキーマを使用せず、接続ごとにスキーマがあります。
list_tables_in_schema
指定したスキーマ内のすべてのテーブルを一覧表示します。特に単一のスキーマだけを扱う場合に、テーブルの数を絞り込むのに便利です。
get_table_schema
指定したテーブルの列名とデータ型を取得します。テーブルは schema.table のような形式で指定してください。
インストール
開発環境のセットアップ(推奨)
最も簡単に始めるには、付属の Makefile を使用します。
# Create a virtual environment first
uv venv
# Install development dependencies
make dev-install
# View all available commands
make help
または、次の手順を実行できます。
- リポジトリをクローンします
- 仮想環境を作成します:
uv venv - 環境を有効にします:
source .venv/bin/activate(Linux/macOS)または.venv\Scripts\activate(Windows) - 開発用の依存関係をインストールします:
uv pip install -e .[dev]
開発
Makefile を使う
このプロジェクトには、一般的なタスクを実行する Makefile が含まれています。
# Run the server in development mode with Inspector
make dev
# Run tests
make test
# Run linting
make lint
# Run type checking
make typecheck
# Format code
make format
# Run all checks (lint and typecheck)
make check
# Install in Claude Desktop
make install-mcp
利用可能なコマンドをすべて確認するには、make help を実行してください。
実行方法
1. 開発モード(推奨)
# Using make
make dev
# OR manually
mcp dev src/steampipe_mcp_server/cli.py
これによりサーバーと MCP Inspector が起動し、query ツールなどを対話形式でテストできます。
2. CLI を使う
インストール後、次を実行します。
# Using make
make server
# OR with explicit URL
steampipe-mcp-server --database-url postgresql://steampipe:password@localhost:9193/steampipe
# OR with environment variable
export STEAMPIPE_MCP_DATABASE_URL=postgresql://steampipe:password@localhost:9193/steampipe
steampipe-mcp-server
テスト
次のコマンドでテストを実行します。
# Using make
make test
# OR manually
pytest
データベース接続が必要なテストでは、TEST_DB_URL 環境変数を設定してください。
コントリビュート
- リポジトリをフォークします
- 機能追加用の新しいブランチを作成します
- 変更を加えます
- テストとチェックを実行します:
make check test - プルリクエストを送信します
リリース
パッケージの新しいバージョンをリリースするには:
-
pyproject.tomlのバージョンを更新します -
すべてのチェックを実行し、問題がないことを確認します:
make check test -
GitHub でリリースにタグを付けます:
git tag v0.1.0 # Use appropriate version number git push origin v0.1.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。