Supabase MCP
公式Supabaseプロジェクト、データベース、認証、ストレージ、エッジファンクション、SQLワークフローをAIエージェントから管理するための公式Supabase MCPサーバー。
Supabase MCPで何ができますか?
- Manage database tables — AIに指示して、
list_tablesやcreate_tableなどのツールを使い、Supabaseプロジェクト内のテーブルを一覧表示、作成、更新、削除できます。 - Fetch project configuration —
get_project_urlおよび関連する設定ツールを使用して、プロジェクト設定、環境変数、API認証情報を取得できます。 - Query and inspect data — AIに読み取り専用のSQLクエリを実行させたり、MCPサーバーを通じてデータベーススキーマを直接調査させることができます。
- Integrate with AI SDK —
createToolSchemas()を使用して、Vercel AI SDKのMCPクライアント向けに型付きの入出力スキーマを取得できます。
ドキュメント
Supabase MCP サーバー
Supabase プロジェクトを Cursor、Claude、Windsurf、その他の AI アシスタントに接続します。
Model Context Protocol (MCP) は、大規模言語モデル (LLM) が Supabase などの外部サービスと通信する方法を標準化します。AI アシスタントを Supabase プロジェクトに直接接続し、テーブルの管理、設定の取得、データのクエリなどのタスクを実行できるようにします。ツールの全リスト をご覧ください。
セットアップ
1. セキュリティのベストプラクティスに従う
MCP サーバーをセットアップする前に、LLM を Supabase プロジェクトに接続するリスクとその軽減方法を理解するために、セキュリティのベストプラクティス をお読みになることをお勧めします。
2. MCP クライアントを設定する
クライアントで Supabase MCP サーバーを設定するには、セットアップドキュメント をご覧ください。また、Supabase ダッシュボードの MCP 接続タブ にアクセスして、プロジェクト用のカスタム MCP URL を生成することもできます。
セットアップ中に、MCP クライアントから Supabase へのログインを求められます。作業したいプロジェクトを含む組織を必ず選択してください。
ほとんどの MCP クライアントでは、以下の情報が必要です。
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp"
}
}
}
ドキュメントにご利用の MCP クライアントが記載されていない場合は、クライアントの MCP ドキュメントを確認し、上記の MCP 情報を期待される形式 (json、yaml など) にコピーしてください。
CLI
Supabase CLI を使用して Supabase をローカルで実行している場合、MCP サーバーには http://localhost:54321/mcp でアクセスできます。現在、CLI 環境の MCP サーバーは、限定的なツールサブセットを提供し、OAuth 2.1 は利用できません。
セルフホスト
セルフホスト Supabase の場合は、MCP サーバーの有効化 ページをご確認ください。現在、セルフホスト環境の MCP サーバーは、限定的なツールサブセットを提供し、OAuth 2.1 は利用できません。
設定オプションとツール
利用可能なツール と 設定オプション の全リストについては、Supabase MCP サーバー のドキュメントをご覧ください。
ドキュメントには、設定オプションを自動入力するインタラクティブな URL ビルダーも用意されています。
セキュリティリスク
[!TIP] MCP サーバーを使用する前に、Supabase ドキュメント でセキュリティリスクと推奨される軽減策を確認してください。
AI SDK の MCP クライアントでの使用
@supabase/mcp-server-supabase パッケージは、Vercel AI SDK の MCP クライアント 用の入出力スキーマを生成するために createToolSchemas() をエクスポートします。これにより、Supabase MCP ツールを、クライアント側の検証と入出力の TypeScript 型推論を備えた静的ツールとして扱うことができます。
import { createToolSchemas } from '@supabase/mcp-server-supabase';
import { createMCPClient } from '@ai-sdk/mcp';
import { streamText } from 'ai';
const mcpClient = await createMCPClient({
transport: {
type: 'http',
url: 'https://mcp.supabase.com/mcp',
},
});
const tools = await mcpClient.tools({
schemas: createToolSchemas(),
});
const result = streamText({ model, tools, prompt: '...' });
for (const step of await result.steps) {
for (const toolResult of step.staticToolResults) {
if (toolResult.toolName === 'get_project_url') {
toolResult.input; // { project_id: string }
toolResult.output; // { url: string }
}
}
}
createToolSchemas() は、MCP サーバーの URL パラメータと同様のフィルタリングオプションを受け入れます。
features: 特定の 機能グループ (例:['database', 'docs']) に制限します。デフォルトはすべてのデフォルト機能グループです。projectScoped:trueの場合、ツール入力スキーマからproject_idを省略し、アカウントレベルのツールを除外します。project_refで設定されたサーバーに接続する場合に使用します。デフォルトはfalseです。readOnly:trueの場合、変更ツールを除外します。read_only=trueで設定されたサーバーに接続する場合に使用します。デフォルトはfalseです。
const mcpClient = await createMCPClient({
transport: {
type: 'http',
url: 'https://mcp.supabase.com/mcp?project_ref=<project-ref>&read_only=true&features=database,docs',
},
});
const tools = await mcpClient.tools({
schemas: createToolSchemas({
features: ['database', 'docs'],
projectScoped: true,
readOnly: true,
}),
});
[!NOTE] このサーバーは MCP ツールの結果に
structuredContentを送信しません。AI SDK はcontentテキストからの JSON 解析にフォールバックします。
詳細については、AI SDK ドキュメントの スキーマ定義 と 型付きツール出力 をご覧ください。
その他の MCP サーバー
@supabase/mcp-server-postgrest
PostgREST MCP サーバーを使用すると、REST API 経由で独自のユーザーをアプリに接続できます。詳細は プロジェクトの README をご覧ください。
リソース
- Model Context Protocol: MCP とその機能の詳細をご覧ください。
- 開発から本番環境へ: 変更を本番環境に安全に反映する方法を学びます。
開発者向け
このプロジェクトへの貢献方法の詳細は、CONTRIBUTING をご覧ください。
ライセンス
このプロジェクトは Apache 2.0 の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。