/ Annuaire / Playground / DBHub
● Officiel bytebase 🔑 Nécessite votre clé

DBHub

par bytebase · bytebase/dbhub

Un MCP, de nombreuses bases de données — Postgres, MySQL, SQL Server, SQLite, Oracle — dans une interface de requête en lecture seule par défaut.

Le DBHub de Bytebase est un MCP sans dépendances qui communique avec plusieurs bases de données relationnelles via un seul binaire npx @bytebase/dbhub. Passez le DSN pour votre type de BD, obtenez la navigation du schéma, l'échantillonnage de tables et l'exécution SQL. S'exécute en mode lecture seule par défaut, ce qui le rend sûr pour les sessions d'exploration en production.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

dbhub.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "dbhub": {
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "dbhub",
      "command": "npx",
      "args": [
        "-y",
        "@bytebase/dbhub"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "dbhub": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@bytebase/dbhub"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add dbhub -- npx -y @bytebase/dbhub

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : DBHub

Interroger 3 bases de données différentes en une seule session

👤 Ingénieurs dont la pile technique compte plus d'une BD relationnelle ⏱ ~20 min intermediate

Quand l'utiliser : Votre pile technique a Postgres pour les données principales, MySQL pour un service hérité, et SQL Server pour une copie de reporting — et vous voulez un seul assistant IA pour tous.

Prérequis
  • DSN pour chaque BD avec des identifiants en lecture seule — formats postgres://, mysql://, sqlserver://, sqlite://, oracle://
Déroulement
  1. Configurer plusieurs DSN
    Montrez-moi à quelle BD je suis actuellement connecté. Si nécessaire, basculez vers le DSN MySQL.✓ Copié
    → Indicateur de BD active clair
  2. Inspecter le schéma
    Listez les tables de la BD actuelle avec les nombres de lignes approximatifs.✓ Copié
    → Catalogue de tables
  3. Référencer entre les BD
    Interrogez Postgres pour les emails des utilisateurs, puis interrogez MySQL legacy_users pour les mêmes emails, dites-moi qui est dans l'un mais pas l'autre.✓ Copié
    → Rapport de réconciliation

Résultat : Un seul flux de travail entre des BD hétérogènes sans jongler avec différents serveurs MCP.

Pièges
  • Les différences de dialecte SQL font trébucher Claude (par exemple LIMIT vs TOP) — Dites explicitement à Claude quel type de BD la requête actuelle cible, ou divisez en tours spécifiques à la BD
Combiner avec : filesystem

Analyser un fichier SQLite que quelqu'un vous a envoyé

👤 Ingénieurs / analystes à qui on a remis un fichier .db opaque ⏱ ~10 min beginner

Quand l'utiliser : Un client a envoyé un dump sqlite et veut qu'on y jette un œil.

Déroulement
  1. Pointer DBHub vers le fichier
    Utilisez le DSN sqlite:///path/to/data.db. Listez les tables + nombres de lignes.✓ Copié
    → Inventaire de tables
  2. Échantillonner chacune
    Pour chaque table non triviale, affichez 5 exemples de lignes et déduisez le but.✓ Copié
    → Résumé par table
  3. Répondre à la question du client
    Le client demande : <question>. Écrivez SQL, exécutez, retournez la réponse.✓ Copié
    → Requête + résultat

Résultat : Exploration rapide d'un fichier sqlite inconnu sans l'extraire dans un autre outil.

Pièges
  • Les grandes tables sqlite n'ont pas d'index — les analyses complètes peuvent verrouiller le fichier — Ouvrez en lecture seule ; évitez les agrégations sur plus d'1M de lignes en une seule requête
Combiner avec : filesystem

Exécuter des requêtes de reporting sur un réplica en lecture de manière sûre

👤 BI / analytique ⏱ ~15 min beginner

Quand l'utiliser : Vous avez un réplica pour l'analytique et voulez des rapports ad hoc pilotés par IA sans exposer la primaire.

Prérequis
  • DSN en lecture seule contre le réplica — Identifiants réplica seul ; statement_timeout appliqué dans DSN
Déroulement
  1. Vérifier que c'est le réplica
    Confirmez que la connexion actuelle est en lecture seule et pointe vers l'hôte réplica.✓ Copié
    → Chaîne d'hôte + flag en lecture seule vérifiés
  2. Exécuter le rapport
    [coller la question métier]. Traduisez en SQL, exécutez, retournez les résultats.✓ Copié
    → Ensemble de résultats
  3. Persister pour réutilisation
    Enregistrez ce SQL dans /reports/<name>.sql avec un commentaire expliquant la question.✓ Copié
    → Fichier SQL enregistré

Résultat : BI ad hoc sans risque pour la primaire de production.

Pièges
  • Les requêtes lourdes ralentissent le réplica et créent un décalage de réplication — Définissez statement_timeout et exécutez les grandes requêtes hors des heures de pointe
Combiner avec : filesystem · antv-chart

Auditer les procédures stockées SQL Server pour une migration

👤 Équipes migrant depuis SQL Server ⏱ ~30 min advanced

Quand l'utiliser : Vous avez besoin d'une liste de chaque procédure stockée, ses lignes de code, et la date de dernière modification.

Déroulement
  1. Lister les procs
    Interrogez sys.procedures + sys.sql_modules pour lister toutes les procs avec le nom, le schéma, les lignes, et la date de dernière modification.✓ Copié
    → Inventaire des procs
  2. Classer par complexité
    Catégorisez les procs par nombre de lignes : trivial (<50), moyen (50-300), complexe (>300). Comptez chaque catégorie.✓ Copié
    → Histogramme de complexité
  3. Mettre en évidence les fonctionnalités spécifiques à MSSQL
    Pour les procs complexes, signalez l'utilisation de construits spécifiques à MSSQL (CROSS APPLY, récursion CTE, TOP, GETDATE) — ce sont les éléments de migration difficiles.✓ Copié
    → Liste de risque de migration

Résultat : Un plan de migration de procédure stockée fondé sur des chiffres réels.

Pièges
  • Certaines procs contiennent du SQL dynamique qui est difficile à classer — Signalez toute proc avec EXEC sp_executesql pour examen manuel
Combiner avec : filesystem

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

dbhub + antv-chart

Exécuter SQL puis tracer le résultat directement

Interrogez les revenus hebdomadaires de la réplica Postgres via DBHub, puis affichez sous forme de graphique linéaire AntV.✓ Copié
dbhub + filesystem

Enregistrer les requêtes + résultats pour la reproductibilité

Exécutez la requête KPI hebdomadaire, enregistrez SQL dans /sql/weekly.sql et CSV de résultat dans /data/weekly-<date>.csv.✓ Copié
dbhub + notion

Publier un rapport sauvegardé par SQL sur Notion

Exécutez la requête des meilleurs clients, créez une page Notion avec le résultat sous forme de tableau.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_databases Première étape d'exploration free
list_tables database? Cataloguer avant les requêtes free
describe_table table, schema? Inspecter le schéma avant de faire des requêtes free
execute_sql sql, params? Lire ou écrire SQL (l'écriture nécessite un flag) depends on query
execute_read_sql sql, params? Exécution explicite en lecture seule depends

Coût et limites

Coût d'exécution

Quota d'API
Limité par vos limites de connexion BD
Tokens par appel
Dépend de la taille du résultat ; limitez avec LIMIT
Monétaire
Gratuit — les coûts sont votre hébergement BD uniquement
Astuce
Définissez un statement_timeout dans le DSN ; les requêtes écrites par l'IA peuvent être enthousiastes à propos des analyses complètes.

Sécurité

Permissions, secrets, portée

Portées minimales : SELECT sur les tables cibles
Stockage des identifiants : DSN en env (DSN ou variable env par saveur)
Sortie de données : Direct à votre BD ; pas de proxy tiers
Ne jamais accorder : CREATE/DROP/ALTER dans le rôle de connexion sauf si nécessaire pour la session

Dépannage

Erreurs courantes et correctifs

Authentification échouée / accès refusé

Les identifiants DSN sont incorrects ou manquent SELECT. Revérifiez le format DSN pour chaque saveur.

Vérifier : Connect with the DB's native client using the same DSN
Fonctionnalité SQL non supportée / erreur de syntaxe

Incompatibilité de saveur — dites à Claude quel dialecte BD est actif, ou revérifiez le préfixe DSN.

Pool de connexion épuisé

Réduisez la concurrence ou augmentez la taille du pool ; les requêtes de longue durée sont généralement la véritable cause.

Écritures rejetées (lecture seule)

DBHub est en lecture seule par défaut. Redémarrez avec --readonly=false pour cette session.

Alternatives

DBHub vs autres

AlternativeQuand l'utiliserCompromis
Postgres MCPVous n'utilisez que Postgres ; fonctionnalités plus profondes spécifiques à PostgresSaveur unique
MongoDB MCPVous avez besoin de Mongo aux côtés de relationnelModèle de données différent
Supabase MCPVous êtes sur Supabase et voulez la gestion projet+BDLié à Supabase

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills