Rls Doctor MCP server
Read-only Postgres/Supabase RLS audit with a rolled-back probe that proves who can read which rows.
0 stars1.9k downloads/wk
Reviews
Write oneNobody has reviewed Rls Doctor yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Rls Doctor tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it
- Code scan12 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Install Rls Doctor in Claude Code, Cursor or VS Code
Runs npx -y rls-doctor on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add rls-doctor -- npx -y rls-doctor
What the publisher says
From the Rls Doctor repository's README, as published. We do not edit it. Read it on GitHub
RLS Doctor
Don't trust your RLS. Prove it.
Can user A read user B's rows? Row Level Security is one of Postgres's strongest isolation tools, and one of the easiest to leave half-configured. You enable RLS, add a policy, and move on — but policies OR-combine, WITH CHECK silently falls back to USING, table owners bypass RLS entirely, and TRUNCATE is never protected at all.
rls-doctor reads your catalog and tells you what's actually reachable. And with probe, it stops analyzing and just shows you, impersonating your app roles in a transaction it always rolls back.
npx rls-doctor check # reads DATABASE_URL or SUPABASE_DB_URL
npx rls-doctor demo # no database needed: disposable Postgres, proven leakRLS Doctor Report
Generated: 2026-07-12T00:00:00.000Z
Schemas: public
Summary: 1 tables, 0 policies, highest risk HIGH
Findings: critical 0, high 1, medium 0, low 0, info 0
RLS Score: 90/100
public.orders
RLS disabled; force RLS disabled; 0 policies
[HIGH] RLS-disabled table is reachable by an application role
public.orders has no row-level checks; Application role authenticated and
can exercise SELECT granted to authenticated.
Fix: Enable RLS and add least-privilege policies for each application role.
Suggested SQL:
alter table "public"."orders" enable row level security;Prove a cross-tenant leak instead of guessing
Most RLS review is reading policies and hoping. probe is behavioral:
rls-doctor probe --connection "$DATABASE_URL" --schema public \
--app-roles authenticated --subjects \
00000000-0000-0000-0000-000000000001 \
00000000-0000-0000-0000-000000000002It sets request.jwt.claims inside the transaction, so auth.uid() resolves to each real Supabase user, then counts whose rows that identity can read.
- [high] probe-cross-owner-read rls_doctor_demo.orders:
Role authenticated reads rows across 2 distinct owner_id values
- [high] probe-cross-subject-read rls_doctor_demo.orders:
Role authenticated reads rows belonging to other usersIt never mutates anything. probe opens begin ... read only and always rolls back — safe against a production read replica.
Install
npx rls-doctor check # no install
npm install -g rls-doctor # globalRequires Node.js 20 or later. Prefer DATABASEURL or SUPABASEDB_URL with read-only audit credentials — passing a secret via --connection exposes it in shell history and process listings.
Commands
rls-doctor check --schema public --fail-on high
rls-doctor explain public.profiles
rls-doctor probe --app-roles authenticated --owner-columns tenant_idcheck options
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Rls Doctor: common questions
- Is Rls Doctor MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Rls Doctor safety report
- How do I install Rls Doctor?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Rls Doctor need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Rls Doctor maintained?
- The last commit was 2 days ago (2026-10-11). The latest release is v0.5.8.
- What can I use instead of Rls Doctor?
- Servers from other publishers that do the same job: PostgreSQL MCP server, SupaForge MCP server and Supabase MCP server. Compare all Rls Doctor alternatives.
Alternatives to Rls Doctor
Same job from other publishers: the closest match first, then the best rated.
- PostgreSQLMCP server for PostgreSQL: local, Docker, RDS, Neon, Supabase, or behind an SSH bastion.not reviewedEstablishedB
- SupaForgeFind and fix drift between Supabase environments: schema, RLS, roles, auth, storage and more.not reviewedGrowingA
SupabaseMCP server for interacting with the Supabase platformnot reviewedWidely usedA- Run402x402 pay-per-call infra for agents: $0.03 image generation, Postgres, auth, storage, functions.not reviewedEstablishedB
- NeonOfficial Neon MCP server for managing Neon projects and Lakebase Postgres databases.not reviewedEstablishedA