Supabase MCP Serverのセットアップ方法 (2026年版)
Model Context Protocol を使用して、AI アシスタントを Supabase データベースに接続する
Hyperealで構築を始めよう
Kling、Flux、Sora、Veoなどに単一のAPIでアクセス。無料クレジットで開始、数百万規模まで拡張可能。
クレジットカード不要 • 10万人以上の開発者 • エンタープライズ対応
2026年版:Supabase MCP サーバーの設定方法
Model Context Protocol (MCP) は、AIアシスタントが外部ツールやデータソースと対話できるようにするためのオープン標準です。Supabase MCP サーバーを使用すると、Claude Desktop、Claude Code、Cursor、Windsurf、およびその他の MCP 対応クライアントから、データベース クエリ、テーブル管理、Edge Functions、Storage など、Supabase プロジェクトに直接アクセスできるようになります。
これにより、AIアシスタントが本番データの照会、テーブルの作成、マイグレーションの実行、RLS ポリシーの管理、問題のデバッグなどを、手動で SQL をコピー&ペーストすることなく行えるようになります。
MCP とは?
MCP (Model Context Protocol) は、AIモデルが外部システムと対話するための標準化された方法として Anthropic によって作成されました。AIアシスタントのためのユニバーサルなプラグインシステムと考えてください。
仕組み:
AI アシスタント <---> MCP クライアント <---> MCP サーバー <---> Supabase
(Claude など) (内蔵) (ユーザーが設定) (プロジェクト)
MCP サーバーは、AIが呼び出すことができる「ツール」を公開します。Supabase の場合、これらのツールには SQL クエリの実行、テーブルのリスト取得、Storage バケットの管理などが含まれます。
事前準備
Supabase MCP サーバーをセットアップする前に、以下が必要です。
- Supabase プロジェクト(無料プランで可)
- MCP 対応の AI クライアント(Claude Desktop、Claude Code、Cursor など)
- Node.js 18+ がインストールされていること
- Supabase のプロジェクト URL と service_role キー
Supabase 認証情報の取得:
- Supabase Dashboard に移動します。
- プロジェクトを選択します。
- Settings > API に移動します。
- Project URL をコピーします(例:
https://abcdefg.supabase.co)。 - service_role key をコピーします(anon キーではありません。MCP には昇格したアクセス権限が必要です)。
方法 1: 公式 Supabase MCP サーバー
Supabase は、すべての主要な MCP クライアントで動作する公式の MCP サーバーパッケージを提供しています。
Claude Desktop での設定
ステップ 1: MCP サーバーのインストール
Supabase MCP サーバーは npx 経由で実行されるため、グローバルにインストールする必要はありません。Claude Desktop の設定で構成します。
ステップ 2: Claude Desktop の構成
Claude Desktop の設定ファイルを開きます:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Supabase MCP サーバーの構成を追加します:
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": [
"-y",
"@supabase/mcp-server-supabase@latest",
"--supabase-url",
"https://your-project-id.supabase.co",
"--supabase-service-role-key",
"your-service-role-key-here"
]
}
}
}
ステップ 3: Claude Desktop の再起動
Claude Desktop を一度終了して再度開きます。ツールメニュー(ハンマーのアイコン)に Supabase のツールが表示されるはずです。
Claude Code での設定
Claude Code (ターミナルベースの CLI) の場合は、プロジェクト構成に MCP サーバーを追加します:
# Supabase MCP サーバーをプロジェクトに追加
claude mcp add supabase \
--command "npx -y @supabase/mcp-server-supabase@latest \
--supabase-url https://your-project-id.supabase.co \
--supabase-service-role-key your-service-role-key-here"
または、.claude/mcp.json ファイルに手動で追加します:
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": [
"-y",
"@supabase/mcp-server-supabase@latest",
"--supabase-url",
"https://your-project-id.supabase.co",
"--supabase-service-role-key",
"your-service-role-key-here"
]
}
}
}
Cursor での設定
Cursor では、Settings > MCP を開き、新しいサーバーを追加します:
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": [
"-y",
"@supabase/mcp-server-supabase@latest",
"--supabase-url",
"https://your-project-id.supabase.co",
"--supabase-service-role-key",
"your-service-role-key-here"
]
}
}
}
利用可能な MCP ツール
接続されると、AIアシスタントは以下のツールにアクセスできるようになります:
| ツール | 説明 | 使用例 |
|---|---|---|
list_tables |
データベース内のすべてのテーブルを表示 | 「プロジェクト内の全テーブルを見せて」 |
execute_sql |
任意の SQL クエリを実行 | 「今週登録した全ユーザーを照会して」 |
get_table_schema |
テーブルの列情報を取得 | 「orders テーブルにはどんな列がある?」 |
create_table |
新しいテーブルを作成 | 「name、price、SKU を持つ products テーブルを作って」 |
insert_rows |
テーブルにデータを挿入 | 「products テーブルに 5 つのサンプル製品を追加して」 |
update_rows |
既存の行を更新 | 「非アクティブな全ユーザーのステータスを archived にして」 |
delete_rows |
テーブルから行を削除 | 「orders テーブルからすべてのテストデータを削除して」 |
list_storage_buckets |
Storage バケットをリスト表示 | 「すべてのストレージバケットを表示して」 |
list_edge_functions |
Edge Functions をリスト表示 | 「どの Edge Functions がデプロイされている?」 |
get_project_info |
プロジェクトのメタデータを取得 | 「プロジェクトの構成を見せて」 |
apply_migration |
SQL マイグレーションを適用 | 「email インデックスを追加するマイグレーションを作成して」 |
list_rls_policies |
RLS ポリシーをリスト表示 | 「profiles テーブルにはどんなセキュリティポリシーがある?」 |
実践的な例
例 1: データベースの探索
接続後、AIアシスタントに自然言語で質問するだけです:
ユーザー: 私の Supabase プロジェクトにはどんなテーブルがありますか?
AI: データベーススキーマを確認します。
[list_tables を呼び出し]
6つのテーブルがあります:
- users (1,247 行) - ユーザーアカウント
- profiles (1,245 行) - ユーザープロフィール情報
- orders (3,892 行) - 注文データ
- products (156 行) - 製品カタログ
- order_items (8,431 行) - 注文ごとの個別アイテム
- categories (12 行) - 製品カテゴリー
例 2: クエリの作成と実行
ユーザー: 今月の合計注文額が多い上位10人の顧客を表示して。
AI: データベースを照会します。
[execute_sql を呼び出し]
2026年2月の注文額上位10名の顧客はこちらです:
| 順位 | 顧客名 | メールアドレス | 合計支出額 |
|------|----------|-------|------------|
| 1 | Jane Smith | jane@... | $2,450.00 |
| 2 | Bob Chen | bob@... | $1,890.50 |
...
例 3: テーブルとマイグレーションの作成
ユーザー: reviews テーブルが必要です。各レビューはユーザーと製品に紐付き、
評価 (1-5)、タイトル、本文、タイムスタンプを持つようにしてください。
また、ユーザーが自分のレビューのみ編集でき、全員がすべてのレビューを
読めるように適切な RLS ポリシーを追加してください。
AI: テーブルと RLS ポリシーを作成します。
[SQL を使用して apply_migration を呼び出し]
完了しました。以下を作成しました:
- 指定されたすべての列を持つ reviews テーブル
- users(id) と products(id) への外部キー
- 評価を 1 から 5 の間に制限する CHECK 制約
- RLS ポリシー:誰でも SELECT 可能
- RLS ポリシー:認証済みユーザーが INSERT 可能 (user_id = auth.uid())
- RLS ポリシー:ユーザーは自分のレビューのみ UPDATE/DELETE 可能
例 4: 問題のデバッグ
ユーザー: ユーザーからチェックアウトが失敗するという報告があります。
最近の失敗した注文があるか、どのようなエラーが記録されているか確認してください。
AI: 調査します。
[execute_sql を呼び出し - エラーステータスの注文を照会]
[execute_sql を呼び出し - Edge Function のログを確認]
原因がわかりました。過去 1 時間に 23 件の失敗した注文があり、
すべて "stripe_payment_intent_failed" というエラーが出ています。
Edge Function のログには Stripe からの 401 Unauthorized レスポンスが
記録されています。Stripe の API キーが期限切れか、変更された可能性があります。
方法 2: コミュニティ版 Postgres MCP サーバー
Supabase 固有のツール以外に、より広範な PostgreSQL アクセスが必要な場合は、Supabase の接続文字列を使用して Postgres MCP サーバーを使用できます。
{
"mcpServers": {
"supabase-postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://postgres:your-password@db.your-project-id.supabase.co:5432/postgres"
]
}
}
}
接続文字列は、Supabase Dashboard の Settings > Database > Connection String で確認できます。
セキュリティのベストプラクティス
| 対策 | 重要性 |
|---|---|
| MCP には service_role キーのみを使用する | anon キーは権限が制限されているため |
| キーをバージョン管理にコミットしない | 設定ファイルを .gitignore に追加する |
| 開発/テスト用に専用の Supabase プロジェクトを使用する | 本番データに対して AI クエリを実行するリスクを避ける |
| 実行前に SQL を確認する | 一部の MCP クライアントは実行前に SQL を表示します |
| すべてのテーブルで RLS を有効にする | service_role アクセスであっても、RLS は良い習慣です |
| 可能な限り読み取り専用の認証情報を使用する | 探索用に読み取り専用の Postgres ロールを作成する |
より安全な MCP アクセスのための読み取り専用ロールの作成:
-- Supabase SQL Editor で実行
CREATE ROLE mcp_readonly WITH LOGIN PASSWORD 'your-secure-password';
GRANT USAGE ON SCHEMA public TO mcp_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO mcp_readonly;
その後、読み取り専用アクセスのために、このロールの接続文字列を MCP 構成で使用します。
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| Claude Desktop に MCP サーバーが表示されない | 設定ファイルの JSON 構文を確認し、Claude を再起動する |
| "Connection refused" エラー | Supabase URL を確認し、プロジェクトがアクティブであることを確認する |
| "Permission denied" エラー | anon キーではなく service_role キーを使用していることを確認する |
| クエリが遅い | MCP クエリは 30 秒に制限されています。SQL を最適化してください |
| ツールが表示されない | npx @supabase/mcp-server-supabase@latest --help を実行してインストールを確認する |
結論
Supabase MCP サーバーは、データベースとの対話方法を一変させます。エディタ、Supabase ダッシュボード、SQL クライアントの間を行き来する代わりに、AIアシスタントとの自然な会話を通じて、データの探索、テーブルの作成、マイグレーションの記述、問題のデバッグをすべて行うことができます。セットアップは 5 分足らずで完了し、即座に生産性の向上を実感できるはずです。
もし、お使いの Supabase アプリケーションでユーザーアバター、プロモーション動画、音声コンテンツなどの AI 生成メディアが必要な場合は、Hypereal AI が提供する、AI 画像生成、ビデオ作成、トーキングアバター、音声クローニングのための従量課金制 API が、Supabase バックエンドとスムーズに統合可能です。
