Airlock RLS

io.github.mateuszingano由 GitHub 帳號 mateuszingano 發布v0.1.1更新於 Oct 27, 2026

Scan a deployed site for an exposed Supabase service_role key and audit Row Level Security.

概覽

AI 產生的概覽

本機 MCP 封裝,用來掃描已部署網站是否外洩 Supabase service_role 金鑰,並稽核資料庫的資料列層級安全性(RLS)。

可以做什麼
  • 掃描已部署的網址及其 JS 打包檔,找出外洩的 Supabase service_role JWT 或 sb_secret_ 金鑰,且不會印出完整金鑰
  • 只讀取目錄中繼資料來稽核 Postgres 資料庫的 RLS,回報未啟用 RLS 的資料表、永遠為真的寬鬆原則,以及 anon/authenticated 租戶資料外洩
  • 把結果交回給編碼助理,方便在開發過程中修正問題
適用情境
在開發或檢視以 Supabase 為後端的應用程式時,想讓助理檢查線上網站是否外洩 service_role 金鑰,或確認資料列層級安全性已啟用且沒有過度開放。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 18 或更新版本。金鑰掃描只需公開的網站網址;RLS 稽核需要 Postgres 連線字串,說明指出唯讀角色即可。
安裝前請注意
RLS 稽核需要 Postgres 連線字串,這是可存取資料庫的憑證,建議使用唯讀角色。掃描會透過網路抓取目標網站及其 JS 打包檔。結果可能揭露安全弱點;README 另指向一個獨立的託管監控產品。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Airlock RLS,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Airlock RLS MCP — Supabase leak checks inside your AI coding agent

Let Cursor, Claude Code, or any MCP client check a Supabase app for leaks while it builds it. It catches the most common vibe-coding footgun: a service_role key shipped to the browser, and Row Level Security that's off or wide open.

The engine is Airlock RLS (npm i airlock-rls), the CI gate for Supabase RLS. This package is a thin MCP wrapper around it.

Two tools

scan_site_for_exposed_key — give it a deployed URL. It reads the page and its JS bundles for an exposed Supabase service_role key (a service_role JWT or an sb_secret_... key). No database, no credentials, just the public URL. A hit means anyone who reads it bypasses every RLS policy. It never prints the full key.

audit_supabase_rls — give it a Postgres connection string. It fails on RLS-off tables, permissive (always-true) policies, and anon/authenticated tenant leaks. It reads only catalog metadata (pg_tables, pg_policies, grants), never your row data, so a read-only role is enough.

Add it to your MCP client

json
{  "mcpServers": {    "airlock": {      "command": "npx",      "args": ["-y", "airlock-rls-mcp"]    }  }}

That's the same block for Cursor (~/.cursor/mcp.json), Claude Desktop (claude_desktop_config.json) and other MCP clients. With Claude Code:

bash
claude mcp add airlock -- npx -y airlock-rls-mcp

Then ask the agent things like "scan https://myapp.com for an exposed Supabase key" or "audit the RLS on this database" and it calls the tools.

Requirements

Node.js 18 or newer.

Develop

bash
npm installnpm run smoke   # starts the server and checks both tools are advertised

More

Guides on Supabase RLS, a live cross-tenant demo, and the hosted Airlock Monitor (continuous checks of your live database): shipsealed.com

License

MIT © Mateus Zingano

來源:README.md,提交 c4fdef2

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Oct 14, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分