Supabase MCP Server

by alexander-zuev
Verified
Apache 2.0
607
  • Apple
  • Linux

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides tools for executing PostgreSQL queries against Supabase databases with risk assessment, parsing, and validation. Includes automatic migration versioning for database-altering operations.

  • Enables safely interacting with Supabase databases, executing SQL queries, managing database schemas, accessing the Supabase Management API, and using the Supabase Auth Admin SDK for user management. Includes safety controls for different risk levels of operations.

クエリ | Supabase の MCP サーバー

目次

✨ 主な機能

  • 💻 Cursor、Windsurf、Cline、その他stdioプロトコルをサポートするMCPクライアントと互換性があります
  • 🔐 SQLクエリ実行の読み取り専用モードと読み取り/書き込みモードを制御する
  • 🔍 リスクレベル評価によるランタイムSQLクエリ検証
  • 🛡️ SQL 操作の 3 層安全システム: 安全、書き込み、破壊的
  • 🔄 直接接続とプールされたデータベース接続の両方に対する堅牢なトランザクション処理
  • 📝 データベース スキーマ変更の自動バージョン管理
  • 💻 Supabase管理APIでSupabaseプロジェクトを管理する
  • 🧑‍💻 Python SDK 経由で Supabase Auth Admin メソッドを使用してユーザーを管理する
  • 🔨 Cursor と Windsurf が MCP とより効果的に連携できるようにするための事前構築済みツール
  • 📦 パッケージ マネージャー (uv、pipx など) による非常に簡単なインストールとセットアップ

はじめる

前提条件

サーバーをインストールするには、システムに次のものが必要です。

  • Python 3.12以上

uv経由でインストールする予定の場合は、それがインストールされていることを確認してください。

PostgreSQLのインストール

MCP サーバー自体では、PostgreSQL 開発ライブラリに依存しない asyncpg が使用されるようになったため、PostgreSQL のインストールは不要になりました。

ただし、ローカルの Supabase インスタンスを実行している場合は、PostgreSQL が必要になります。

macOS

brew install postgresql@16

ウィンドウズ

  • https://www.postgresql.org/download/windows/から PostgreSQL 16 以降をダウンロードしてインストールします。
  • インストール中に「PostgreSQLサーバー」と「コマンドラインツール」が選択されていることを確認してください。

ステップ1. インストール

v0.2.0以降、パッケージインストールのサポートを導入しました。お好みのPythonパッケージマネージャーを使って、以下のコマンドでサーバーをインストールできます。

# if pipx is installed (recommended) pipx install supabase-mcp-server # if uv is installed uv pip install supabase-mcp-server

pipxパッケージごとに分離された環境を作成するため推奨されます。

リポジトリのクローンを作成し、ルート ディレクトリからpipx install -e .実行して、サーバーを手動でインストールすることもできます。

ソースからインストールする

たとえばローカル開発のためにソースからインストールする場合:

uv venv # On Mac source .venv/bin/activate # On Windows .venv\Scripts\activate # Install package in editable mode uv pip install -e .

Smithery.ai経由でインストール

Smithery.ai を使用してこの MCP サーバーに接続する方法の詳細な手順については、こちらをご覧ください。

ステップ2. 構成

Supabase MCPサーバーは、Supabaseデータベースへの接続、管理APIへのアクセス、Auth Admin SDKの使用に必要な設定が必要です。このセクションでは、利用可能なすべての設定オプションとその設定方法について説明します。

🔑重要: v0.4 以降、MCP サーバーには API キーが必要です。この MCP サーバーを使用するには、 thequery.devから無料で取得できます。

環境変数

サーバーは次の環境変数を使用します。

変数必須デフォルト説明
SUPABASE_PROJECT_REFはい127.0.0.1:54322Supabaseプロジェクト参照ID(またはローカルホスト:ポート)
SUPABASE_DB_PASSWORDはいpostgresデータベースのパスワード
SUPABASE_REGIONはい*us-east-1Supabase プロジェクトがホストされている AWS リージョン
SUPABASE_ACCESS_TOKENいいえなしSupabase 管理 API の個人アクセス トークン
SUPABASE_SERVICE_ROLE_KEYいいえなしAuth Admin SDK のサービス ロール キー
QUERY_API_KEYはいなしthequery.dev からの API キー (すべての操作に必要)

:デフォルト値はローカルのSupabase開発用に設定されています。リモートのSupabaseプロジェクトの場合は、 SUPABASE_PROJECT_REFSUPABASE_DB_PASSWORDに独自の値を指定する必要があります。

🚨重要な設定に関する注意:リモート Supabase プロジェクトの場合、 SUPABASE_REGIONを使用してプロジェクトがホストされている正しいリージョンを指定する必要があります。「テナントまたはユーザーが見つかりません」というエラーが発生した場合、リージョン設定がプロジェクトの実際のリージョンと一致していないことが原因である可能性が高くなります。プロジェクトのリージョンは、Supabase ダッシュボードのプロジェクト設定で確認できます。

接続タイプ

データベース接続
  • サーバーはトランザクションプーラーエンドポイントを使用してSupabase PostgreSQLデータベースに接続します。
  • ローカル開発では127.0.0.1:54322への直接接続を使用します
  • リモート プロジェクトでは、次の形式を使用します: postgresql://postgres.[project_ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres

⚠️重要:セッションプーリング接続はサポートされていません。MCPサーバーアーキテクチャとの互換性を高めるため、サーバーはトランザクションプーリングのみを使用します。

管理API接続
  • SUPABASE_ACCESS_TOKENを設定する必要があります
  • https://api.supabase.comの Supabase 管理 API に接続します。
  • リモート Supabase プロジェクトでのみ動作します (ローカル開発ではありません)
認証管理 SDK 接続
  • SUPABASE_SERVICE_ROLE_KEYを設定する必要があります
  • ローカル開発の場合は、 http://127.0.0.1:54321 54321 に接続します。
  • リモート プロジェクトの場合は、 https://[project_ref].supabase.coに接続します。

設定方法

サーバーは、次の順序 (最高優先度から最低優先度) で構成を検索します。

  1. 環境変数: 環境内で直接設定される値
  2. ローカル.envファイル: 現在の作業ディレクトリにある.envファイル (ソースから実行している場合にのみ機能します)
  3. グローバル設定ファイル:
    • Windows: %APPDATA%\supabase-mcp\.env
    • macOS/Linux: ~/.config/supabase-mcp/.env
  4. デフォルト設定: ローカル開発のデフォルト (他の設定が見つからない場合)

⚠️重要:pipxまたはuv経由でインストールされたパッケージを使用する場合、プロジェクトディレクトリ内のローカルの.envファイルは検出されません。環境変数またはグローバル設定ファイルのいずれかを使用する必要があります。

設定のセットアップ

オプション 1: クライアント固有の構成 (推奨)

MCPクライアント設定で環境変数を直接設定します(手順3のクライアント固有の設定手順を参照)。ほとんどのMCPクライアントはこの方法をサポートしており、クライアントの設定がクライアントの設定と同期されます。

オプション2: グローバル構成

すべての MCP サーバー インスタンスで使用されるグローバル.env構成ファイルを作成します。

# Create config directory # On macOS/Linux mkdir -p ~/.config/supabase-mcp # On Windows (PowerShell) mkdir -Force "$env:APPDATA\supabase-mcp" # Create and edit .env file # On macOS/Linux nano ~/.config/supabase-mcp/.env # On Windows (PowerShell) notepad "$env:APPDATA\supabase-mcp\.env"

設定値をファイルに追加します。

QUERY_API_KEY=your-api-key SUPABASE_PROJECT_REF=your-project-ref SUPABASE_DB_PASSWORD=your-db-password SUPABASE_REGION=us-east-1 SUPABASE_ACCESS_TOKEN=your-access-token SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
オプション 3: プロジェクト固有の構成 (ソース インストールのみ)

サーバーをソースから(パッケージ経由ではなく)実行している場合は、上記と同じ形式でプロジェクト ディレクトリに.envファイルを作成できます。

Supabaseプロジェクト情報の検索

  • プロジェクト参照: Supabase プロジェクト URL で見つかります: https://supabase.com/dashboard/project/<project-ref>
  • データベースパスワード: プロジェクト作成時に設定、またはプロジェクト設定→データベースで確認
  • アクセストークン: https://supabase.com/dashboard/account/tokensで生成します
  • サービスロールキー: プロジェクト設定 → API → プロジェクトAPIキーにあります

サポートされている地域

サーバーはすべての Supabase リージョンをサポートします。

  • us-west-1 - 米国西部(北カリフォルニア)
  • us-east-1 - 米国東部(バージニア州北部) - デフォルト
  • us-east-2 - 米国東部(オハイオ州)
  • ca-central-1 - カナダ(中部)
  • eu-west-1 - 西EU(アイルランド)
  • eu-west-2 - 西ヨーロッパ(ロンドン)
  • eu-west-3 - 西EU(パリ)
  • eu-central-1 - 中央 EU (フランクフルト)
  • eu-central-2 - 中央ヨーロッパ(チューリッヒ)
  • eu-north-1 - 北EU(ストックホルム)
  • ap-south-1 - 南アジア(ムンバイ)
  • ap-southeast-1 - 東南アジア(シンガポール)
  • ap-northeast-1 - 北東アジア(東京)
  • ap-northeast-2 - 北東アジア(ソウル)
  • ap-southeast-2 - オセアニア(シドニー)
  • sa-east-1 - 南アメリカ (サンパウロ)

制限事項

  • セルフホストサポートなし: サーバーは、Supabase.com が公式にホストするプロジェクトとローカル開発のみをサポートします。
  • 接続文字列のサポートなし: カスタム接続文字列はサポートされていません
  • セッション プーリングなし: データベース接続ではトランザクション プーリングのみがサポートされます
  • API と SDK の機能: 管理 API と Auth Admin SDK の機能は、ローカル開発ではなく、リモート Supabase プロジェクトでのみ機能します。

ステップ3. 使用方法

一般的に、 stdioプロトコルをサポートするMCPクライアントであれば、このMCPサーバーで動作するはずです。このサーバーは、以下の環境で動作することが明示的にテストされています。

  • カーソル
  • ウィンドサーフィン
  • クライン
  • クロードデスクトップ

さらに、smithery.ai を使用して、上記を含む複数のクライアントをこのサーバーにインストールすることもできます。

この MCP サーバーをクライアントにインストールするには、以下のガイドに従ってください。

カーソル

[設定] -> [機能] -> [MCP サーバー] に移動し、次の構成で新しいサーバーを追加します。

# can be set to any name name: supabase type: command # if you installed with pipx command: supabase-mcp-server # if you installed with uv command: uv run supabase-mcp-server # if the above doesn't work, use the full path (recommended) command: /full/path/to/supabase-mcp-server # Find with 'which supabase-mcp-server' (macOS/Linux) or 'where supabase-mcp-server' (Windows)

構成が正しい場合は、緑色のドットのインジケーターと、サーバーによって公開されているツールの数が表示されます。

ウィンドサーフィン

Cascade に移動 -> ハンマーアイコンをクリック -> 構成 -> 構成を入力します。

{ "mcpServers": { "supabase": { "command": "/Users/username/.local/bin/supabase-mcp-server", // update path "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

設定が正しい場合、利用可能なサーバーのリストに緑色のドット インジケーターとクリック可能な supabase サーバーが表示されます。

クロードデスクトップ

Claude Desktopは、JSON設定を通じてMCPサーバーもサポートしています。Supabase MCPサーバーを設定するには、以下の手順に従ってください。

  1. 実行可能ファイルへの完全なパスを見つけます(この手順は重要です)。
    # On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server
    返される完全なパス (例: /Users/username/.local/bin/supabase-mcp-server ) をコピーします。
  2. Claude Desktop でMCP サーバーを構成します
    • クロードデスクトップを開く
    • 設定→開発者→MCPサーバーの設定編集に移動します。
    • 次の JSON を使用して新しい構成を追加します。
    { "mcpServers": { "supabase": { "command": "/full/path/to/supabase-mcp-server", // Replace with the actual path from step 1 "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

⚠️重要:WindsurfやCursorとは異なり、Claude Desktopでは実行ファイルへの絶対パスが必要です。コマンド名( supabase-mcp-server )のみを使用すると、「spawn ENOENT」エラーが発生します。

設定が正しい場合は、Claude Desktop で Supabase MCP サーバーが使用可能として表示されます。

クライン

Clineは同様のJSON設定を通じてMCPサーバーもサポートしています。Supabase MCPサーバーをセットアップするには、以下の手順に従ってください。

  1. 実行可能ファイルへの完全なパスを見つけます(この手順は重要です)。
    # On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server
    返される完全なパス (例: /Users/username/.local/bin/supabase-mcp-server ) をコピーします。
  2. Cline でMCP サーバーを構成します
    • VS CodeでClineを開く
    • Clineサイドバーの「MCPサーバー」タブをクリックします。
    • 「MCPサーバーの構成」をクリックします
    • cline_mcp_settings.jsonファイルが開きます。
    • 次の構成を追加します。
    { "mcpServers": { "supabase": { "command": "/full/path/to/supabase-mcp-server", // Replace with the actual path from step 1 "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

設定が正しい場合、Cline MCP サーバー リストの Supabase MCP サーバーの横に緑色のインジケーターが表示され、パネルの下部に「supabase MCP サーバーが接続されました」という確認メッセージが表示されます。

トラブルシューティング

役立つヒントとコツをいくつか紹介します。

  • デバッグインストール- ターミナルからsupabase-mcp-serverを直接実行して、動作するかどうかを確認してください。動作しない場合は、インストールに問題がある可能性があります。
  • MCPサーバーの設定- 上記の手順がうまくいけば、サーバーは正しくインストールされ、設定されていることを意味します。正しいコマンドを入力していれば、IDEから接続できるはずです。サーバーの実行ファイルへの正しいパスを指定してください。
  • 「ツールが見つかりません」エラー- パッケージがインストールされているにもかかわらず、カーソルに「クライアントが閉じられています - 使用できるツールがありません」と表示される場合:
    • which supabase-mcp-server (macOS/Linux) またはwhere supabase-mcp-server (Windows) を実行して、実行可能ファイルへのフルパスを見つけます。
    • MCPサーバー構成ではsupabase-mcp-serverではなくフルパスを使用してください。
    • 例: /Users/username/.local/bin/supabase-mcp-serverまたはC:\Users\username\.local\bin\supabase-mcp-server.exe
  • 環境変数- 適切なデータベースに接続するには、 mcp_config.jsonまたはグローバル構成ディレクトリ (macOS/Linux の場合は~/.config/supabase-mcp/.env``.env Windows の場合は%APPDATA%\supabase-mcp\.env ) に配置された .env ファイルで環境変数を設定してください。
  • ログへのアクセス- MCP サーバーは詳細なログをファイルに書き込みます。
    • ログファイルの場所:
      • macOS/Linux: ~/.local/share/supabase-mcp/mcp_server.log
      • Windows: %USERPROFILE%\.local\share\supabase-mcp\mcp_server.log
    • ログには接続ステータス、構成の詳細、操作結果が含まれます
    • 任意のテキスト エディターまたはターミナル コマンドを使用してログを表示します。
      # On macOS/Linux cat ~/.local/share/supabase-mcp/mcp_server.log # On Windows (PowerShell) Get-Content "$env:USERPROFILE\.local\share\supabase-mcp\mcp_server.log"

行き詰まったり、上記の手順のいずれかが間違っていたりする場合は、問題を報告してください。

MCP検査官

MCPサーバーの問題をデバッグするのに非常に便利なツールがMCP Inspectorです。ソースコードからインストールした場合は、プロジェクトリポジトリからsupabase-mcp-inspector実行すると、インスペクターインスタンスが実行されます。ログと組み合わせることで、サーバーで何が起こっているかを完全に把握できます。

📝 パッケージからインストールされた場合、 supabase-mcp-inspector実行しても正常に動作しません。今後のリリースで検証して修正します。

機能の概要

データベースクエリツール

v0.3 以降のサーバーでは、安全制御が組み込まれた包括的なデータベース管理機能が提供されます。

  • SQLクエリ実行:リスク評価を伴うPostgreSQLクエリの実行
    • 3段階安全システム
      • safe : 読み取り専用操作 (SELECT) - 常に許可
      • write : データの変更 (INSERT、UPDATE、DELETE) - アンセーフモードが必要
      • destructive : スキーマの変更 (DROP、CREATE) - 安全でないモードと確認が必要
  • SQL 解析と検証:
    • 正確な分析のためにPostgreSQLのパーサー(pglast)を使用し、安全性要件に関する明確なフィードバックを提供します。
  • 自動移行バージョン管理:
    • データベースを変更する操作は自動的にバージョン管理されます
    • 操作の種類とターゲットに基づいて説明的な名前を生成します
  • 安全管理
    • デフォルトのSAFEモードでは読み取り専用操作のみが許可されます
    • すべてのステートメントはasyncpgを介してトランザクションモードで実行されます。
    • 高リスク操作のための2段階確認
  • 利用可能なツール:
    • get_schemas : サイズとテーブル数を含むスキーマを一覧表示します
    • get_tables : テーブル、外部テーブル、ビューをメタデータとともに一覧表示します
    • get_table_schema : 詳細なテーブル構造(列、キー、関係)を取得します。
    • execute_postgresql : データベースに対してSQL文を実行します
    • confirm_destructive_operation : 確認後に高リスク操作を実行する
    • retrieve_migrations : フィルタリングとページネーションのオプションを使用して移行を取得します
    • live_dangerously : 安全モードと非安全モードを切り替えます

管理APIツール

v0.3.0 以降、サーバーは安全制御を組み込んだ Supabase 管理 API への安全なアクセスを提供します。

  • 利用可能なツール:
    • send_management_api_request : プロジェクト参照の自動挿入により、Supabase Management API に任意のリクエストを送信します。
    • get_management_api_spec : 安全性情報を含む充実したAPI仕様を取得します。
      • 複数のクエリモードをサポート: ドメイン別、特定のパス/メソッド別、またはすべてのパス別
      • 各エンドポイントのリスク評価情報が含まれています
      • 詳細なパラメータ要件と応答形式を提供します
      • LLM が Supabase Management API の全機能を理解するのに役立ちます
    • get_management_api_safety_rules : 人間が読める説明付きのすべての安全ルールを取得します。
    • live_dangerously : 安全な操作モードと危険な操作モードを切り替えます
  • 安全管理
    • 一貫したリスク管理のためにデータベース操作と同じ安全マネージャを使用します
    • リスクレベル別に分類された操作:
      • safe : 読み取り専用操作 (GET) - 常に許可
      • unsafe : 状態を変更する操作 (POST、PUT、PATCH、DELETE) - unsafe モードが必要
      • blocked :破壊的な操作(プロジェクトの削除など) - 許可されません
    • デフォルトのセーフモードは、偶発的な状態の変更を防ぎます
    • 正確な安全ルールのためのパスベースのパターンマッチング

: 管理 API ツールはリモート Supabase インスタンスでのみ動作し、ローカル Supabase 開発セットアップとは互換性がありません。

認証管理ツール

MCPサーバーにPython SDKメソッドのサポートを追加する予定でした。検討の結果、テストユーザーを手動で作成することが多く、エラーが発生しやすく、時間がかかるため、Auth Adminメソッドのサポートのみを追加することにしました。これで、Cursorにテストユーザーの作成を依頼するだけで、シームレスに処理されます。Auth Admin SDKメソッドの機能について詳しくは、完全なドキュメントをご覧ください。

v0.3.6 以降、サーバーは Python SDK 経由で Supabase Auth Admin メソッドへの直接アクセスをサポートしています。

  • 次のツールが含まれています:
    • get_auth_admin_methods_spec 、利用可能なすべての Auth Admin メソッドのドキュメントを取得します。
    • call_auth_admin_method 、適切なパラメータ処理を使用して Auth Admin メソッドを直接呼び出します。
  • サポートされているメソッド:
    • get_user_by_id : IDでユーザーを取得する
    • list_users : ページ区切りですべてのユーザーを一覧表示する
    • create_user : 新しいユーザーを作成する
    • delete_user : IDでユーザーを削除する
    • invite_user_by_email : ユーザーのメールアドレスに招待リンクを送信する
    • generate_link : さまざまな認証目的でメールリンクを生成する
    • update_user_by_id : IDでユーザー属性を更新する
    • delete_factor : ユーザーの要素を削除します (現在 SDK では実装されていません)

生の SQL クエリの代わりに Auth Admin SDK を使用する理由は何ですか?

Auth Admin SDK には、直接 SQL を操作する場合に比べていくつかの重要な利点があります。

  • 機能: SQL だけでは不可能な操作 (招待、マジックリンク、MFA) を有効にします
  • 精度: 認証スキーマで生のSQLクエリを作成して実行するよりも信頼性が高い
  • シンプルさ: 適切な検証とエラー処理を備えた明確な方法を提供します
    • 応答形式:
      • すべてのメソッドは生の辞書ではなく構造化されたPythonオブジェクトを返します
      • オブジェクト属性にはドット表記を使用してアクセスできます(例: user["id"]ではなくuser.id
    • エッジケースと制限:
      • UUID検証: 多くのメソッドでは、ユーザーIDに有効なUUID形式が必要であり、特定の検証エラーが返されます。
      • メール設定: invite_user_by_emailgenerate_linkのようなメソッドでは、Supabaseプロジェクトでメール送信を設定する必要があります。
      • リンク タイプ: リンクを生成する場合、リンク タイプごとに要件が異なります。
        • signupリンクはユーザーの存在を必要としない
        • magiclinkrecoveryリンクでは、ユーザーがすでにシステムに存在している必要があります。
      • エラー処理: サーバーはSupabase APIからの詳細なエラーメッセージを提供しますが、ダッシュボードインターフェースとは異なる場合があります。
      • メソッドの可用性: delete_factorなどの一部のメソッドは API で公開されていますが、SDK では完全に実装されていません。

ログと分析

サーバーは Supabase のログと分析データへのアクセスを提供し、アプリケーションの監視とトラブルシューティングを容易にします。

  • 利用可能なツール: retrieve_logs - 任意のSupabaseサービスからのログにアクセスします
  • ログ収集:
    • postgres : データベースサーバのログ
    • api_gateway : APIゲートウェイリクエスト
    • auth : 認証イベント
    • postgrest : RESTful API サービスログ
    • pooler : 接続プールログ
    • storage : オブジェクトストレージ操作
    • realtime : WebSocketサブスクリプションログ
    • edge_functions : サーバーレス関数の実行
    • cron : スケジュールされたジョブのログ
    • pgbouncer : 接続プーラーログ
  • 機能: 時間によるフィルタリング、テキスト検索、フィールドフィルタの適用、カスタムSQLクエリの使用

インターフェイスを切り替えたり、複雑なクエリを記述したりすることなく、Supabase スタック全体のデバッグを簡素化します。

データベース変更の自動バージョン管理

「大いなる力には、大いなる責任が伴う。」 execute_postgresqlツールと、その名の通りlive_dangerouslyツールを組み合わせることで、Supabaseデータベースを強力かつシンプルに管理できるようになります。同時に、テーブルの削除や変更もチャットメッセージ一つで実行できます。不可逆的な変更のリスクを軽減するため、v0.3.8以降、サーバーは以下の機能をサポートしています。

  • データベース上で実行されるすべての書き込みおよび破壊的なSQL操作の移行スクリプトの自動作成
  • クエリ実行の安全モードが改善され、すべてのクエリが次のように分類されます。
    • safeタイプ: 常に許可されます。すべての読み取り専用操作が含まれます。
    • writeタイプ: ユーザーがwriteモードを有効にする必要があります。
    • destructive型: ユーザーがwriteモードを有効にし、ツールを自動的に実行しないクライアントに対してクエリ実行の 2 段階確認を行う必要があります。

ユニバーサルセーフティモード

v0.3.8以降、セーフティモードはユニバーサルセーフティマネージャーを用いてすべてのサービス(データベース、API、SDK)で標準化されています。これにより、一貫したリスク管理と、MCPサーバー全体のセーフティ設定を統一されたインターフェースで管理できるようになります。

すべての操作 (SQL クエリ、API リクエスト、SDK メソッド) は、リスク レベルに分類されます。

  • Lowリスク: データや構造を変更しない読み取り専用操作 (SELECT クエリ、GET API リクエスト)
  • Mediumリスク: データを変更するが構造を変更しない操作を記述する (INSERT/UPDATE/DELETE、ほとんどの POST/PUT API リクエスト)
  • Highリスク: データベース構造を変更したり、データ損失を引き起こす可能性のある破壊的な操作 (DROP/TRUNCATE、DELETE API エンドポイント)
  • Extremeリスク: 重大な結果をもたらす操作は完全にブロックされます (プロジェクトの削除)

安全管理はリスクレベルに基づいて適用されます。

  • 低リスクの操作は常に許可されます
  • 中程度のリスクの操作には、安全でないモードを有効にする必要があります
  • 高リスクの操作には、安全でないモードと明示的な確認が必要です
  • 極めてリスクの高い操作は決して許可されない

確認フローの仕組み

unsafeモードであっても、リスクの高い操作 (postgresql または api リクエスト) はブロックされます。 リスクの高い操作を実行するには、それを明示的に確認して承認する必要があります。

変更履歴

  • 📦 パッケージマネージャーによるインストールの簡素化 - ✅ (v0.2.0)
  • 🌎 さまざまな Supabase リージョンのサポート - ✅ (v0.2.2)
  • 🎮 安全制御を備えた Supabase 管理 API へのプログラムによるアクセス - ✅ (v0.3.0)
  • 👷‍♂️ 安全制御を備えたデータベース SQL クエリの読み取りと読み取り/書き込み - ✅ (v0.3.0)
  • 🔄 直接接続とプール接続の両方に対する堅牢なトランザクション処理 - ✅ (v0.3.2)
  • 🐍 ネイティブ Python SDK で利用可能なメソッドとオブジェクトをサポート - ✅ (v0.3.6)
  • 🔍 より強力な SQL クエリ検証 ✅ (v0.3.8)
  • 📝 データベース変更の自動バージョン管理 ✅ (v0.3.8)
  • 📖 API 仕様に関する知識とツールが大幅に改善されました ✅ (v0.3.8)
  • ✍️ より整理されたデータベース vcs のための移行関連ツールの一貫性が向上しました ✅ (v0.3.10)
  • 🥳 クエリ MCP がリリースされました (v0.4.0)

より詳細なロードマップについては、GitHub のこのディスカッションを参照してください。

スターの歴史


お楽しみください!☺️

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

このサーバーは、MCP プロトコルを介して Supabase PostgreSQL データベースとのやり取りを可能にし、Cursor および Windsurf IDE とのシームレスな統合を可能にして、安全で検証されたデータベース管理を実現します。

  1. Table of contents
    1. ✨ Key features
      1. Getting Started
        1. Prerequisites
        2. PostgreSQL Installation
        3. Step 1. Installation
        4. Step 2. Configuration
        5. Step 3. Usage
        6. Troubleshooting
        7. MCP Inspector
      2. Feature Overview
        1. Database query tools
        2. Management API tools
        3. Auth Admin tools
        4. Logs & Analytics
        5. Automatic Versioning of Database Changes
        6. Universal Safety Mode
      3. Changelog
        1. Star History
          ID: cyeeqagb81