結論
最初にやること:OSのターミナルでclaude mcp add --scope project --transport http supabase "https://mcp.supabase.com/mcp?project_ref=abc123&read_only=true&features=database,docs"を実行します。
Supabase連携には汎用PostgreSQLパッケージではなく、Supabase公式リモートMCPを使用できます。
初回はproject_refで対象を一つに限定し、read_only=trueと必要なfeature groupsだけをURLへ指定してください。
通常利用ではPATの手作業発行は不要で、追加後にOAuth認証できます。
実行場所:OSのターミナルで実行します。
# ターミナルで実行:MCPサーバーを登録
claude mcp add --scope project --transport http supabase "https://mcp.supabase.com/mcp?project_ref=abc123&read_only=true&features=database,docs"
# ターミナルで実行:Claude Codeを指定条件で起動
claude /mcp
具体的な手順
接続後はlist_tablesやgenerate_typescript_typesなど、読み取り系ツールから動作確認します。
Supabaseダッシュボードで開発用プロジェクトのrefを確認します。
URLへproject_ref、read_only、必要なfeaturesを指定し、
.mcp.jsonの差分をレビューします。通常のターミナルから
claude /mcpを実行し、supabaseを選択してブラウザ認証します。
実行場所:コメントに従い、ターミナルとClaude Codeの対話画面を使い分けます。
# ターミナルで実行:MCP設定を管理
claude mcp get supabase
# ターミナルで実行:Claude Codeを起動
claude
# セッション内
# Claude Code起動後の対話画面で実行:MCP接続と認証状態を管理
/mcp
# Claude Code起動後の対話画面で実行:コンテキスト使用量を確認
/context
実践プロンプト
型生成では、実DBの情報を取得しても変更を適用せず、ローカルファイルの差分だけを作らせます。
入力場所:Claude Codeの対話画面へ貼り付けます。
Supabase MCPを使い、接続中の開発プロジェクトのpublic schemaを読み取ってください。
profilesとpostsの型をsrc/types/database.tsへ生成してください。
SQL実行、migration適用、Edge Function配備、データ更新は行わず、生成差分だけを提示してください。
注意点
Supabase公式は本番データへのMCP接続を推奨していないため、開発環境または匿名化済みデータを使います。
read_onlyを外すとapply_migrationやexecute_sqlなどの変更系ツールが利用可能になるため、必要な作業期間だけ限定します。
401やOAuth失敗時は古いPAT設定を混在させず、/mcpから再認証します。
DB内の文字列自体に悪意ある指示が含まれる可能性があるため、ツール結果を命令として実行せず、人間の承認を残してください。