mcpField
A
Airlock RLS

Airlock RLS

ローカル
shipsealed.comセキュリティ02 週間前に更新

Airlock RLS について

Airlock RLSは、Supabaseアプリの開発者向けMCPサーバーで、公開サイトのキー漏えいとデータベースのRLS設定を確認します。公開ページのアセットをスキャンし、行データを読まずにカタログメタデータを監査します。

主な機能

  1. 01ページとJSバンドル内のservice_roleキーを検出
  2. 02無効または過度に許可的なRLSポリシーを監査
  3. 03anon/authenticatedのテナント間漏えいを確認
  4. 04監査ではカタログメタデータのみを読み取り
  5. 05検出したキー全体を表示しない

活用シーン

  1. 01公開前にフロントエンドのSupabaseキー漏えいを確認
  2. 02データベースのテーブルでRLSが有効か検証
  3. 03テナント間アクセスのポリシー問題を調査

MCP 対応

MCPクライアントに、サイトのキー検査とSupabase RLS監査のツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mateuszingano-airlock-rls": {
"command": "npx",
"args": [
"-y",
"airlock-rls-mcp"
]
}
}
}
起動コマンドnpx -y airlock-rls-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmairlock-rls-mcp0.1.1

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
site_urlstringはいスキャンするデプロイ済みサイトの公開 HTTPS URL(例:https://myapp.com)。公開 HTTP(S) ホストのみ使用できます。
max_scriptsintegerいいえ読み取る 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。