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 分