Supabase MCP

公式

Supabaseプロジェクト、データベース、認証、ストレージ、エッジファンクション、SQLワークフローをAIエージェントから管理するための公式Supabase MCPサーバー。

Supabase MCPで何ができますか?

  • Manage database tables — AIに指示して、list_tablescreate_tableなどのツールを使い、Supabaseプロジェクト内のテーブルを一覧表示、作成、更新、削除できます。
  • Fetch project configurationget_project_urlおよび関連する設定ツールを使用して、プロジェクト設定、環境変数、API認証情報を取得できます。
  • Query and inspect data — AIに読み取り専用のSQLクエリを実行させたり、MCPサーバーを通じてデータベーススキーマを直接調査させることができます。
  • Integrate with AI SDKcreateToolSchemas()を使用して、Vercel AI SDKのMCPクライアント向けに型付きの入出力スキーマを取得できます。

ドキュメント

Supabase MCP サーバー

MCP Registry Version

Supabase プロジェクトを Cursor、Claude、Windsurf、その他の AI アシスタントに接続します。

supabase-mcp-demo

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 をご覧ください。

リソース

開発者向け

このプロジェクトへの貢献方法の詳細は、CONTRIBUTING をご覧ください。

ライセンス

このプロジェクトは Apache 2.0 の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。