J’ai voulu écrire ce guide parce que c’est un peu spécifique comme setup et ça peut vitre rendre fou.
Sur le net et même via les LLM, quand on utilise pas Claude Code, Cursor ou VSCode on est vite oublié dans les tutos.
Ce guide explique comment configurer le serveur MCP (Model Context Protocol) dbhub pour permettre à GitHub Copilot dans JetBrains (DataGrip, IntelliJ IDEA, etc.) d’interroger directement votre base de données (PG, MariaDB, MySQL, etc.) via des requêtes SQL en langage naturel.
🚀 Étape 1 : Démarrer le serveur dbhub
J’ai décidé d’utiliser DB Hub qui est open source et facile à configurer en local. En plus la doc est clean et il offre une WebUI pour tester les requêtes SQL manuellement.
Commande à exécuter dans un terminal
npx @bytebase/dbhub@latest --transport http --port 8081 --dsn "mariadb://username:password@localhost:3306/database_name"
Remplacez :
username: votre nom d’utilisateur de base de donnéespassword: votre mot de passelocalhost:3306: l’hôte et le port de votre serveur MariaDBdatabase_name: le nom de votre base de données (schéma)
Exemple :
npx @bytebase/dbhub@latest --transport http --port 8081 --dsn "mariadb://root:mypassword@localhost:3306/db_name"
Vérification
Une fois démarré, dbhub expose deux URL :
- Workbench UI : http://localhost:8081/
- MCP endpoint : http://localhost:8081/mcp
Vous pouvez ouvrir le workbench dans votre navigateur pour tester manuellement les requêtes SQL.
Vous pouvez aussi utiliser MCP Inspector (https://modelcontextprotocol.io/docs/tools/inspector) pour tester la connexion MCP en mode http.
⚙️ Étape 2 : Configuration de GitHub Copilot dans JetBrains
2.1 Accéder aux paramètres MCP de GitHub Copilot
-
Ouvrir les paramètres JetBrains :
- macOS :
Cmd + ,ouJetBrains IDEA/DataGrip→Settings... - Windows/Linux :
Ctrl + Alt + SouFile→Settings...
- macOS :
-
Naviguer vers GitHub Copilot MCP :
Tools → GitHub Copilot → Model Context Protocol (MCP) -
Vous arrivez sur la page de configuration des serveurs MCP
2.2 Ajouter le serveur dbhub
-
Cliquer sur le bouton
+(Ajouter un serveur MCP) -
Choisir le type de connexion :
HTTP -
Remplir les informations :
- Name :
dbhub-local(ou un nom de votre choix) - URL :
http://localhost:8081/mcp
- Name :
-
Cliquer sur
OKpour sauvegarder
2.3 Exemple de configuration JSON (alternative)
Vous pouvez aussi éditer directement le fichier de configuration MCP situé dans :
macOS/Linux :
~/.config/github-copilot/mcp_config.json
Windows :
%APPDATA%\GitHub Copilot\mcp_config.json
Contenu du fichier :
{
"mcpServers": {
"dbhub-local": {
"type": "http",
"url": "http://localhost:8081/mcp"
}
}
}
🔄 Étape 3 : Redémarrer JetBrains
⚠️ IMPORTANT : Vous DEVEZ redémarrer JetBrains après chaque modification du fichier mcp_config.json
- Fermez complètement JetBrains (DataGrip, IntelliJ IDEA, etc.)
- Relancez l’application
Sans ce redémarrage, GitHub Copilot ne prendra pas en compte la nouvelle configuration MCP. (c’est un peu pénible mais c’est comme ça pour l’instant)
✅ Étape 4 : Vérification et utilisation
Vérifier que la connexion fonctionne
-
Ouvrir le chat GitHub Copilot dans JetBrains :
- Cliquer sur l’icône GitHub Copilot en bas à droite
- Ou utiliser le raccourci :
Ctrl + Shift + A→GitHub Copilot Chat
-
Passer en mode Agent (pas Ask mode)
-
Tester une requête :
Liste-moi les tables du schéma 'tartenpion' via dbhub
Exemples de requêtes que vous pouvez faire
Combien d'utilisateurs sont dans la base ?
Montre-moi la structure de la table 'bidule'
Trouve les 10 derniers enregistrements créés dans la table 'record'
Quelle est la taille de chaque table dans le schéma 'tartenpion' ?
🔧 Dépannage
Le serveur dbhub ne démarre pas
Erreur : “Database connection configuration is required”
- Vérifiez que vous avez bien fourni le
--dsndans la commande - Vérifiez que les identifiants et le nom de la base sont corrects
Erreur de connexion à la base de données
- Testez votre DSN avec un client MySQL/MariaDB classique
- Vérifiez que le serveur de base de données est bien démarré
GitHub Copilot ne voit pas le serveur MCP
- Vérifiez que le serveur dbhub est bien démarré (http://localhost:8081/)
- Vérifiez la configuration MCP :
- Allez dans
Tools → GitHub Copilot → Model Context Protocol (MCP) - Le serveur
dbhub-localdoit apparaître - Le status doit être “Connected” ou “Running”
- Allez dans
- Redémarrez JetBrains (obligatoire après toute modification)
- Vérifiez que vous êtes en mode Agent dans le chat Copilot
Erreur “Connection closed” ou “MCP error -32000”
- Le serveur dbhub a probablement planté ou été arrêté
- Relancez la commande
npx @bytebase/dbhub@latestdans votre terminal - Attendez que le serveur soit complètement démarré avant de faire des requêtes
📝 Notes importantes
- ‼️Sécurité‼️ : Le DSN contient vos identifiants de base de données. Ne les partagez jamais dans un fichier versionné.
- ‼️SECURITÉ AVANT TOUT‼️ : Les MCP peuvent potentiellement exposer vos données. Assurez-vous de comprendre les risques avant de les utiliser en production. Les LLMs peuvent générer des requêtes SQL dangereuses et sont vulnérables aux prompt injections !!
- Performance : dbhub fonctionne en mode local et n’envoie pas vos données vers des serveurs externes.
- Persistance : Le serveur dbhub doit rester actif tant que vous souhaitez utiliser la fonctionnalité MCP.
- Multiple bases : Vous pouvez configurer plusieurs serveurs MCP pour différentes bases de données en changeant le port et le nom.
🎯 Cas d’usage avancés
Démarrer dbhub en arrière-plan (Unix/Linux/macOS)
nohup npx @bytebase/dbhub@latest --transport http --port 8081 --dsn "mariadb://user:pass@localhost:3306/db" > dbhub.log 2>&1 &
Utiliser un fichier de configuration TOML
Créez un fichier dbhub.toml :
[[sources]]
id = "dev"
dsn = "mariadb://user:password@localhost:3306/dev_db"
[[sources]]
id = "production"
dsn = "mariadb://user:password@prod-server:3306/prod_db"
Puis lancez dbhub :
npx @bytebase/dbhub@latest --transport http --port 8081 --config dbhub.toml
📚 Ressources
- Documentation dbhub : https://github.com/bytebase/dbhub
- GitHub Copilot dans JetBrains : https://docs.github.com/en/copilot
- Model Context Protocol : https://modelcontextprotocol.io/