Query | MCP server for Supabase について
Query MCP は、IDE から SQL の実行、スキーマ変更の管理、Management API と Auth Admin SDK の呼び出しを行えるオープンソースの MCP サーバーです。SQL 操作には安全制御が組み込まれています。作者は公式の Supabase MCP サーバーが公開されたため、本プロジェクトの積極的な保守を終了したと述べています。
主な機能
- 01読み取り専用と読み書きモードを切り替えるSQL実行
- 02実行時のSQL検証とリスクレベル評価
- 03安全・書き込み・破壊的の3段階の操作分類
- 04スキーマ変更の自動バージョン管理
- 05Management API による Supabase プロジェクト管理
- 06Python SDK による Auth Admin メソッドのユーザー管理
活用シーン
- 01Cursor や Windsurf から Supabase データベースに対してSQLを実行
- 02データベーススキーマの変更履歴の追跡と確認
- 03IDE 内での Supabase プロジェクトとユーザーの管理
MCP 対応
本プロジェクトは MCP サーバーであり、Cursor、Windsurf、Cline など stdio に対応する MCP クライアントに、データベース、プロジェクト管理、ユーザー管理のツールを公開します。動作には QUERY_API_KEY が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Query | Supabase 用 MCP サーバー
🌅 PyPI 経由で 17,000 件以上インストールされ、Smithery.ai では 30,000 件近くダウンロードされました。ひと言で言えば、楽しい経験でした! 🥳 この数か月間、このサーバーを使ってくださった皆さんに感謝します。お役に立てていたなら幸いです。 Supabase が独自の公式 MCP サーバーをリリースしたため、 このサーバーの積極的なメンテナンスは終了することにしました。公式 MCP サーバーも同様に機能が充実しており、今後さらに多くの 機能が追加される予定です。ぜひご確認ください!
Query MCP は、IDE から安全に SQL を実行し、スキーマの変更を管理し、Supabase Management API を呼び出し、Auth Admin SDK を使用できるオープンソースの MCP サーバーです。安全性を確保するための機能を標準で備えています。
目次
はじめに • 機能の概要 • トラブルシューティング • 変更履歴
✨ 主な機能
- 💻
stdioプロトコルに対応した Cursor、Windsurf、Cline などの MCP クライアントと互換性があります - 🔐 SQL クエリ実行の読み取り専用モードと読み書きモードを制御できます
- 🔍 リスクレベルの評価を伴う、実行時の SQL クエリ検証
- 🛡️ SQL 操作向けの 3 段階の安全システム:安全、書き込み、破壊的
- 🔄 直接接続とプール接続の両方に対応した堅牢なトランザクション処理
- 📝 データベースのスキーマ変更を自動でバージョン管理
- 💻 Supabase Management API を使用して Supabase プロジェクトを管理
- 🧑💻 Python SDK の Supabase Auth Admin メソッドを使用してユーザーを管理
- 🔨 Cursor と Windsurf が MCP をより効果的に利用できるようにする、すぐに使えるツール
- 📦 パッケージマネージャー(uv、pipx など)を使った簡単なインストールとセットアップ
はじめに
前提条件
サーバーをインストールするには、システムに以下が必要です。
- Python 3.12+
uv 経由でインストールする場合は、インストール済みであることを確認してください。
PostgreSQL のインストール
現在、MCP サーバー自体は PostgreSQL に依存しない asyncpg を使用しているため、PostgreSQL のインストールは不要です。asyncpg は PostgreSQL 開発ライブラリに依存しません。
ただし、ローカルの Supabase インスタンスを実行する場合は、引き続き PostgreSQL が必要です。
MacOS
brew install postgresql@16
Windows
- https://www.postgresql.org/download/windows/ から PostgreSQL 16+ をダウンロードしてインストールします
- インストール時に「PostgreSQL Server」と「Command Line Tools」が選択されていることを確認します
ステップ 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 データベースへの接続、Management API へのアクセス、Auth Admin SDK の使用に設定が必要です。このセクションでは、利用可能なすべての設定オプションと設定方法を説明します。
🔑 重要:v0.4 から、この MCP サーバーを使用するには API キーが必要です。API キーは thequery.dev で無料で取得できます。
環境変数
サーバーでは、以下の環境変数を使用します。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
SUPABASE_PROJECT_REF | はい | 127.0.0.1:54322 | Supabase プロジェクトの参照 ID(またはローカルのホスト名:ポート) |
SUPABASE_DB_PASSWORD | はい | postgres | データベースのパスワード |
SUPABASE_REGION | はい* | us-east-1 | Supabase プロジェクトがホストされている AWS リージョン |
SUPABASE_ACCESS_TOKEN | いいえ | なし | Supabase Management API 用の個人用アクセストークン |
SUPABASE_SERVICE_ROLE_KEY | いいえ | なし | Auth Admin SDK 用のサービスロールキー |
QUERY_API_KEY | はい | なし | thequery.dev の API キー(すべての操作に必須) |
注:デフォルト値は、ローカルでの Supabase 開発用に設定されています。リモートの Supabase プロジェクトでは、
SUPABASE_PROJECT_REFとSUPABASE_DB_PASSWORDに独自の値を指定する必要があります。
🚨 重要な設定に関する注意:リモートの Supabase プロジェクトでは、
SUPABASE_REGIONを使って、プロジェクトがホストされている正しいリージョンを必ず指定してください。「Tenant or user not found」エラーが発生した場合、ほぼ間違いなく、リージョンの設定が実際のプロジェクトのリージョンと一致していません。プロジェクトのリージョンは、Supabase ダッシュボードの Project Settings で確認できます。
接続の種類
データベース接続
- サーバーはトランザクションプーラーのエンドポイントを使って、Supabase PostgreSQL データベースに接続します
- ローカル開発では、
127.0.0.1:54322に直接接続します - リモートプロジェクトでは、次の形式を使用します:
postgresql://postgres.[project_ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres
⚠️ 重要:セッションプーリング接続には対応していません。MCP サーバーのアーキテクチャとの互換性を高めるため、サーバーはトランザクションプーリングのみを使用します。
Management API 接続
SUPABASE_ACCESS_TOKENの設定が必要ですhttps://api.supabase.comの Supabase Management API に接続します- リモートの Supabase プロジェクトでのみ動作します(ローカル開発では動作しません)
Auth Admin SDK 接続
SUPABASE_SERVICE_ROLE_KEYの設定が必要です- ローカル開発では、
http://127.0.0.1:54321に接続します - リモートプロジェクトでは、
https://[project_ref].supabase.coに接続します
設定方法
サーバーは、次の優先順位(高い順)で設定を検索します。
- 環境変数:環境に直接設定された値
- ローカルの
.envファイル:現在の作業ディレクトリにある.envファイル(ソースから実行する場合のみ有効) - グローバル設定ファイル:
- Windows:
%APPDATA%\supabase-mcp\.env - macOS/Linux:
~/.config/supabase-mcp/.env
- Windows:
- デフォルト設定:ローカル開発用のデフォルト設定(ほかの設定が見つからない場合)
⚠️ 重要: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 プロジェクト情報の確認方法
- プロジェクト参照 ID:Supabase プロジェクト URL にあります:
https://supabase.com/dashboard/project/<project-ref> - データベースのパスワード:プロジェクト作成時に設定するか、Project Settings → Database で確認できます
- アクセストークン:https://supabase.com/dashboard/account/tokens で生成します
- サービスロールキー:Project Settings → API → Project API keys で確認できます
対応リージョン
サーバーは、すべての 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 の機能:Management API と Auth Admin SDK の機能は、リモート Supabase プロジェクトでのみ動作し、ローカル開発では動作しません
ステップ 3. 使用方法
一般に、stdio プロトコルに対応する MCP クライアントであれば、この MCP サーバーを利用できます。このサーバーは、以下のクライアントで動作することを明示的にテスト済みです。
- Cursor
- Windsurf
- Cline
- Claude Desktop
また、smithery.ai を使って、このサーバーを上記を含む複数のクライアントにインストールすることもできます。
以下のガイドに従って、この MCP サーバーをクライアントにインストールしてください。
Cursor
Settings -> Features -> MCP Servers に移動し、次の設定で新しいサーバーを追加します。
# 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)
設定が正しければ、緑色の点と、サーバーが公開するツールの数が表示されます。
Windsurf
Cascade に移動 -> ハンマーアイコンをクリック -> Configure -> 設定を入力します:
{
"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
Claude Desktop は JSON 設定を使用した MCP サーバーにも対応しています。以下の手順で Supabase MCP サーバーを設定します:
-
実行可能ファイルの完全なパスを確認します(この手順は重要です):
# On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server返された完全なパスをコピーします(例:
/Users/username/.local/bin/supabase-mcp-server)。 -
Claude Desktop で MCP サーバーを設定します:
- Claude Desktop を開きます
- Settings → Developer -> Edit Config MCP Servers に移動します
- 次の 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
Cline は同様の JSON 設定を使用した MCP サーバーにも対応しています。以下の手順で Supabase MCP サーバーを設定します:
-
実行可能ファイルの完全なパスを確認します(この手順は重要です):
# On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server返された完全なパスをコピーします(例:
/Users/username/.local/bin/supabase-mcp-server)。 -
Cline で MCP サーバーを設定します:
- VS Code で Cline を開きます
- Cline のサイドバーにある「MCP Servers」タブをクリックします
- 「Configure MCP Servers」をクリックします
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 Servers 一覧で Supabase MCP サーバーの横に緑色のインジケーターが表示され、パネル下部に「supabase MCP server connected」という確認メッセージが表示されます。
トラブルシューティング
役立つヒントやコツをいくつかご紹介します。
- インストールのデバッグ - ターミナルから直接
supabase-mcp-serverを実行し、動作するか確認してください。動作しない場合は、インストールに問題がある可能性があります。 - MCP サーバーの設定 - 上記の手順で動作した場合、サーバーは正しくインストールされ、設定されています。適切なコマンドを指定していれば、IDE は接続できるはずです。サーバーの実行ファイルへの正しいパスを指定してください。
- 「No tools found」エラー - パッケージがインストールされているにもかかわらず、Cursor で「Client closed - no tools available」と表示される場合:
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で環境変数を設定するか、グローバル設定ディレクトリに配置した.envファイル(macOS/Linux では~/.config/supabase-mcp/.env、Windows では%APPDATA%\supabase-mcp\.env)で設定してください。 - ログへのアクセス - MCP サーバーは詳細なログをファイルに書き込みます。
- ログファイルの場所:
- macOS/Linux:
~/.local/share/supabase-mcp/mcp_server.log - Windows:
%USERPROFILE%\.local\share\supabase-mcp\mcp_server.log
- macOS/Linux:
- ログには接続状況、設定の詳細、操作結果が含まれます
- 任意のテキストエディターまたはターミナルコマンドでログを表示できます。
# macOS/Linux の場合 cat ~/.local/share/supabase-mcp/mcp_server.log # Windows(PowerShell)の場合 Get-Content "$env:USERPROFILE\.local\share\supabase-mcp\mcp_server.log"
- ログファイルの場所:
行き詰まった場合や、上記の手順に誤りがある場合は、イシューを報告してください。
MCP Inspector
MCP サーバーの問題のデバッグに非常に役立つツールが MCP Inspector です。ソースからインストールした場合は、プロジェクトのリポジトリから supabase-mcp-inspector を実行すると、インスペクターのインスタンスが起動します。ログと併せて使用すれば、サーバーで何が起きているかを詳しく把握できます。
📝 パッケージからインストールした場合、
supabase-mcp-inspectorは正常に動作しません。次回のリリースで検証して修正します。
機能概要
データベースクエリツール
v0.3 以降、サーバーは安全制御機能を組み込んだ包括的なデータベース管理機能を提供します。
-
SQL クエリの実行:リスク評価を行いながら PostgreSQL クエリを実行します
- 3 段階の安全システム:
safe:読み取り専用操作(SELECT)— 常に許可されますwrite:データ変更(INSERT、UPDATE、DELETE)— unsafe モードが必要ですdestructive:スキーマ変更(DROP、CREATE)— unsafe モードと確認が必要です
- 3 段階の安全システム:
-
SQL の解析と検証:
- PostgreSQL のパーサー(pglast)を使用して正確に分析し、安全要件について明確なフィードバックを提供します
-
マイグレーションの自動バージョン管理:
- データベースを変更する操作には自動的にバージョンが付与されます
- 操作の種類と対象に基づいて、内容を示す名前を生成します
-
安全制御:
- デフォルトの SAFE モードでは読み取り専用操作のみが許可されます
asyncpgを介して、すべてのステートメントをトランザクションモードで実行します- 高リスク操作には 2 段階の確認が必要です
-
利用可能なツール:
get_schemas:スキーマのサイズとテーブル数を一覧表示しますget_tables:テーブル、外部テーブル、ビューをメタデータと併せて一覧表示しますget_table_schema:テーブル構造(列、キー、リレーションシップ)の詳細を取得しますexecute_postgresql:データベースに対して SQL ステートメントを実行しますconfirm_destructive_operation:確認後に高リスク操作を実行しますretrieve_migrations:フィルタリングとページネーションのオプションを指定してマイグレーションを取得しますlive_dangerously:safe モードと unsafe モードを切り替えます
管理 API ツール
v0.3.0 以降、サーバーは組み込みの安全制御により、Supabase Management 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)— 危険モードが必要ですblocked:破壊的な操作(プロジェクトの削除など)— 常に禁止されます
- デフォルトの安全モードにより、意図しない状態変更を防ぎます
- パスベースのパターンマッチングにより、正確な安全ルールを適用します
注:Management API ツールはリモートの Supabase インスタンスでのみ動作し、ローカルの Supabase 開発環境には対応していません。
Auth Admin ツール
当初は Python SDK のメソッドに対応する機能を MCP サーバーに追加する予定でした。検討の結果、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_emailやgenerate_linkなどのメソッドを使用するには、Supabase プロジェクトでメール送信を設定する必要があります - リンクの種類:リンクを生成する場合、リンクの種類によって要件が異なります。
signupリンクでは、ユーザーが存在している必要はありませんmagiclinkとrecoveryリンクでは、ユーザーがすでにシステムに存在している必要があります
- エラーハンドリング:サーバーは 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 モードを有効にする必要があります
- 高リスクの操作には、unsafe モードの有効化と明示的な確認が必要です
- 極めて高リスクの操作は決して許可されません
確認フローの仕組み
高リスクの操作(PostgreSQL リクエスト、API リクエストを問わず)は、unsafe モードでもブロックされます。
実行するには、高リスクの操作ごとに明示的に確認して承認する必要があります。
変更履歴
- 📦 パッケージマネージャーを利用したインストールの簡素化 - ✅ (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)
- 🥳 Query MCP をリリース (v0.4.0)
より詳細なロードマップについては、GitHub のこちらのディスカッションをご覧ください。
Star History
お楽しみください! ☺️
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。