mcpField
R
rls-check

rls-check

ローカル
github.com/Muhandis-onlineセキュリティ02 週間前に更新

rls-check について

rls-checkはSupabaseの行レベルセキュリティ設定を分析し、テーブルごとの公開リスクを非技術者向けにアラビア語で説明します。行データではなくポリシーのメタデータを読み取り、DBキーや接続情報は不要です。

主な機能

  1. 01テーブルをアクセスリスク別に分類
  2. 02結果をアラビア語で説明
  3. 03ポリシー、権限、列情報のみ参照
  4. 04SQLクエリと結果分析を提供
  5. 05コマンドラインとMCPに対応

活用シーン

  1. 01公開前にSupabaseのアクセス規則を確認
  2. 02創業者へのデータ公開リスクの説明
  3. 03CIステップでRLSチェックを実行

MCP 対応

MCPサーバーは、読み取り専用クエリを返すツールと、その結果を説明するツールを提供します。アシスタントは公式Supabase MCP経由でクエリを実行でき、rls-check自体はデータベース接続情報を保持しません。

設定

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

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

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

パッケージ
npmmuhandis-rls-check0.1.2

ツール

2

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

このツールにパラメーターはありません。

詳細

Supabase の RLS チェック:顧客データを読めるのは誰ですか?

ご自身の Supabase SQL Editor で実行する読み取り専用クエリと、結果をテーブルごとに説明するアナライザーです。

  • 公開(anon)キーを持つ誰もが読み取りや変更をできるテーブル
  • サインイン済みのユーザーが、他のユーザーの行を読み取れるテーブル
  • ロックされているテーブルと、安全なテーブル

結果は技術に詳しくない創業者向けのアラビア語で記載され、英語のラベル(exposed、check it、 locked、safe)が付いています。各項目から、修正方法を解説するアラビア語のレッスンにアクセスできます。

  • データは読み取りません。 クエリが読み取るのは、テーブルの説明情報のみです。RLS の状態、ポリシー、権限、カラム名が対象です。行は一切読み取りません。
  • キーやパスワードは不要で、データベースへの接続も行いません。クエリはご自身で実行するか、エージェントが公式の Supabase MCP を通じて実行します。
  • muhandis.online/tools/rls-check のブラウザツールと同じチェックです。 lib/rls-check.js はサイトのアナライザーで、バイト単位でそのままコピーしたものです。

使い方

1. ブラウザで使う(最も簡単)

チェックページを開き、クエリをコピーして Supabase で実行し、結果を貼り付けます。すべてブラウザ内で行われ、外部に送信されることはありません。

2. コマンドラインから使う
npx muhandis-rls-check query > query.sql     # the query: run it in your SQL Editor
npx muhandis-rls-check result.json           # paste the result cell into a file; this explains it
npx muhandis-rls-check result.json --json    # the same explanation as JSON

テーブルが公開されている場合は 1 で終了するため、CI のステップとして使用できます。

3. AI アシスタント向け(MCP)

Claude、Cursor、または任意の MCP クライアントに追加してください。アシスタントがクエリを実行し(たとえば公式の Supabase MCP を通じて)、このサーバーが結果を説明します。サーバー自体は接続情報を保持しません。

{
  "mcpServers": {
    "muhandis-rls-check": { "command": "npx", "args": ["-y", "muhandis-rls-check", "mcp"] }
  }
}

ツール:rls_check_query はクエリを返し、rls_check_explain は結果を説明します。

4. Claude のスキルとして使う

同じチェックを行うClaude スキルです。Claude がクエリを提示し、貼り付けた結果を skills/rls-check/scripts/rls_check.py を通じて解析します。これはアナライザーの Python 版で、テストにより lib/rls-check.js と同じ出力になることが保証されています。キーは不要で、ネットワークへの接続も行いません。

  • Claude アプリ: 最新リリースから rls-check.zip をダウンロードし、 Customize > Skills でアップロードして有効にします。コード実行を有効にする必要があります。
  • Claude Code:
/plugin marketplace add Muhandis-online/rls-check
/plugin install rls-check@muhandis

チェック項目

ラベルアラビア語意味
exposed公開RLS が無効で、訪問者ロールに権限が付与されている場合。個人情報カラムを含むテーブルに、条件が true のポリシーがある場合。訪問者が読み取れる security_invoker のないビューがある場合。または、すべてのユーザーに開かれた更新ポリシーまたは削除ポリシーがある場合
check it確認商品リストのように、個人情報カラムを含まない、誰もが読み取れるデータがある場合。または、お問い合わせフォームのように、サインインなしで挿入できる場合
lockedロック済みポリシーが設定されていない状態で RLS が有効になっている場合、または権限が付与されていない場合:アプリからアクセスできません
safe安全auth.uid() を通じて行の所有者に紐づけられたポリシーがある場合

個人情報カラムは、カラム名(email、phone、user_id、iban、national、iqama など)から判定されます。

制限事項

このツールは確認できるルールをチェックするもので、テストに代わるものではありません。チェック後、2 つのアカウントでサインインし、それぞれが自分の行だけを参照できることを確認してください。Supabase 独自の Security Advisor でも、関連する問題(RLS の無効化、security-definer ビュー、許可的なポリシー)を検出できます。このツールは、製品の所有者向けにアラビア語で説明を加え、各項目の修正方法へのリンクを提供します。

公開されたテーブルが見つかり、エンジニアと一緒に修正したい場合は、muhandis.online/services/fixをご覧ください。


サウジアラビアおよび GCC の企業向けソフトウェア会社 Muhandis が作成しました。MIT ライセンス。

コメント

MCP は初めてですか?

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

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