Yazdani-Supabase-MCP Server

MIT License
  • Linux
  • Apple

Integrations

  • Uses .env files to securely store and manage configuration variables like API keys and database credentials

  • Enables SQL execution, schema inspection, and database migration management for PostgreSQL databases

  • Designed for integration with React Native PaveApp, providing database access capabilities

Yazdani-Supabase-MCP-サーバー

Supabase PostgreSQL と統合し、自然言語クエリ処理に Claude 3.7 を使用する MCP サーバー。React Native PaveApp との統合用に設計されています。

特徴

  • スキーマ検査: データベースのスキーマ、テーブル、列、関係を表示します
  • SQL実行:安全制御を備えたSQLクエリを実行する
  • 移行管理: データベースの移行を表示および管理します
  • 自然言語処理: Claude 3.7 を使用して自然言語を SQL に変換する
  • 安全管理:破壊的な操作に対する保護
  • モックデータベースモード: ライブデータベース接続なしでの開発とテストのサポート
  • 自動フォールバックメカニズム: データベース接続が失敗したときに、モックデータに正常にフォールバックします。
  • セッション プーラーのサポート: 安定した接続のために Supabase セッション プーラーを使用します

インストール

前提条件

  • Python 3.8以上
  • Supabase PostgreSQL データベースへのアクセス(モックモードではオプション)
  • Anthropic API キー(Claude 統合用)

設定

  1. リポジトリをクローンします。
    git clone <repository-url> cd Yazdani-supabase-mcp-server
  2. 依存関係をインストールします:
    pip install -r requirements.txt
  3. 資格情報を使用して.envファイルを作成します。
    # Supabase credentials SUPABASE_PROJECT_REF=your_project_ref SUPABASE_URL=https://your_project_ref.supabase.co SUPABASE_DB_PASSWORD=your_db_password SUPABASE_REGION=your_region SUPABASE_ACCESS_TOKEN=your_access_token SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # Database connection POSTGRES_HOST=db.your_project_ref.supabase.co POSTGRES_PORT=5432 POSTGRES_DB=postgres POSTGRES_USER=postgres SUPABASE_POOLER_HOST=aws-0-ca-central-1.pooler.supabase.com # Claude API ANTHROPIC_API_KEY=your_anthropic_api_key # Optional: for mock database mode # USE_MOCK_DB=true

使用法

ライブデータベースでサーバーを実行する

Supabase データベース接続による通常の操作の場合:

python run_server.py

モックデータベースでサーバーを実行する

ライブデータベース接続なしでの開発またはテストの場合:

# Windows improved_mock_server.bat # Unix/macOS USE_MOCK_DB=true python run_server.py

接続テスト

実際のデータベースと模擬データベースの両方との接続をテストするには:

python connection_test.py

自然言語テスト

自然言語クエリを使用して MCP サーバーをテストできる強力な自然言語テスト環境を追加しました。

# Windows - Run the full test environment (HTTP server + NL client) run_nl_test.bat # Manual setup python http_server.py --port 8000 # Terminal 1 python nl_test_client.py # Terminal 2

自然言語テスト クライアントは以下を提供します。

  • テスト用のインタラクティブなコマンドラインインターフェース
  • Claudeを使用した自然言語からSQLへの変換
  • Supabaseデータベースに対するSQL実行
  • フォーマットされた結果表示
  • コマンド履歴と結果保存機能

試してみる自然言語クエリのサンプル:

  • 「パブリックスキーマ内のすべてのテーブルを表示」
  • 「先月登録したすべてのユーザーを取得する」
  • 「データベース内のユーザーの総数はどれくらいですか?」

パッケージとしてインストールする

pip install -e . yazdani-supabase-mcp-server

React Native PaveAppとの統合

React Native用MCPサーバーの設定

  1. サーバーを実行します:
    • 開発の場合: improved_mock_server.batでモック モードを使用します。
    • 本番環境の場合: データベースの資格情報が正しいことを確認し、 run_server.pyを実行します。
  2. サーバーをアクセス可能にする:
    • ローカル開発の場合: React Nativeがローカルネットワークにアクセスできることを確認する
    • 本番環境の場合: アプリからアクセスできるサーバーをホストします
  3. React Nativeから接続:
    • MCPクライアントライブラリを使用してサーバーに接続する
    • サーバーのアドレスとポートを使用してクライアントを構成する

APIエンドポイント

MCP サーバーは、MCP プロトコルを通じてアクセスできる次のツールを公開します。

  • get_schemas : すべてのデータベーススキーマを一覧表示する
  • get_tables : スキーマ内のテーブルを一覧表示する
  • get_table_schema : 詳細なテーブル構造を取得する
  • execute_postgresql : SQL文を実行する
  • retrieve_migrations : データベースの移行を一覧表示する
  • generate_sql : 自然言語からSQLを生成する

トラブルシューティング

接続の詳細

サーバーは、データベース接続に Supabase セッション プーラーを使用します。

postgresql://postgres.{project_ref}:{password}@{pooler_host}:5432/postgres

Supabase では、特に IPv4 ネットワーク上で永続的な接続を維持するアプリケーションに対してこの接続形式を推奨しています。

接続の問題

Supabase で接続の問題が発生した場合:

  1. Supabaseプロジェクトがアクティブであることを確認する
  2. .envファイル内のデータベース資格情報が正しいことを確認します
  3. Supabaseデータベース設定でIPアドレスが許可されていることを確認してください
  4. 地域に適した正しいプーラーホストを使用していることを確認してください
  5. モックデータベースモードの使用を試してください: USE_MOCK_DB=true
  6. python test_pooler_connection.pyを実行して、プーラー接続を具体的にテストします。
  7. 包括的な接続テストを実行するには、 python connection_test.pyを実行します。

模擬データベースモード

サーバーには、改良されたモック データベース サポートが含まれるようになりました。

  • 接続に失敗した場合、モックデータに自動的にフォールバックします
  • 実データと模擬データ間の一貫したインターフェース
  • 模擬データが使用されている場合の明確な表示
  • トラブルシューティングのためのログの改善

貢献

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

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude 3.7 を使用して Supabase PostgreSQL データベースの自然言語クエリを可能にする MCP サーバー。ユーザーはスキーマの検査、SQL の実行、移行の管理、自然言語から SQL クエリへの変換を行うことができます。

  1. Features
    1. Installation
      1. Prerequisites
      2. Setup
    2. Usage
      1. Running the Server with Live Database
      2. Running the Server with Mock Database
      3. Testing Connection
      4. Natural Language Testing
      5. Installing as a Package
    3. Integration with React Native PaveApp
      1. Setting Up MCP Server for React Native
      2. API Endpoints
    4. Troubleshooting
      1. Connection Details
      2. Connection Issues
      3. Mock Database Mode
    5. Contributing
      1. License
        ID: 7jnh2kp4l9