Supabase MCP サーバー 🚀
🔥 CursorのComposerとCodeiumのCascadeの両方を通じて、Supabase PostgreSQLデータベースの完全な管理制御を提供する強力なモデルコンテキストプロトコル(MCP)サーバーです。このツールは、テーブル操作、レコード管理、スキーマ変更など、包括的な機能を備え、シームレスなデータベース管理を実現します。
📚 目次
🔧 前提条件
- Node.js >= 16.x
- npm >= 8.x
- Supabase プロジェクト:
- プロジェクトID
- データベースパスワード
- PostgreSQL接続文字列
- Cursor IDE または Codeium の Cascade (有料ユーザー向け)
🚀 クイックスタート
📥 インストール
⚙️ 構成
- 依存関係をインストールしてプロジェクトをビルドします。
- カーソルの MCP 設定で、次のコマンドを使用してサーバーを追加します。交換する:
/path/to/dist/index.js
実際のパスに置き換えます[PROJECT-ID]
を Supabase プロジェクト ID に置き換えます[PASSWORD]
データベースのパスワードに置き換えます
注意: データベースの資格情報は安全に保管し、バージョン管理にコミットしないでください。
🎯 統合
カーソルMCP統合
モデルコンテキストプロトコル(MCP)を使用すると、Cursorのエージェント型LLMにカスタムツールを提供できます。このサーバーはCursorのComposer機能と統合でき、自然言語コマンドを通じてあらゆるデータベース管理ツールに直接アクセスできます。
カーソルでの設定
- カーソル設定 > 機能 > MCP を開く
- 「+新しいMCPサーバーを追加」ボタンをクリックします。
- モーダルフォームに記入してください:
- 名前: 「Supabase MCP」(または任意のニックネーム)
- タイプ:
command
(stdio トランスポート) - コマンド: 接続の詳細を含む完全なコマンド文字列
- まずプロジェクトをビルドします。
- Node.js パスを取得します:
- サーバー コマンドを追加します。交換する:
/path/to/node
を実際の Node.js パス(手順 5 から)に置き換えます。/path/to/dist/index.js
をビルドした JavaScript ファイルへの実際のパスに置き換えます。[PROJECT-ID]
を Supabase プロジェクト ID に置き換えます[PASSWORD]
データベースのパスワードに置き換えます
- 「サーバーを追加」をクリックし、右上隅の更新ボタンをクリックします。
カーソルのツールの使用
Composer Agent は、データベースタスクを記述する際に、関連するツールを自動的に検出して使用します。例えば、
- 「データベース内のすべてのテーブルを一覧表示する」
- 「新しいユーザーテーブルを作成する」
- 「メール列にインデックスを追加する」
エージェントがツールを使用するとき、次のものが表示されます。
- ツール呼び出しを承認/拒否するためのプロンプト
- ツール呼び出し引数(展開可能)
- 承認後の対応
注: このようなstdioサーバーの場合、コマンドは有効なシェルコマンドである必要があります。環境変数が必要な場合は、ラッパースクリプトの使用を検討してください。
Windsurf/Cascade 統合
このMCPサーバーは、CodeiumのCascade(Windsurf)統合もサポートしています。この機能は現在、有料の個人ユーザーのみご利用いただけます(TeamsおよびEnterpriseユーザーはご利用いただけません)。
Cascadeでの設定
~/.codeium/windsurf/mcp_config.json
を作成または編集します。- 設定へのクイックアクセス:
- カスケード入力の上にあるツールバーを見つけます
- ハンマーアイコンをクリック
- 「構成」をクリックしてmcp_config.jsonを開きます。
- 構成内の置き換え:
/path/to/node
を実際の Node.js パスに置き換えます/path/to/dist/index.js
実際のパスに置き換えます[PROJECT-ID]
を Supabase プロジェクト ID に置き換えます[PASSWORD]
データベースのパスワードに置き換えます
- カスケードの場合:
- ツールバーのハンマーアイコンをクリックします
- 「構成」をクリックして設定を確認します
- 「更新」をクリックしてMCPサーバーをロードします
- 利用可能なツールを表示するにはサーバー名をクリックしてください
Cascadeユーザー向けの重要な注意事項
- ツール機能のみがサポートされます(プロンプトやリソースはサポートされません)
- MCPツールの呼び出しは成功か失敗かに関係なくクレジットを消費します。
- 画像出力はサポートされていません
- stdioトランスポートタイプのみがサポートされています
- ツール呼び出しは任意のサーバー実装者が書いたコードを呼び出すことができる
- CascadeはMCPツールの呼び出しの失敗については責任を負いません。
✨ 特徴
🎯 利用可能なデータベースツール
テーブル管理
- テーブル:
list_tables
、create_table
、drop_table
、rename_table
- 列:
add_column
、drop_column
、alter_column
- レコード:
fetch_records
、create_record
、update_record
、delete_record
インデックスと制約
- インデックス:
list_indexes
、create_index
、delete_index
、update_index
- 制約:
list_constraints
、add_constraint
、remove_constraint
、update_constraint
データベース関数とトリガー
- 関数:
list_functions
、create_function
、update_function
、delete_function
- トリガー:
list_triggers
、create_trigger
、update_trigger
、delete_trigger
セキュリティとアクセス制御
- ポリシー:
list_policies
、create_policy
、update_policy
、delete_policy
- ロール:
list_roles
、create_role
、update_role
、delete_role
ストレージ管理
- バケット:
list_buckets
、create_bucket
、delete_bucket
- ファイル:
delete_file
、bulk_delete_files
- フォルダ:
list_folders
データの種類と出版物
- 列挙型:
list_enumerated_types
、create_enumerated_type
、update_enumerated_type
、delete_enumerated_type
- 出版物:
list_publications
、create_publication
、update_publication
、delete_publication
リアルタイム機能
- ポリシー:
list_realtime_policies
、create_realtime_policy
、update_realtime_policy
、delete_realtime_policy
- チャネル:
list_realtime_channels
、manage_realtime_channels
、send_realtime_message
、get_realtime_messages
- 管理:
manage_realtime_status
、manage_realtime_views
ユーザー管理
- 認証:
list_users
、create_user
、update_user
、delete_user
直接SQLアクセス
- クエリ:
query
- カスタム SQL クエリを実行する
🚀 主なメリット
- 自然言語制御: シンプルな会話型コマンドで Supabase データベースを管理します
- 包括的なカバレッジ: テーブル、レコード、インデックス、関数、セキュリティなどをカバーする完全なツールスイート
- シームレスな統合: CursorのComposerとCodeiumのCascade内で直接動作します
- 開発者フレンドリー: IDEとデータベース管理ツール間のコンテキスト切り替えを削減
- セキュアアクセス: 適切な認証でデータベースのセキュリティを維持します
📁 プロジェクト構造
💡 使用方法
MCPサーバーの設定が完了すると、CursorのComposerを通じてすべてのデータベース管理ツールが利用可能になります。データベースで何をしたいかを記述するだけで、AIが適切なコマンドを実行します。
例:
- 📋「データベース内のすべてのテーブルを表示」
- ➕「ID、名前、メールの列を持つ新しいユーザーテーブルを作成する」
- 🔍「ユーザーテーブルのメール列にインデックスを追加する」
🔒 セキュリティに関する注意事項
- 🔐 データベース接続文字列を安全に保つ
- ⚠️ 機密性の高い資格情報をバージョン管理にコミットしないでください
- 👮 適切なアクセス制御と権限を使用する
- 🛡️ SQLインジェクションを防ぐために、すべての入力を検証してサニタイズします
🛠️ トラブルシューティング
一般的な接続の問題
- Node.js パスの問題
- 正しいNode.jsパスを使用していることを確認してください
- Mac/Linuxの場合:
which node
を使用して正しいパスを見つけます - Windowsの場合:
where node
を使用して正しいパスを見つけます /usr/local/bin/node
実際の Node.js パスに置き換えます。
- ファイルパスの問題
- 相対パスではなく絶対パスを使用する
- Mac/Linuxの場合: プロジェクトディレクトリで
pwd
を使用してフルパスを取得します - Windowsの場合:
cd
を使用してフルパスを取得します - 例:
/Users/username/projects/supabase-mcp-server/dist/index.js
- MCPがツールを検出しない
- カーソルのMCP設定の更新ボタンをクリックします
- サーバーが実行中であることを確認します(エラーメッセージはありません)
- 接続文字列が正しいか確認してください
- Supabaseの認証情報が有効であることを確認してください
- 権限の問題
dist
ディレクトリが存在することを確認してください(npm run build
を実行)- ファイルの権限を確認する(Unixシステムでは
chmod +x
) - 適切な権限で
npm install
実行します。
デバッグモード
詳細なログを表示するには、コマンドの前にDEBUG=true
を追加します。
プラットフォーム固有の注意事項
Windowsユーザー
Linuxユーザー
引き続き問題が発生する場合は、次の方法で問題を報告してください:
- オペレーティングシステム
- Node.js バージョン (
node --version
) - 完全なエラーメッセージ
- 再現手順
🤝 貢献する
貢献を歓迎します!お気軽にプルリクエストを送信してください。
📄 ライセンス
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Cursor の Composer と Codeium の Cascade を通じて Supabase PostgreSQL データベースの管理制御を提供し、テーブル、レコード、スキーマ変更などの機能を使用してデータベース管理を可能にする強力なサーバーです。
Related MCP Servers
- AsecurityAlicenseAqualityFacilitates management and optimization of PostgreSQL databases, offering analysis, setup guidance, and debugging, while ensuring secure and efficient database operations.Last updated -3612TypeScriptAGPL 3.0
- AsecurityAlicenseAqualityThis server enables interaction with Supabase PostgreSQL databases through the MCP protocol, allowing seamless integration with Cursor and Windsurf IDEs for secure and validated database management.Last updated -11699PythonApache 2.0
- -securityAlicense-qualityAn MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.Last updated -JavaScriptMIT License
- -securityFlicense-qualityA server that allows AI models to interact with PostgreSQL databases through a standardized protocol, providing database schema information and SQL query execution capabilities.Last updated -JavaScript