Airlock RLS について
Airlock RLSは、Supabaseアプリの開発者向けMCPサーバーで、公開サイトのキー漏えいとデータベースのRLS設定を確認します。公開ページのアセットをスキャンし、行データを読まずにカタログメタデータを監査します。
主な機能
- 01ページとJSバンドル内のservice_roleキーを検出
- 02無効または過度に許可的なRLSポリシーを監査
- 03anon/authenticatedのテナント間漏えいを確認
- 04監査ではカタログメタデータのみを読み取り
- 05検出したキー全体を表示しない
活用シーン
- 01公開前にフロントエンドのSupabaseキー漏えいを確認
- 02データベースのテーブルでRLSが有効か検証
- 03テナント間アクセスのポリシー問題を調査
MCP 対応
MCPクライアントに、サイトのキー検査とSupabase RLS監査のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| site_url | string | はい | スキャンするデプロイ済みサイトの公開 HTTPS URL(例:https://myapp.com)。公開 HTTP(S) ホストのみ使用できます。 |
| max_scripts | integer | いいえ | 読み取る JS バンドルの数(デフォルト:50)。サイトにそれ以上ある場合、すべてを調べたかのように示すのではなく、未スキャンの数を結果に表示します。 |
詳細
Airlock RLS MCP — AI コーディングエージェント内で Supabase の漏えいをチェック
Cursor、Claude Code、または任意の MCP クライアントを使って、Supabase アプリの構築中に漏えいをチェックできます。 最もよくあるバイブコーディングの落とし穴、つまり
service_roleキーをブラウザーに含めてしまうことや、Row Level Security が無効または無制限に開放されている状態を検出します。
エンジンには Airlock RLS(npm i airlock-rls)を使用します。これは Supabase RLS 用の CI ゲートです。このパッケージは、その薄い MCP ラッパーです。
2 つのツール
scan_site_for_exposed_key — デプロイ済みの URL を渡します。ページとその JS バンドルを読み取り、公開された Supabase service_role キー(service_role JWT または sb_secret_... キー)を探します。データベースも認証情報も不要で、公開 URL だけで使えます。キーが見つかると、それを読んだ人は誰でもすべての RLS ポリシーを回避できます。キー全体が表示されることはありません。
audit_supabase_rls — Postgres 接続文字列を渡します。RLS が無効なテーブル、制限のない(常に true の)ポリシー、anon/authenticated によるテナント間の漏えいがある場合、チェックに失敗します。読み取るのはカタログのメタデータ(pg_tables、pg_policies、権限)のみで、行データは一切読み取りません。そのため、読み取り専用ロールで十分です。
MCP クライアントに追加する
{
"mcpServers": {
"airlock": {
"command": "npx",
"args": ["-y", "airlock-rls-mcp"]
}
}
}
Cursor(~/.cursor/mcp.json)、Claude Desktop(claude_desktop_config.json)、その他の MCP クライアントで同じ設定を使えます。Claude Code の場合:
claude mcp add airlock -- npx -y airlock-rls-mcp
その後、エージェントに 「https://myapp.com で Supabase キーが公開されていないかスキャンして」 や 「このデータベースの RLS を監査して」 などと頼むと、ツールが呼び出されます。
要件
Node.js 18 以降。
開発
npm install
npm run smoke # starts the server and checks both tools are advertised
詳細
Supabase RLS に関するガイド、テナント間のライブデモ、ホスト型の Airlock Monitor(稼働中データベースの継続的なチェック)については、shipsealed.com をご覧ください。
ライセンス
MIT © Mateus Zingano
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。