MisterSandFR-supabase-mcp-selfhosted について
プライベートなSupabaseインスタンスを管理する、セルフホスト可能なMCPサーバーです。データベースに加え、認証、ストレージ、リアルタイム機能、マイグレーション、監視を扱い、Docker、Railway、Smitheryでのデプロイに対応します。
主な機能
- 01データベース、スキーマ、マイグレーションの管理
- 02ユーザー、ロール、RLSポリシーの管理
- 03ストレージバケットとファイルの操作
- 04リアルタイムの公開設定とサブスクリプション管理
- 05ログやメトリクスの確認とセキュリティ監査
- 06Docker、Railway、Smitheryでのデプロイ
活用シーン
- 01MCPツール経由でのSupabaseデータベース保守
- 02認証ユーザーとデータアクセス方針の管理
- 03パフォーマンス問題の調査とログ確認
- 04セルフホスト環境へのSupabase MCPサーバーのデプロイ
MCP 対応
MCPクライアントに、Supabaseのデータベース、認証、ストレージ、リアルタイム、マイグレーション、監視、管理ツールを公開します。Smithery SDKまたはセルフホスト型HTTPサーバーとして実行できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://server.smithery.ai/@MisterSandFR/supabase-mcp-selfhosted/mcpclaude mcp add --transport http ai-smithery-mistersandfr-supabase-mcp-selfhosted https://server.smithery.ai/@MisterSandFR/supabase-mcp-selfhosted/mcp{"mcpServers":{"ai-smithery-mistersandfr-supabase-mcp-selfhosted":{"type":"http","url":"https://server.smithery.ai/@MisterSandFR/supabase-mcp-selfhosted/mcp"}}}Cursor で開く{"servers":{"ai-smithery-mistersandfr-supabase-mcp-selfhosted":{"type":"http","url":"https://server.smithery.ai/@MisterSandFR/supabase-mcp-selfhosted/mcp"}}}VS Code で開く{"mcpServers":{"ai-smithery-mistersandfr-supabase-mcp-selfhosted":{"type":"http","url":"https://server.smithery.ai/@MisterSandFR/supabase-mcp-selfhosted/mcp"}}}{"mcpServers":{"ai-smithery-mistersandfr-supabase-mcp-selfhosted":{"serverUrl":"https://server.smithery.ai/@MisterSandFR/supabase-mcp-selfhosted/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://server.smithery.ai/@MisterSandFR/supabase-mcp-selfhosted/mcp認証が必要ツール
詳細
Supabase MCP サーバー - セルフホスト版
🗄️ Supabase セルフホスト版 MCP サーバー - プライベートな Supabase インスタンスを包括的に管理
🌟 機能
- 🔐 プライベートな Supabase インスタンスを包括的に管理
- 🛠️ Supabase 管理用の54 以上の MCP ツール
- 📊 リアルタイムのモニタリングとメトリクス
- 🚀 Railway への自動デプロイ
- 🔒 SQL インジェクション防止による強化されたセキュリティ
- ⚡ 本番環境向けに最適化されたパフォーマンス
🏗️ アーキテクチャ
このリポジトリには、ウェブインターフェースや中央ハブを含まない、純粋な Supabase MCP サーバーのみが含まれています。
Supabase MCP Server (Port 8000)
├── 🗄️ Gestion de base de données
├── 🔐 Authentification et autorisation
├── 📁 Stockage et fichiers
├── 🔄 Temps réel et subscriptions
├── 🛠️ Migrations et schémas
├── 📊 Monitoring et logs
└── 🚀 Déploiement automatique
🚀 クイックスタート
前提条件
- Python 3.11+
- Supabase インスタンス(セルフホストまたはクラウド)
- Supabase の環境変数
オプション A — Smithery SDK(推奨)
# Cloner le repository
git clone https://github.com/MisterSandFR/Supabase-MCP-SelfHosted.git
cd Supabase-MCP-SelfHosted
# Installer les dépendances
pip install -r requirements.txt
# (Facultatif) Installer la CLI Smithery si besoin
npm i -g @smithery/cli
# Lancer le dev SDK (selon votre environnement)
smithery dev # ou: smithery playground
- SDK サーバーは
pyproject.tomlで次のように定義されています。[tool.smithery] server = "supabase_mcp_server.server:create_server"
- Smithery のインターフェースでデプロイする際は、Test Profile を設定してから Scan を実行してください。
オプション B — HTTP セルフホスト(互換)
# Cloner le repository
git clone https://github.com/MisterSandFR/Supabase-MCP-SelfHosted.git
cd Supabase-MCP-SelfHosted
# Installer les dépendances Python
pip install -r requirements.txt
# Configurer les variables d'environnement
export SUPABASE_URL="https://your-project.supabase.co"
export SUPABASE_ANON_KEY="your-anon-key"
export SUPABASE_SERVICE_KEY="your-service-key" # Optionnel
# Démarrer le serveur HTTP externe
python src/supabase_server.py
Docker を使用する場合(Railway/セルフホスト)
# Build et démarrage (utilisez Dockerfile.railway si besoin)
docker build -f Dockerfile.railway -t supabase-mcp-server .
docker run -p 8000:8000 \
-e SUPABASE_URL="https://your-project.supabase.co" \
-e SUPABASE_ANON_KEY="your-anon-key" \
supabase-mcp-server
⚙️ 設定
環境変数
# Supabase Configuration
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=eyJ... (votre clé anonyme)
SUPABASE_SERVICE_KEY=eyJ... (optionnel, pour opérations privilégiées)
# Server Configuration
PORT=8000
PYTHONUNBUFFERED=1
🛠️ 利用可能な MCP ツール
データベース(15 ツール)
execute_sql- SQL クエリの実行list_tables- テーブル一覧inspect_schema- スキーマの検査apply_migration- マイグレーションの適用backup_database- データベースのバックアップrestore_database- データベースの復元vacuum_analyze- データベースの最適化get_database_stats- データベース統計情報create_index- インデックスの作成drop_index- インデックスの削除list_extensions- 拡張機能の一覧manage_extensions- 拡張機能の管理execute_psql- psql コマンドcheck_health- ヘルスチェックget_database_connections- データベース接続
認証(8 ツール)
list_auth_users- ユーザー一覧create_auth_user- ユーザーの作成update_auth_user- ユーザーの更新delete_auth_user- ユーザーの削除get_auth_user- ユーザーの取得verify_jwt_secret- JWT の検証manage_roles- ロールの管理manage_rls_policies- RLS ポリシーの管理
ストレージ(6 ツール)
list_storage_buckets- バケット一覧list_storage_objects- オブジェクト一覧manage_storage_policies- ポリシーの管理upload_file- ファイルのアップロードdownload_file- ファイルのダウンロードdelete_file- ファイルの削除
リアルタイム(4 ツール)
list_realtime_publications- パブリケーション一覧manage_realtime- リアルタイム機能の管理create_subscription- サブスクリプションの作成delete_subscription- サブスクリプションの削除
マイグレーション(8 ツール)
create_migration- マイグレーションの作成list_migrations- マイグレーション一覧push_migrations- マイグレーションのプッシュvalidate_migration- マイグレーションの検証smart_migration- スマートマイグレーションauto_migrate- マイグレーションの自動実行sync_schema- スキーマの同期import_schema- スキーマのインポート
モニタリング(5 ツール)
get_logs- ログの取得metrics_dashboard- メトリクスダッシュボードanalyze_performance- パフォーマンス分析analyze_rls_coverage- RLS カバレッジ分析audit_security- セキュリティ監査
ユーティリティ(8 ツール)
generate_typescript_types- TypeScript 型の生成generate_crud_api- CRUD API の生成cache_management- キャッシュの管理environment_management- 環境の管理manage_secrets- シークレットの管理manage_functions- 関数の管理manage_triggers- トリガーの管理manage_webhooks- Webhook の管理
🔧 API エンドポイント
MCP サーバー(HTTP セルフホスト)
GET /health- ヘルスチェックPOST /mcp- メインの JSON-RPC エンドポイントGET /.well-known/mcp-config- MCP 設定GET /mcp/tools.json- ツールの検出(JSON)
専門ツール
GET /api/tools- 利用可能なツールの一覧POST /api/execute- ツールの実行
🚀 デプロイ
Smithery(Python SDK)— 推奨
pyproject.tomlに以下が含まれていることを確認します。[tool.smithery] server = "supabase_mcp_server.server:create_server"
- Smithery → Deploy で Python SDK を選択します
- Test Profile を設定し、Scan を実行します
- 必須:
SUPABASE_URL、SUPABASE_ANON_KEY
- 必須:
Railway(セルフホスト)
# Déployer sur Railway
railway login
railway init
railway up
Docker
# Build et déploiement
docker build -t supabase-mcp-server .
docker run -p 8000:8000 supabase-mcp-server
Hub Central との統合
このサーバーは MCP Hub Central と統合できるように設計されています。
{
"servers": {
"supabase": {
"name": "Supabase MCP Server",
"host": "supabase.mcp.coupaul.fr",
"port": 8000,
"path": "/",
"categories": ["database", "auth", "storage", "realtime", "security", "migration", "monitoring", "performance"]
}
}
}
🧪 Test Profile(Smithery)
Smithery 側で接続する際は、Test Profile に以下のキーを入力してください。
{
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_ANON_KEY": "eyJ..."
}
キャッシュがある場合は、プロファイルを再保存して Scan を再実行してください。
🔒 セキュリティ
- 入力の検証による SQL インジェクションの防止
- IP とユーザーごとのレート制限
- すべての操作の監査ログ
- 本番環境でのHTTPS 暗号化の必須化
- シークレットの安全な管理
- データセキュリティのためのRLS ポリシー
📊 モニタリング
サーバーでは包括的なモニタリングを提供します。
- リアルタイムのパフォーマンスメトリクス
- 設定可能なレベルを備えた構造化ログ
- 自動のヘルスチェック
- 問題発生時のアラート
- メトリクスのダッシュボード
- 詳細なパフォーマンス分析
🤝 貢献
- リポジトリをフォークします
- feature ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - Pull Request を作成します
📄 ライセンス
このプロジェクトは MIT ライセンスのもとで公開されています。詳細は LICENSE ファイルをご覧ください。
🙏 謝辞
📞 サポート
- 📧 メール:[email protected]
- 💬 Discord:MCP コミュニティサーバー
- 🐛 Issue:GitHub Issues
coupaul が ❤️ を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。