MisterSandFR/Supabase-MCP-SelfHosted
If you are the rightful owner of Supabase-MCP-SelfHosted and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Self-Hosted Supabase MCP Server - Enhanced Security Edition is a secure and production-ready server designed for interacting with self-hosted Supabase instances, featuring comprehensive security improvements and enterprise-grade features.
Supabase MCP Server - Self-Hosted Edition
đïž Serveur MCP Supabase Self-Hosted - Gestion complĂšte de votre instance Supabase privĂ©e
đ FonctionnalitĂ©s
- đ Gestion complĂšte de votre instance Supabase privĂ©e
- đ ïž 54+ outils MCP pour l'administration Supabase
- đ Monitoring et mĂ©triques en temps rĂ©el
- đ DĂ©ploiement automatique sur Railway
- đ SĂ©curitĂ© renforcĂ©e avec prĂ©vention SQL injection
- ⥠Performance optimisée pour la production
đïž Architecture
Ce repository contient uniquement le serveur MCP Supabase pur, sans interface web ni hub central.
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
đ DĂ©marrage Rapide
Prérequis
- Python 3.11+
- Instance Supabase (self-hosted ou cloud)
- Variables d'environnement Supabase
Option A â SDK Smithery (recommandĂ©)
# 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
- Le serveur SDK est défini dans
pyproject.toml
via:[tool.smithery] server = "supabase_mcp_server.server:create_server"
- Lors du dĂ©ploiement dans lâinterface Smithery, configurez le Test Profile puis lancez le Scan.
Option B â HTTP self-hosted (compat)
# 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
Avec Docker (Railway / self-hosted)
# 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
âïž Configuration
Variables d'Environnement
# 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
đ ïž Outils MCP Disponibles
Base de Données (15 outils)
execute_sql
- ExĂ©cution de requĂȘtes SQLlist_tables
- Liste des tablesinspect_schema
- Inspection du schémaapply_migration
- Application de migrationsbackup_database
- Sauvegarde de baserestore_database
- Restauration de basevacuum_analyze
- Optimisation de baseget_database_stats
- Statistiques de basecreate_index
- Création d'indexdrop_index
- Suppression d'indexlist_extensions
- Liste des extensionsmanage_extensions
- Gestion des extensionsexecute_psql
- Commandes psqlcheck_health
- Vérification de santéget_database_connections
- Connexions de base
Authentification (8 outils)
list_auth_users
- Liste des utilisateurscreate_auth_user
- Création d'utilisateurupdate_auth_user
- Mise Ă jour d'utilisateurdelete_auth_user
- Suppression d'utilisateurget_auth_user
- Récupération d'utilisateurverify_jwt_secret
- Vérification JWTmanage_roles
- Gestion des rĂŽlesmanage_rls_policies
- Gestion des politiques RLS
Stockage (6 outils)
list_storage_buckets
- Liste des bucketslist_storage_objects
- Liste des objetsmanage_storage_policies
- Gestion des politiquesupload_file
- Upload de fichierdownload_file
- Téléchargement de fichierdelete_file
- Suppression de fichier
Temps Réel (4 outils)
list_realtime_publications
- Liste des publicationsmanage_realtime
- Gestion du temps réelcreate_subscription
- Création de subscriptiondelete_subscription
- Suppression de subscription
Migrations (8 outils)
create_migration
- Création de migrationlist_migrations
- Liste des migrationspush_migrations
- Push des migrationsvalidate_migration
- Validation de migrationsmart_migration
- Migration intelligenteauto_migrate
- Migration automatiquesync_schema
- Synchronisation de schémaimport_schema
- Import de schéma
Monitoring (5 outils)
get_logs
- Récupération des logsmetrics_dashboard
- Tableau de bord métriquesanalyze_performance
- Analyse de performanceanalyze_rls_coverage
- Analyse couverture RLSaudit_security
- Audit de sécurité
Utilitaires (8 outils)
generate_typescript_types
- Génération de types TSgenerate_crud_api
- Génération d'API CRUDcache_management
- Gestion du cacheenvironment_management
- Gestion d'environnementmanage_secrets
- Gestion des secretsmanage_functions
- Gestion des fonctionsmanage_triggers
- Gestion des triggersmanage_webhooks
- Gestion des webhooks
đ§ API Endpoints
Serveur MCP (HTTP self-hosted)
GET /health
- Health checkPOST /mcp
- Endpoint JSON-RPC principalGET /.well-known/mcp-config
- Configuration MCPGET /mcp/tools.json
- Découverte des outils (JSON)
Outils Spécialisés
GET /api/tools
- Liste des outils disponiblesPOST /api/execute
- Exécution d'outils
đ DĂ©ploiement
Smithery (SDK Python) â RecommandĂ©
- Vérifiez que
pyproject.toml
contient:[tool.smithery] server = "supabase_mcp_server.server:create_server"
- Dans Smithery â Deploy, sĂ©lectionnez SDK Python
- Configurez le Test Profile puis lancez le Scan
- Requis:
SUPABASE_URL
,SUPABASE_ANON_KEY
- Requis:
Railway (Self-hosted)
# 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
Intégration avec Hub Central
Ce serveur est conçu pour ĂȘtre intĂ©grĂ© avec le 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)
Lors de la connexion cÎté Smithery, fournissez les clés suivantes dans le Test Profile:
{
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_ANON_KEY": "eyJ..."
}
En cas de cache, re-sauvegardez le profil et relancez le Scan.
đ SĂ©curitĂ©
- Validation des entrées pour prévenir les injections SQL
- Rate limiting par IP et utilisateur
- Audit logs de toutes les opérations
- Chiffrement HTTPS obligatoire en production
- Gestion des secrets sécurisée
- Politiques RLS pour la sécurité des données
đ Monitoring
Le serveur fournit un monitoring complet :
- Métriques de performance en temps réel
- Logs structurés avec niveaux configurables
- Health checks automatiques
- Alertes en cas de problĂšme
- Tableau de bord métriques
- Analyse de performance détaillée
đ€ Contribution
- Fork le repository
- Créer une branche feature (
git checkout -b feature/amazing-feature
) - Commit vos changements (
git commit -m 'Add amazing feature'
) - Push vers la branche (
git push origin feature/amazing-feature
) - Ouvrir une Pull Request
đ Licence
Ce projet est sous licence MIT. Voir le fichier pour plus de détails.
đ Remerciements
- Supabase pour la plateforme
- Smithery pour l'écosystÚme MCP
- La communauté Supabase pour les contributions
đ Support
- đ§ Email : contact@coupaul.fr
- đŹ Discord : Serveur MCP Community
- đ Issues : GitHub Issues
Fait avec â€ïž par coupaul