Supabase MCP サーバー
Supabaseデータベースとやり取りするためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、MCPインターフェースを介してテーブルをクエリしたり、TypeScript型を生成したりするためのツールを提供します。
特徴
- クエリ テーブル: 次のサポートを使用して任意のテーブルでクエリを実行します。
- スキーマの選択
- 列フィルタリング
- 複数の演算子を含むWhere句
- ページネーション
- エラー処理
- 型生成: データベースの TypeScript 型を生成します。
- あらゆるスキーマ (public、auth、api など) のサポート
- ローカルとリモートの両方の Supabase プロジェクトで動作します
- コンソールへの直接出力
- 自動プロジェクト参照検出
前提条件
- Node.js (v16 以上)
- Supabase プロジェクト (ローカルまたはホスト)
- Supabase CLI (型生成用)
インストール
- リポジトリをクローンします。
git clone https://github.com/yourusername/supabase-mcp-server.git
cd supabase-mcp-server
- 依存関係をインストールします:
- Supabase CLI をインストールします (型生成に必要)。
# Using npm
npm install -g supabase
# Or using Homebrew on macOS
brew install supabase/tap/supabase
構成
- Supabase の資格情報を取得します。
- ホストされたプロジェクトの場合:
- Supabaseプロジェクトダッシュボードに移動します
- プロジェクト設定 > API に移動します
- プロジェクト URL と service_role キー (anon キーではありません) をコピーします。
- ローカルプロジェクトの場合:
- ローカルのSupabaseインスタンスを起動する
- ローカル URL を使用します (通常はhttp://localhost:54321 )
- ローカルのservice_roleキーを使用する
- 環境変数を設定します。
# Create a .env file (this will be ignored by git)
echo "SUPABASE_URL=your_project_url
SUPABASE_KEY=your_service_role_key" > .env
- サーバーを構築します。
Claude Desktopとの統合
- Claude デスクトップの設定を開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
- サーバー構成を追加します。
{
"mcpServers": {
"supabase": {
"command": "node",
"args": ["/absolute/path/to/supabase-mcp-server/build/index.js"],
"env": {
"SUPABASE_URL": "your_project_url",
"SUPABASE_KEY": "your_service_role_key"
}
}
}
}
VSCode拡張機能との統合
- VSCode 設定を開きます。
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
- Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- サーバー構成を追加します (Claude Desktop と同じ形式)。
使用例
テーブルのクエリ
// Query with schema selection and where clause
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>query_table</tool_name>
<arguments>
{
"schema": "public",
"table": "users",
"select": "id,name,email",
"where": [
{
"column": "is_active",
"operator": "eq",
"value": true
}
]
}
</arguments>
</use_mcp_tool>
型の生成
// Generate types for public schema
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>generate_types</tool_name>
<arguments>
{
"schema": "public"
}
</arguments>
</use_mcp_tool>
利用可能なツール
クエリテーブル
スキーマ選択と where 句のサポートを使用して特定のテーブルをクエリします。
パラメータ:
schema
(オプション): データベーススキーマ (デフォルトは public)table
(必須): クエリするテーブルの名前select
(オプション): カンマ区切りの列リストwhere
(オプション): 次の条件の配列:column
: 列名operator
: eq、neq、gt、gte、lt、lte、like、ilike、is のいずれかvalue
: 比較する値
生成型
Supabase データベース スキーマの TypeScript 型を生成します。
パラメータ:
schema
(オプション): データベーススキーマ (デフォルトは public)
トラブルシューティング
型生成の問題
- Supabase CLI がインストールされていることを確認します。
- ローカルプロジェクトの場合:
- ローカルのSupabaseインスタンスが実行中であることを確認してください
- service_roleキーが正しいことを確認してください
- ホストされたプロジェクトの場合:
- プロジェクト参照が正しいことを確認してください(URL から抽出)
- anonキーではなくservice_roleキーを使用していることを確認してください
クエリの問題
- スキーマとテーブル名を確認してください
- SELECT句とWHERE句の列名を確認する
- service_role キーに必要な権限があることを確認してください
貢献
- リポジトリをフォークする
- 機能ブランチを作成します:
git checkout -b feature/my-feature
- 変更をコミットします:
git commit -am 'Add my feature'
- ブランチにプッシュする:
git push origin feature/my-feature
- プルリクエストを送信する
ライセンス
MITライセンス - 詳細はLICENSEファイルを参照