Supabase MCP Server

Integrations

  • Integrates with Codeium's Cascade feature (for paying users) to provide database management tools through natural language commands in the Cascade interface.

  • Enables direct management of PostgreSQL databases with tools for tables, columns, records, indexes, constraints, functions, triggers, and executing custom SQL queries.

  • Provides full administrative control over a Supabase PostgreSQL database, including tools for table operations, record management, schema modifications, indexes, constraints, database functions, triggers, security policies, and storage management.

Supabase MCP サーバー 🚀

🔥 CursorのComposerとCodeiumのCascadeの両方を通じて、Supabase PostgreSQLデータベースの完全な管理制御を提供する強力なモデルコンテキストプロトコル(MCP)サーバーです。このツールは、テーブル操作、レコード管理、スキーマ変更など、包括的な機能を備え、シームレスなデータベース管理を実現します。

📚 目次

🔧 前提条件

  • Node.js >= 16.x
  • npm >= 8.x
  • Supabase プロジェクト:
    • プロジェクトID
    • データベースパスワード
    • PostgreSQL接続文字列
  • Cursor IDE または Codeium の Cascade (有料ユーザー向け)

🚀 クイックスタート

📥 インストール

# Clone the repository git clone https://github.com/Quegenx/supabase-mcp-server.git cd supabase-mcp-server # Install dependencies npm install # Build the project npm run build

⚙️ 構成

  1. 依存関係をインストールしてプロジェクトをビルドします。
    npm install npm run build
  2. カーソルの MCP 設定で、次のコマンドを使用してサーバーを追加します。
    /opt/homebrew/bin/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres
    交換する:
    • /path/to/dist/index.js実際のパスに置き換えます
    • [PROJECT-ID]を Supabase プロジェクト ID に置き換えます
    • [PASSWORD]データベースのパスワードに置き換えます

注意: データベースの資格情報は安全に保管し、バージョン管理にコミットしないでください。

🎯 統合

カーソルMCP統合

モデルコンテキストプロトコル(MCP)を使用すると、Cursorのエージェント型LLMにカスタムツールを提供できます。このサーバーはCursorのComposer機能と統合でき、自然言語コマンドを通じてあらゆるデータベース管理ツールに直接アクセスできます。

カーソルでの設定

  1. カーソル設定 > 機能 > MCP を開く
  2. 「+新しいMCPサーバーを追加」ボタンをクリックします。
  3. モーダルフォームに記入してください:
    • 名前: 「Supabase MCP」(または任意のニックネーム)
    • タイプ: command (stdio トランスポート)
    • コマンド: 接続の詳細を含む完全なコマンド文字列
  4. まずプロジェクトをビルドします。
    npm install npm run build
  5. Node.js パスを取得します:
    # On Mac/Linux which node # On Windows where node
  6. サーバー コマンドを追加します。
    /path/to/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres
    交換する:
    • /path/to/nodeを実際の Node.js パス(手順 5 から)に置き換えます。
    • /path/to/dist/index.jsをビルドした JavaScript ファイルへの実際のパスに置き換えます。
    • [PROJECT-ID]を Supabase プロジェクト ID に置き換えます
    • [PASSWORD]データベースのパスワードに置き換えます
  7. 「サーバーを追加」をクリックし、右上隅の更新ボタンをクリックします。

カーソルのツールの使用

Composer Agent は、データベースタスクを記述する際に、関連するツールを自動的に検出して使用します。例えば、

  • 「データベース内のすべてのテーブルを一覧表示する」
  • 「新しいユーザーテーブルを作成する」
  • 「メール列にインデックスを追加する」

エージェントがツールを使用するとき、次のものが表示されます。

  1. ツール呼び出しを承認/拒否するためのプロンプト
  2. ツール呼び出し引数(展開可能)
  3. 承認後の対応

注: このようなstdioサーバーの場合、コマンドは有効なシェルコマンドである必要があります。環境変数が必要な場合は、ラッパースクリプトの使用を検討してください。

Windsurf/Cascade 統合

このMCPサーバーは、CodeiumのCascade(Windsurf)統合もサポートしています。この機能は現在、有料の個人ユーザーのみご利用いただけます(TeamsおよびEnterpriseユーザーはご利用いただけません)。

Cascadeでの設定

  1. ~/.codeium/windsurf/mcp_config.jsonを作成または編集します。
    { "mcpServers": { "supabase-mcp": { "command": "/path/to/node", "args": [ "/path/to/dist/index.js", "postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres" ] } } }
  2. 設定へのクイックアクセス:
    • カスケード入力の上にあるツールバーを見つけます
    • ハンマーアイコンをクリック
    • 「構成」をクリックしてmcp_config.jsonを開きます。
  3. 構成内の置き換え:
    • /path/to/nodeを実際の Node.js パスに置き換えます
    • /path/to/dist/index.js実際のパスに置き換えます
    • [PROJECT-ID]を Supabase プロジェクト ID に置き換えます
    • [PASSWORD]データベースのパスワードに置き換えます
  4. カスケードの場合:
    • ツールバーのハンマーアイコンをクリックします
    • 「構成」をクリックして設定を確認します
    • 「更新」をクリックしてMCPサーバーをロードします
    • 利用可能なツールを表示するにはサーバー名をクリックしてください

Cascadeユーザー向けの重要な注意事項

  • ツール機能のみがサポートされます(プロンプトやリソースはサポートされません)
  • MCPツールの呼び出しは成功か失敗かに関係なくクレジットを消費します。
  • 画像出力はサポートされていません
  • stdioトランスポートタイプのみがサポートされています
  • ツール呼び出しは任意のサーバー実装者が書いたコードを呼び出すことができる
  • CascadeはMCPツールの呼び出しの失敗については責任を負いません。

✨ 特徴

🎯 利用可能なデータベースツール

テーブル管理

  • テーブル: list_tablescreate_tabledrop_tablerename_table
  • 列: add_columndrop_columnalter_column
  • レコード: fetch_recordscreate_recordupdate_recorddelete_record

インデックスと制約

  • インデックス: list_indexescreate_indexdelete_indexupdate_index
  • 制約: list_constraintsadd_constraintremove_constraintupdate_constraint

データベース関数とトリガー

  • 関数: list_functionscreate_functionupdate_functiondelete_function
  • トリガー: list_triggerscreate_triggerupdate_triggerdelete_trigger

セキュリティとアクセス制御

  • ポリシー: list_policiescreate_policyupdate_policydelete_policy
  • ロール: list_rolescreate_roleupdate_roledelete_role

ストレージ管理

  • バケット: list_bucketscreate_bucketdelete_bucket
  • ファイル: delete_filebulk_delete_files
  • フォルダ: list_folders

データの種類と出版物

  • 列挙型: list_enumerated_typescreate_enumerated_typeupdate_enumerated_typedelete_enumerated_type
  • 出版物: list_publicationscreate_publicationupdate_publicationdelete_publication

リアルタイム機能

  • ポリシー: list_realtime_policiescreate_realtime_policyupdate_realtime_policydelete_realtime_policy
  • チャネル: list_realtime_channelsmanage_realtime_channelssend_realtime_messageget_realtime_messages
  • 管理: manage_realtime_statusmanage_realtime_views

ユーザー管理

  • 認証: list_userscreate_userupdate_userdelete_user

直接SQLアクセス

  • クエリ: query - カスタム SQL クエリを実行する

🚀 主なメリット

  • 自然言語制御: シンプルな会話型コマンドで Supabase データベースを管理します
  • 包括的なカバレッジ: テーブル、レコード、インデックス、関数、セキュリティなどをカバーする完全なツールスイート
  • シームレスな統合: CursorのComposerとCodeiumのCascade内で直接動作します
  • 開発者フレンドリー: IDEとデータベース管理ツール間のコンテキスト切り替えを削減
  • セキュアアクセス: 適切な認証でデータベースのセキュリティを維持します

📁 プロジェクト構造

supabase-mcp-server/ ├── dist/ # Compiled JavaScript files │ ├── index.d.ts # TypeScript declarations │ └── index.js # Main JavaScript file ├── src/ # Source code │ └── index.ts # Main TypeScript file ├── package.json # Project configuration ├── package-lock.json # Dependency lock file └── tsconfig.json # TypeScript configuration

💡 使用方法

MCPサーバーの設定が完了すると、CursorのComposerを通じてすべてのデータベース管理ツールが利用可能になります。データベースで何をしたいかを記述するだけで、AIが適切なコマンドを実行します。

例:

  • 📋「データベース内のすべてのテーブルを表示」
  • ➕「ID、名前、メールの列を持つ新しいユーザーテーブルを作成する」
  • 🔍「ユーザーテーブルのメール列にインデックスを追加する」

🔒 セキュリティに関する注意事項

  • 🔐 データベース接続文字列を安全に保つ
  • ⚠️ 機密性の高い資格情報をバージョン管理にコミットしないでください
  • 👮 適切なアクセス制御と権限を使用する
  • 🛡️ SQLインジェクションを防ぐために、すべての入力を検証してサニタイズします

🛠️ トラブルシューティング

一般的な接続の問題

  1. Node.js パスの問題
    • 正しいNode.jsパスを使用していることを確認してください
    • Mac/Linuxの場合: which nodeを使用して正しいパスを見つけます
    • Windowsの場合: where nodeを使用して正しいパスを見つけます
    • /usr/local/bin/node実際の Node.js パスに置き換えます。
  2. ファイルパスの問題
    • 相対パスではなく絶対パスを使用する
    • Mac/Linuxの場合: プロジェクトディレクトリでpwdを使用してフルパスを取得します
    • Windowsの場合: cdを使用してフルパスを取得します
    • 例: /Users/username/projects/supabase-mcp-server/dist/index.js
  3. MCPがツールを検出しない
    • カーソルのMCP設定の更新ボタンをクリックします
    • サーバーが実行中であることを確認します(エラーメッセージはありません)
    • 接続文字列が正しいか確認してください
    • Supabaseの認証情報が有効であることを確認してください
  4. 権限の問題
    • distディレクトリが存在することを確認してください( npm run buildを実行)
    • ファイルの権限を確認する(Unixシステムではchmod +x
    • 適切な権限でnpm install実行します。

デバッグモード

詳細なログを表示するには、コマンドの前にDEBUG=trueを追加します。

DEBUG=true /usr/local/bin/node /path/to/dist/index.js [connection-string]

プラットフォーム固有の注意事項

Windowsユーザー

# Use this format for the command "C:\\Program Files\\nodejs\\node.exe" "C:\\path\\to\\dist\\index.js" "postgresql://..."

Linuxユーザー

# Find Node.js path which node # Make script executable chmod +x /path/to/dist/index.js

引き続き問題が発生する場合は、次の方法で問題を報告してください:

  • オペレーティングシステム
  • Node.js バージョン ( node --version )
  • 完全なエラーメッセージ
  • 再現手順

🤝 貢献する

貢献を歓迎します!お気軽にプルリクエストを送信してください。

📄 ライセンス


-
security - not tested
F
license - not found
-
quality - not tested

Cursor の Composer と Codeium の Cascade を通じて Supabase PostgreSQL データベースの管理制御を提供し、テーブル、レコード、スキーマ変更などの機能を使用してデータベース管理を可能にする強力なサーバーです。

  1. 📚 Table of Contents
    1. 🔧 Prerequisites
      1. 🚀 Quick Start
        1. 📥 Installation
        2. ⚙️ Configuration
      2. 🎯 Integrations
        1. Cursor MCP Integration
        2. Windsurf/Cascade Integration
      3. ✨ Features
        1. 🎯 Available Database Tools
        2. 🚀 Key Benefits
      4. 📁 Project Structure
        1. 💡 Usage
          1. 🔒 Security Notes
            1. 🛠️ Troubleshooting
              1. Common Connection Issues
              2. Debug Mode
              3. Platform-Specific Notes
            2. 🤝 Contributing
              1. 📄 License
                ID: uoif4qw663