appbase について
appbaseは、Supabaseの組織、プロジェクト、データベース、ストレージ、Edge Functions、プレビューブランチを管理するMCPサーバー兼コマンドラインツールです。Supabaseの個人アクセストークンで認証し、MCPクライアントとターミナルに共通の操作を提供します。
主な機能
- 01組織とプロジェクトの管理
- 02テーブル、マイグレーション、ログ、アドバイザーの確認
- 03SQL実行と追跡可能なマイグレーションの適用
- 04Edge Functionsとストレージバケットの管理
- 05プレビューブランチの作成と管理
活用シーン
- 01プロジェクトのスキーマとデータベース状態の確認
- 02SQL実行または追跡可能なマイグレーションの適用
- 03Edge Functionのデプロイやストレージバケットの作成
- 04プレビューブランチの作成、リベース、マージ
MCP 対応
stdio MCPサーバーを通じて、Supabaseのアカウントとプロジェクトを管理するツールをMCPクライアントに公開します。同じ操作はコマンドラインのサブコマンドからも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
28掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| schemas | array | いいえ | テーブルを一覧表示するデータベーススキーマです。省略した場合は public がデフォルトです。 |
| project_id | string | はい | テーブルを一覧表示する Supabase プロジェクトの参照 ID。 |
詳細
appbase
appbase は、MCP クライアントやターミナルから Supabase アカウントを利用できるようにします。プロジェクトや組織の一覧表示、調査、作成、一時停止、復元ができます。プロジェクト内では、スキーマ(テーブル、拡張機能、マイグレーション)の確認、SQL の実行や追跡対象のマイグレーションの適用、ログやセキュリティ/パフォーマンスアドバイザーの確認、プロジェクト URL と公開可能なキーの取得、ライブスキーマからの TypeScript 型の生成、Edge Functions の一覧表示とデプロイ、ストレージバケットの管理、プレビューブランチの操作(作成、マージ、リセット、リベース、削除)ができます。
Supabase の個人用アクセストークンが必要です。これを環境変数 SUPABASE_ACCESS_TOKEN に設定してください。トークンは Bearer トークンとして Supabase Management API に送信され、出力には表示されません。この環境変数が設定されていない場合、すべての呼び出しは環境変数名を示すエラーで失敗します。
インストール
npx @reneturcios/appbase list_projects
または、コンテナイメージを実行します。
docker run -i -e SUPABASE_ACCESS_TOKEN ghcr.io/cloudcorprecords/appbase
コンテナはデフォルトで MCP サーバーを起動します(下記参照)。CLI として使うには、CLI 引数を渡してください。
CLI
すべての MCP ツールは CLI サブコマンドとしても利用できます。ツールの引数は --json を使って 1 つの JSON オブジェクトとして渡します。プロジェクトを対象とするツールには、project_id としてプロジェクト参照を指定します。
export SUPABASE_ACCESS_TOKEN=<your Supabase personal access token>
appbase list_projects
appbase list_tables --json '{"project_id": "abcdefghijklmnopqrst"}'
appbase execute_sql --json '{"project_id": "abcdefghijklmnopqrst", "query": "select 1"}'
appbase get_advisors --json '{"project_id": "abcdefghijklmnopqrst", "type": "security"}'
appbase create_branch --json '{"project_id": "abcdefghijklmnopqrst", "name": "feat-x"}'
appbase --version
結果は JSON として出力されます。終了コード:成功時は 0、API 呼び出しの失敗時(SUPABASE_ACCESS_TOKEN の未設定を含む)は 1、使用方法のエラー時は 2 です。
MCP サーバー
1 つの実行ファイルで両方のインターフェースを提供します。mcp サブコマンドを実行すると、stdio MCP サーバーが起動します。
npx -y @reneturcios/appbase mcp
MCP クライアントの設定:
{
"mcpServers": {
"appbase": {
"command": "npx",
"args": ["-y", "@reneturcios/appbase", "mcp"],
"env": { "SUPABASE_ACCESS_TOKEN": "your Supabase personal access token" }
}
}
}
ツール
| ツール | 入力(太字は必須) | 機能 |
|---|---|---|
list_tables | project_id、schemas | 指定したスキーマのテーブルを一覧表示します(デフォルトは public)。 |
list_extensions | project_id | インストール済みのデータベース拡張機能を一覧表示します。 |
list_migrations | project_id | 適用済みのマイグレーションを一覧表示します。 |
execute_sql | project_id、query | プロジェクトのデータベースで生の SQL を実行します。 |
apply_migration | project_id、name、query | SQL を追跡対象のマイグレーションとして適用します(DDL 用)。 |
get_logs | project_id、service | 1 つのサービスの最近のログを取得します。 |
get_advisors | project_id、type | セキュリティまたはパフォーマンスに関するアドバイザーを取得します。 |
get_project_url | project_id | プロジェクトの https://<ref>.supabase.co API URL を取得します。 |
get_publishable_keys | project_id | プロジェクトの公開可能キー/anon API キーを取得します。 |
generate_typescript_types | project_id、included_schemas | スキーマから生成した TypeScript 型を取得します。 |
list_edge_functions | project_id | Edge Functions を一覧表示します。 |
get_edge_function | project_id、function_slug | 1 つの Edge Function の詳細を取得します。 |
deploy_edge_function | project_id、name、files、entrypoint_path、import_map_path | インラインファイルから Edge Function をデプロイします。 |
list_storage_buckets | project_id | ストレージバケットを一覧表示します。 |
create_storage_bucket | project_id、name、public、file_size_limit、allowed_mime_types | ストレージバケットを作成します。 |
list_branches | project_id | プレビュー用ブランチを一覧表示します。 |
create_branch | project_id、name、confirm_cost_id | プレビュー用ブランチを作成します。 |
delete_branch | project_id、branch_id | プレビュー用ブランチを削除します。 |
merge_branch | project_id、branch_id | ブランチのマイグレーションと関数を本番環境にマージします。 |
reset_branch | project_id、branch_id、migration_version | ブランチを親の状態にリセットします。 |
rebase_branch | project_id、branch_id | ブランチを親ブランチにリベースします。 |
list_projects | — | ユーザーのすべてのプロジェクトを一覧表示します。 |
get_project | id | 1 つのプロジェクトの詳細を取得します。 |
create_project | name、organization_id、region、confirm_cost_id | プロジェクトを作成します。 |
pause_project | project_id | プロジェクトを一時停止します。 |
restore_project | project_id | 一時停止中のプロジェクトを復元します。 |
list_organizations | — | ユーザーの組織を一覧表示します。 |
get_organization | id | 1 つの組織の詳細を取得します。 |
すべての呼び出しは https://api.supabase.com/v1 に送られます。SQL ツールは
プロジェクトの database/query エンドポイントに POST します。list_tables と
list_extensions は同じエンドポイントを介したカタログクエリで、それ以外の
SQL はすべて指定されたとおりに渡されます。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。