Stackql について
StackQL は、SQL のセマンティクスでクラウドや SaaS サービスのリソース状態を照会・変更するオープンソースのエンジンです。単一の署名付きバイナリとして提供され、複数のクラウド基盤を管理する開発者や DevOps チーム向けです。
主な機能
- 01SQL によるクラウドおよび SaaS リソースの照会と構成
- 02Windows、macOS、Linux 向けの単一署名付きバイナリ
- 03プロバイダー検索やスキーマ探索の MCP ツール
- 04shell、exec、Postgres プロトコルのサーバーモード
活用シーン
- 01SQL で複数のクラウドプラットフォームのリソース状態を照会
- 02CI 上で AI エージェントによる読み取り専用の基盤監査を実行
- 03MCP クライアントからリソースのライフサイクル操作を実行
MCP 対応
StackQL は stackql mcp コマンドで stdio 経由に起動する MCP サーバーです。Claude、VS Code、Cursor などの MCP クライアントに、クラウドリソースの照会とプロビジョニングのツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
16掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| format | string | いいえ | テキストコンテンツのレンダリング形式:markdown(デフォルト)または json |
| method | string | いいえ | |
| provider | string | いいえ | |
| resource | string | いいえ | |
| row_limit | integer | いいえ | |
| service | string | いいえ |
詳細
SQL を使用してクラウドリソースをデプロイ、管理、クエリし、API を操作する
エージェント時代のユニバーサルインターフェース。データとしての構成。コンテキストとしてのインフラストラクチャ。
ドキュメントを読む »
問題を報告 ·
機能をリクエスト ·
開発者ガイド ·
BYO プロバイダー
プロジェクトについて
StackQL は、Golang で構築されたオープンソースプロジェクトです。SQL のセマンティクスを使用して、さまざまなローカルおよびリモートインターフェースを介し、サービスやリソースの状態を作成、変更、クエリできます。このようなインターフェースには通常、クラウドや SaaS プロバイダー(Google、AWS、Azure、Okta、GitHub など)が含まれますが、これらに限定されません。

仕組み
StackQL はスタンドアロンアプリケーションです。クライアントモード(exec または shell 経由)で使用するか、Postgres ワイヤープロトコルクライアント(psycopg2 など)を使用してサーバーモード(srv)でアクセスできます。
StackQL は SQL ステートメントを解析し、(クラウド)リソースプロバイダーへの API リクエストに変換します。API 呼び出しが実行され、その結果がユーザーに返されます。
StackQL プロバイダーインターフェースは通常、プロバイダー仕様の OpenAPI 拡張として定義されています。これらの定義を使用して、SQL スキーマと API クライアントを生成します。プロバイダー定義のソースはStackQL Registryに保存されています。プロバイダーとのやり取りのセマンティクスは、私たちの any-sdk ライブラリで定義されています。内部の詳細については、ローカルの AGENTS.md ファイルとany-sdk の AGENTS.mdを参照してください。
StackQL のコンテキスト図
以下のコンテキスト図は、StackQL のアーキテクチャを大まかに示しています。
flowchart LR
subgraph StackQL
direction BT
subgraph ProviderDefs
Registry[Provider Registry Docs]
end
subgraph App
Proc[$ stackql exec\n$ stackql shell\n$ stackql srv]
style Proc fill:#000,stroke:#000,color:#fff,text-align:left;
%% ,font-family:'Courier New', Courier, monospace
end
end
User((User)) <--> StackQL <--> Provider[Cloud Provider API]
ProviderDefs --> App
より詳細な設計ドキュメントはこちらにあります。
MCP サーバー
StackQL はMCPサーバーです。40 以上のクラウドおよび SaaS プロバイダーに対して、AI エージェントが SQL を使用できます。MCP 対応クライアント(Claude、VS Code、Cursor など)を StackQL に接続すると、SQL を使用してクラウドリソースをクエリおよびプロビジョニングできます。
stdio 経由で実行します。
stackql mcp --mcp.server.type=stdio
StackQL MCP は公式 MCP レジストリに io.github.stackql/stackql-mcp として公開されており、npm、PyPI、Docker、GitHub Action、.mcpb バンドルを通じて配布されています。インストール方法を選び、対応するブロックを MCP クライアントの設定に追加してください。
npm(npx)
{
"mcpServers": {
"stackql": {
"command": "npx",
"args": ["-y", "@stackql/mcp-server"]
}
}
}
PyPI(uvx)
{
"mcpServers": {
"stackql": {
"command": "uvx",
"args": ["stackql-mcp-server"]
}
}
}
Docker
{
"mcpServers": {
"stackql": {
"command": "docker",
"args": ["run", "-i", "--rm", "stackql/stackql-mcp"]
}
}
}
.mcpb バンドル
ご利用のプラットフォーム用のバンドルを最新リリースからダウンロードし、MCP クライアントにインストールしてください(
.mcpbに対応しているクライアントではワンクリックでインストールできます)。
stackql-mcp-linux-x64.mcpbstackql-mcp-linux-arm64.mcpbstackql-mcp-windows-x64.mcpbstackql-mcp-darwin-universal.mcpb
GitHub Actions
StackQL MCP をエージェント型 CI ワークフローに組み込みます。デフォルトは
read_onlyモードで、CI に適した安全な設定です。
- uses: stackql/setup-stackql-mcp@v1
with:
mode: read_only
クライアントごとのセットアップ、認証、サーバーモードについては、MCP のインストールと使い方に関する完全なドキュメントを参照してください。
インストール
StackQL は Windows、MacOS、Linux、Docker、GitHub Actions などで利用できます。お使いのプラットフォームに応じたインストール手順を以下でご確認ください。
MacOS へのインストール
- Homebrew(
amd64およびarm64)brew install stackqlまたはbrew tap stackql/tap && brew install stackql/tap/stackql
- MacOS PKG インストーラー(
amd64およびarm64)- 最新の StackQL 用 MacOS PKG インストーラーをダウンロードします
- インストーラーを実行し、画面の指示に従います
Windows へのインストール
- MSI インストーラー
- 最新の StackQL 用 MSI インストーラーをダウンロードします
- インストーラーを実行し、画面の指示に従います
- Chocolatey
- Chocolatey をインストールします
choco install stackqlを実行します
- ZIP アーカイブ
- 最新の StackQL 用 Windows ZIP アーカイブをダウンロードします
- アーカイブ(コード署名済みの
stackql.exeファイル)を任意のディレクトリに展開します - ディレクトリを
PATH環境変数に追加します(任意)
Linux へのインストール
- ZIP アーカイブ
- 最新の StackQL 用 Linux ZIP アーカイブをダウンロードします
- または、
curl -L https://bit.ly/stackql-zip -O && unzip stackql-zipを実行します
- または、
- アーカイブ(
stackqlファイル)を任意のディレクトリに展開します - ディレクトリを
PATH環境変数に追加します(任意)
- 最新の StackQL 用 Linux ZIP アーカイブをダウンロードします
DockerHub から StackQL を取得する
DockerHub で利用可能な StackQL イメージをすべて確認できます。利用可能なイメージには
stackql、stackql-jupyter-demoなどがあります。次のコマンドで最新の StackQL ベースイメージを取得できます。
docker pull stackql/stackql
インフラストラクチャではなく、監査結果が必要ですか?標準イメージを使って、読み取り専用のクロスクラウドセキュリティおよび FinOps 監査を 1 つのコマンドで実行できます。Docker 監査クイックスタートをご覧ください。
GitHub Actions で StackQL を使う
GitHub Actions のワークフローで StackQL を使い、クラウドインフラストラクチャのプロビジョニング、IaC の保証、コンプライアンス/セキュリティを自動化できます。利用可能な GitHub Actions には、
setup-stackql、stackql-execなどがあります。
使い方
StackQL は、対話型の REPL シェル、exec コマンド、または Postgres ワイヤプロトコルを使ったサーバーとして利用できます。
ℹ️ StackQL はデータベースを必要とせず、インストールもしません。
-
対話型シェル
# run interactive stackql queries stackql shell --auth="${AUTH}" -
ステートメントまたはファイルを実行
stackql exec --auth="${AUTH}" -i myscript.iql --iqldata vars.jsonnet --output json # or stackql exec --auth="${AUTH}" "SELECT id, status FROM aws.ec2.instances WHERE region = 'us-east-1'"ℹ️
execコマンドでは、--outputフラグを使ってjson、csv、table、textの出力形式を指定できます。ℹ️ StackQL は
jsonnetまたはjsonを使ったパラメーターの受け渡しに対応しています。詳しくは変数の使用をご覧ください。 -
サーバー
# serve client requests over the Postgres wire protocol (psycopg2, etc.) # clients are not authenticated unless mTLS is configured via --pgsrv.tls, so keep the listener on loopback otherwise stackql srv --pgsrv.address=127.0.0.1 --auth="${AUTH}"
その他の例については、ブログをご覧ください。
コントリビューション
コントリビューションを歓迎し、奨励しています。コントリビューションの方法については、コントリビューションガイドをご覧ください。
ライセンス
MIT ライセンスのもとで配布されています。詳しくは LICENSE をご覧ください。使用しているサードパーティソフトウェアのライセンスは、/docs/licenses ディレクトリに含まれています。
お問い合わせ
Twitter の @stackql からご連絡いただくか、[email protected] までメールをお送りください。または、ディスカッションで会話を始めてください。
謝辞
以下のフォークが、私たちの取り組みを支えています。
- vitess
- kin-openapi
- gorilla/mux
- readline
- psql-wire
- mcp-postgres
golangMCP SDK- …など。記載漏れがありましたらご容赦ください。
これらの成果に心より感謝いたします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
