Skip to main content
Glama
abdqum

Supabase MCP Server - Self-Hosted Edition

by abdqum

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 SQL

  • list_tables - Liste des tables

  • inspect_schema - Inspection du schéma

  • apply_migration - Application de migrations

  • backup_database - Sauvegarde de base

  • restore_database - Restauration de base

  • vacuum_analyze - Optimisation de base

  • get_database_stats - Statistiques de base

  • create_index - Création d'index

  • drop_index - Suppression d'index

  • list_extensions - Liste des extensions

  • manage_extensions - Gestion des extensions

  • execute_psql - Commandes psql

  • check_health - Vérification de santé

  • get_database_connections - Connexions de base

Authentification (8 outils)

  • list_auth_users - Liste des utilisateurs

  • create_auth_user - Création d'utilisateur

  • update_auth_user - Mise à jour d'utilisateur

  • delete_auth_user - Suppression d'utilisateur

  • get_auth_user - Récupération d'utilisateur

  • verify_jwt_secret - Vérification JWT

  • manage_roles - Gestion des rôles

  • manage_rls_policies - Gestion des politiques RLS

Stockage (6 outils)

  • list_storage_buckets - Liste des buckets

  • list_storage_objects - Liste des objets

  • manage_storage_policies - Gestion des politiques

  • upload_file - Upload de fichier

  • download_file - Téléchargement de fichier

  • delete_file - Suppression de fichier

Temps Réel (4 outils)

  • list_realtime_publications - Liste des publications

  • manage_realtime - Gestion du temps réel

  • create_subscription - Création de subscription

  • delete_subscription - Suppression de subscription

Migrations (8 outils)

  • create_migration - Création de migration

  • list_migrations - Liste des migrations

  • push_migrations - Push des migrations

  • validate_migration - Validation de migration

  • smart_migration - Migration intelligente

  • auto_migrate - Migration automatique

  • sync_schema - Synchronisation de schéma

  • import_schema - Import de schéma

Monitoring (5 outils)

  • get_logs - Récupération des logs

  • metrics_dashboard - Tableau de bord métriques

  • analyze_performance - Analyse de performance

  • analyze_rls_coverage - Analyse couverture RLS

  • audit_security - Audit de sécurité

Utilitaires (8 outils)

  • generate_typescript_types - Génération de types TS

  • generate_crud_api - Génération d'API CRUD

  • cache_management - Gestion du cache

  • environment_management - Gestion d'environnement

  • manage_secrets - Gestion des secrets

  • manage_functions - Gestion des fonctions

  • manage_triggers - Gestion des triggers

  • manage_webhooks - Gestion des webhooks

🔧 API Endpoints

Serveur MCP (HTTP self-hosted)

  • GET /health - Health check

  • POST /mcp - Endpoint JSON-RPC principal

  • GET /.well-known/mcp-config - Configuration MCP

  • GET /mcp/tools.json - Découverte des outils (JSON)

Outils Spécialisés

  • GET /api/tools - Liste des outils disponibles

  • POST /api/execute - Exécution d'outils

🚀 Déploiement

Smithery (SDK Python) — Recommandé

  1. Vérifiez que pyproject.toml contient:

    • [tool.smithery] server = "supabase_mcp_server.server:create_server"

  2. Dans Smithery → Deploy, sélectionnez SDK Python

  3. Configurez le Test Profile puis lancez le Scan

    • Requis: SUPABASE_URL, SUPABASE_ANON_KEY

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

  1. Fork le repository

  2. Créer une branche feature (git checkout -b feature/amazing-feature)

  3. Commit vos changements (git commit -m 'Add amazing feature')

  4. Push vers la branche (git push origin feature/amazing-feature)

  5. Ouvrir une Pull Request

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

🙏 Remerciements

  • Supabase pour la plateforme

  • Smithery pour l'écosystème MCP

  • La communauté Supabase pour les contributions

📞 Support


Fait avec ❤️ par coupaul

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abdqum/Supabase-MCP-SelfHosted'

If you have feedback or need assistance with the MCP directory API, please join our Discord server