Claude CodeとSupabase MCPを接続すると、データベースの構造やログを確認しながら、コードとの不整合を調べられます。この記事では、対象プロジェクトを指定した接続、認証、読み取り専用設定を順番に解説します。
SQLやマイグレーション、Edge Functionsを扱う場合は、接続先と操作範囲の確認が重要です。設定コマンドだけでなく、接続後の確認方法と、つながらない場合の調べ方も整理しました。
3行まとめ
- 公式のホスト型MCPへHTTPで接続し、通常はブラウザで認証します。
- project_refはSupabase側の対象指定、–scope projectはClaude Code側の設定共有範囲です。
- read_only、features、認証権限を組み合わせ、必要な情報と操作に絞って利用します。
2026年10月26日更新
公式ドキュメントを再確認し、接続スコープの違い、本番データへの接続方針、ログ用ツール、確認ダイアログ、Pluginの説明を更新しました。
本記事は公式情報に基づく設定ガイドです。編集部がこの記事の構成ですべての操作を実機検証したものではありません。
Supabase MCPとは?
Supabase MCPは、AIツールとSupabaseをModel Context Protocolで接続する公式サーバーです。利用可能なツールを通じて、プロジェクトのデータベースや関連情報を扱います。
ホスト型の基本エンドポイントは次のURLです。
https://mcp.supabase.com/mcp
Claude Codeへ接続すれば、手元のコードと実際のDB構造を照合できます。ただし、アプリ利用者の権限で動く接続とは異なります。開発者向けの接続として管理してください。
Claude CodeとSupabase MCPの接続方法
1.対象プロジェクトを確認する
Supabase Dashboardで、接続したいプロジェクトの参照IDを確認します。以下のYOUR_PROJECT_REFを実際の値へ置き換えてください。
初回の調査向けに、プロジェクト指定・読み取り専用クエリ・必要なツール群を組み合わせた例です。
claude mcp add --scope local --transport http supabase "https://mcp.supabase.com/mcp?project_ref=YOUR_PROJECT_REF&read_only=true&features=database,debugging,development,docs"
URLは、&をシェルに解釈させないよう引用符で囲みます。すでに同じ名前で登録している場合は、重複追加せず既存設定を確認してください。
2.ブラウザで認証する
Claude Code内で次のメニューを開き、supabaseを選んで認証を進めます。
/mcp
ブラウザでは、対象プロジェクトが所属するOrganizationへのアクセスを確認します。通常のホスト型接続では、Personal Access Tokenを手動発行せず認証できます。
3.接続と対象を確認する
claude mcp list
claude mcp get supabase
登録状態を確認したら、対象を限定して最初の調査を依頼します。
接続先のプロジェクトを確認してください。
公開されているMCPツールを使い、
publicスキーマのテーブル構造を調べてください。
顧客データの本文や秘密情報は取得せず、
テーブル名とカラム構成を報告してください。
変更操作は行わないでください。
これは作業範囲を伝える例です。読み取り制限そのものは、接続設定と認証権限でも確認します。
重要:2種類の「project scope」は別
| 設定 | 意味 |
|---|---|
--scope local |
現在のプロジェクトで自分が使うClaude Code設定。 |
--scope project |
Claude Codeの.mcp.jsonへ保存し、チームと共有する設定。 |
project_ref=... |
Supabase MCPの接続対象を、指定したプロジェクトに絞る設定。 |
–scope projectだけではDBの対象は絞れない
チーム共有の設定を選んでも、Supabase側の対象指定にはなりません。接続先を限定するにはproject_refを確認してください。
共有する.mcp.jsonには、アクセストークンなどの秘密値を直接保存しないようにします。
read_only・project_ref・featuresの違い
read_only=true
SQLクエリを読み取り専用のPostgresユーザーで実行する設定です。
project_ref
対象プロジェクトを指定します。このモードではアカウント管理ツールが無効になります。
features
公開するツール群を選び、使わない機能を減らします。
これらは認証権限の代わりではありません。接続URL、サービス上の権限、実際に利用可能なツールを合わせて確認します。
特にread_onlyを「すべての管理操作を一律に禁止する設定」とだけ理解しないことが重要です。読み取り可能なデータにも機密情報が含まれる場合があります。
Supabase MCPでできること
以下は公式に案内されている主な機能です。利用可否は、有効なツール群、認証権限、接続モードによって変わります。
| 分野 | 主な用途 |
|---|---|
| Database | テーブル・拡張・マイグレーションの確認、SQL実行、変更適用。 |
| Debugging | ログ調査、セキュリティ・性能に関するAdvisorの確認。 |
| Development | プロジェクト情報やTypeScript型の取得。 |
| Edge Functions | 一覧・内容の確認、デプロイなど。 |
| Docs | 公式ドキュメントの検索。 |
| Branching | 開発用ブランチの管理。公式では実験的機能・有料プラン向けと案内。 |
SQL・マイグレーションを扱う流れ
DB変更では、現在の状態を確認してから差分を作り、検証後に適用する流れが重要です。
1.スキーマと履歴を調べる
対象テーブル、制約、既存マイグレーションを確認します。
2.コードと照合する
APIや型定義が、実際のDBと一致するか調べます。
3.変更案をレビューする
既存データ、権限、互換性、失敗時の対応を確認します。
4.開発環境で検証する
変更適用後の動作と、マイグレーション履歴を確認します。
読み取り専用接続で調査した後、書き込みが必要になった場合は、接続対象と権限を改めて確認します。SQLが生成されたことと、適用してよいことは別です。
ログ調査とTypeScript型生成
現在の公式ツール一覧では、ログをSQLで絞り込み・集計するquery_logsが案内されています。対象期間やサービスを指定し、必要な範囲を調べましょう。
型生成は、DBスキーマとコード側の型を揃える用途に役立ちます。ただし、生成した型をファイルへ反映し、アプリで確認する作業は別途必要です。
ログは日時と再現操作を指定する
「Authが動かない」だけでなく、対象環境、時刻、どの操作で失敗したかを伝えると、不要なログ取得を減らしやすくなります。
本番DBへ接続してもよい?
現在のSupabase公式は、本番の証拠が必要な作業に限って接続し、プロジェクト指定、読み取り専用、ツール群の制限、必要最小限のクエリを使う方針を示しています。
旧稿の「本番へ接続しないことを一律に推奨」という説明を、この方針へ更新しました。通常の実装や変更テストは、開発環境で行う構成が適しています。
開発者向けMCPを顧客向けAIへ転用しない
このMCPは開発者の権限で動くため、一般のアプリ利用者へそのまま提供する接続ではありません。顧客向け機能には、利用者ごとの認証とアクセス制御を別途設計します。
最新情報:確認ダイアログは追加の仕組み
公式には、費用が発生するリソース作成や、破壊的と判定されたSQLについて、MCPのElicitationを使う確認フローも案内されています。
ただし、サーバーとクライアントの対応状況に左右され、すべての危険な操作を検出する保証ではありません。ダイアログが出ないことを、安全なSQLの証明とは扱わないようにします。
Edge Functionの秘密値を設定する対応フローでは、値をSupabase Dashboardへ入力します。秘密値をチャットやMCP引数へ渡す運用とは区別してください。
ローカルSupabaseに接続する場合
Supabase CLIの標準的なローカル構成では、次のMCP URLが案内されています。
http://localhost:54321/mcp
ただし、複数プロジェクトや実験的なstack設定ではポートが異なる場合があります。次の出力に表示された接続先を確認してください。
supabase status
別の端末やコンテナでClaude Codeを使う場合、localhostが指す環境も変わります。
Supabase MCPに接続できないときの確認点
| 状態 | 確認すること |
|---|---|
| サーバーが表示されない | 登録したディレクトリと設定スコープ、claude mcp listの結果。 |
| 認証が必要と表示される | /mcpから認証し、正しいアカウントとOrganizationを選んだか。 |
| 対象が見つからない | project_ref、アカウント権限、対象プロジェクトの状態。 |
| ツールが見つからない | features、read-only、認証権限、クライアントの対応状況。 |
| ローカルへ接続できない | CLIの起動状態、supabase status、実際のポート。 |
ツールを使えない理由を確認する前に、対象制限や読み取り制限をすべて外す方法は避けましょう。まず必要な操作と不足している権限を特定します。
OAuthとPersonal Access Tokenの違い
通常の対話利用はブラウザ認証が基本です。一方、ブラウザ認証が難しいCIなどではPATを使う構成も公式に案内されています。
現在のPATには、対象Organization・Projectと権限を絞る仕組みがあります。トークンを使う場合も、アカウント全体の権限を渡す必要があるとは限りません。
認証情報は実行環境の秘密情報管理で扱い、リポジトリや記事へ貼り付けないようにします。
Supabase Pluginとの違い
Supabase Pluginは、MCPとAgent Skillsをまとめた導入パッケージです。旧稿の「Pluginは知識だけ」という理解では不十分です。
MCPを個別設定
接続URL、対象Project、機能群を自分で指定します。
Pluginを導入
MCPと作業手順をまとめて導入できます。認証後の接続設定も確認します。
Pluginと手動設定を併用する場合は、同じ接続が重複していないか確認してください。どちらも、導入しただけで最終的なアクセス範囲を確認しなくてよいわけではありません。
よくある質問
read-onlyなら機密情報も安全?
書き込み制限と、情報を読める範囲は別です。必要なデータだけを取得し、結果の転記先も確認します。
–scope projectでSupabaseを1つに絞れる?
絞れません。これはClaude Code設定の共有範囲です。Supabase側の対象指定にはproject_refを使います。
必ずPATを発行する必要がある?
通常のホスト型接続では不要です。CIなど、利用環境に応じて別の認証方式を選びます。
MCPで確認できれば、アプリのRLSも正常?
それだけでは判断できません。開発者の接続とアプリ利用者の権限は異なるため、実際のユーザー権限でアクセスを検証する必要があります。
OmochiXの見解:DBとコードの対応を確認できることが価値
OmochiX編集部の見解
Supabase MCPは、現在のDBやログを根拠にコードを調べる手段として役立ちます。SQLを生成する速さだけでなく、対象を間違えず、変更の影響を確認できる運用が重要だと考えます。
Vercelやブラウザツールを組み合わせる場合も、フロントエンドのPreviewがどのDBを使っているかを確認しましょう。別環境の情報を照合すると、誤った修正につながる可能性があります。
まとめ
Claude CodeとSupabase MCPの接続では、対象Projectを指定して認証し、必要なツールとアクセスを確認します。特に設定スコープとproject_refは混同しないようにしましょう。
まずは構造やログの調査から始め、変更は開発環境で検証します。接続先、権限、確認結果を残せる構成が、継続して使いやすい開発環境につながります。
関連記事
出典・公式ドキュメント
- Supabase MCP Server — 接続、機能、設定、認証、確認フロー。
- Supabase Personal Access Tokens — 対象と権限を絞ったトークン。
- Supabase Plugin for AI Coding Agents — MCPとSkillsの導入パッケージ。
- Claude Code MCP公式ドキュメント — 設定スコープと接続管理。
機能と認証方式は更新される場合があります。実際の接続で公開されたツールと、利用中のクライアントの対応状況を確認してください。
最終確認日:2026年10月26日