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 統合用)
設定
- リポジトリをクローンします。Copy
- 依存関係をインストールします:Copy
- 資格情報を使用して
.env
ファイルを作成します。Copy
使用法
ライブデータベースでサーバーを実行する
Supabase データベース接続による通常の操作の場合:
モックデータベースでサーバーを実行する
ライブデータベース接続なしでの開発またはテストの場合:
接続テスト
実際のデータベースと模擬データベースの両方との接続をテストするには:
自然言語テスト
自然言語クエリを使用して MCP サーバーをテストできる強力な自然言語テスト環境を追加しました。
自然言語テスト クライアントは以下を提供します。
- テスト用のインタラクティブなコマンドラインインターフェース
- Claudeを使用した自然言語からSQLへの変換
- Supabaseデータベースに対するSQL実行
- フォーマットされた結果表示
- コマンド履歴と結果保存機能
試してみる自然言語クエリのサンプル:
- 「パブリックスキーマ内のすべてのテーブルを表示」
- 「先月登録したすべてのユーザーを取得する」
- 「データベース内のユーザーの総数はどれくらいですか?」
パッケージとしてインストールする
React Native PaveAppとの統合
React Native用MCPサーバーの設定
- サーバーを実行します:
- 開発の場合:
improved_mock_server.bat
でモック モードを使用します。 - 本番環境の場合: データベースの資格情報が正しいことを確認し、
run_server.py
を実行します。
- 開発の場合:
- サーバーをアクセス可能にする:
- ローカル開発の場合: React Nativeがローカルネットワークにアクセスできることを確認する
- 本番環境の場合: アプリからアクセスできるサーバーをホストします
- React Nativeから接続:
- MCPクライアントライブラリを使用してサーバーに接続する
- サーバーのアドレスとポートを使用してクライアントを構成する
APIエンドポイント
MCP サーバーは、MCP プロトコルを通じてアクセスできる次のツールを公開します。
get_schemas
: すべてのデータベーススキーマを一覧表示するget_tables
: スキーマ内のテーブルを一覧表示するget_table_schema
: 詳細なテーブル構造を取得するexecute_postgresql
: SQL文を実行するretrieve_migrations
: データベースの移行を一覧表示するgenerate_sql
: 自然言語からSQLを生成する
トラブルシューティング
接続の詳細
サーバーは、データベース接続に Supabase セッション プーラーを使用します。
Supabase では、特に IPv4 ネットワーク上で永続的な接続を維持するアプリケーションに対してこの接続形式を推奨しています。
接続の問題
Supabase で接続の問題が発生した場合:
- Supabaseプロジェクトがアクティブであることを確認する
.env
ファイル内のデータベース資格情報が正しいことを確認します- Supabaseデータベース設定でIPアドレスが許可されていることを確認してください
- 地域に適した正しいプーラーホストを使用していることを確認してください
- モックデータベースモードの使用を試してください:
USE_MOCK_DB=true
python test_pooler_connection.py
を実行して、プーラー接続を具体的にテストします。- 包括的な接続テストを実行するには、
python connection_test.py
を実行します。
模擬データベースモード
サーバーには、改良されたモック データベース サポートが含まれるようになりました。
- 接続に失敗した場合、モックデータに自動的にフォールバックします
- 実データと模擬データ間の一貫したインターフェース
- 模擬データが使用されている場合の明確な表示
- トラブルシューティングのためのログの改善
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
This server cannot be installed
Claude 3.7 を使用して Supabase PostgreSQL データベースの自然言語クエリを可能にする MCP サーバー。ユーザーはスキーマの検査、SQL の実行、移行の管理、自然言語から SQL クエリへの変換を行うことができます。