> ## Content Index
> Fetch the complete content index at: https://www.sfeir.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# Comment configurer un serveur MCP dans VSCode pour optimiser le développement Spring Boot avec PostgreSQL ?
- URL: https://www.sfeir.dev/ia/configurer-un-serveur-mcp-dans-vscode-pour-optimiser-le-developpement-spring-boot-avec-postgresql/
- Published: 2025-09-12T12:15:46.000Z
- Updated: 2025-09-12T12:18:12.000Z
- Description: Connecter PostgreSQL à VSCode grâce à un serveur MCP, c’est possible ! Fini les allers-retours entre outils pour exécuter vos requêtes SQL ou générer vos entités JPA. Dans cet article, je vous montre comment transformer votre workflow Spring Boot avec une configuration simple et efficace.
- Author: Nutu Campan
- Tags: IA, MCP, Spring Boot, VSCode, GitHub Copilot

En tant que développeur travaillant sur des projets **Spring Boot** complexes, j’ai souvent été confronté à la nécessité de naviguer rapidement entre la base de données et le code. Entre les requêtes SQL pour explorer les données, la création d’entités JPA et la génération de DTOs, le processus de développement pouvait devenir fastidieux et répétitif.

C’est pourquoi j’ai décidé de configurer un serveur **MCP (Model Context Protocol)** permettant une communication directe avec ma base de données PostgreSQL, transformant ainsi mon workflow de développement.

Le travail qui suit a été réalisé avec les **GitHub Agents** sous VSCode. Il vous faudra également avoir [Node.js ](https://www.sfeir.dev/back/node-js-definition/)installé au préalable, car le serveur MCP s’exécute dessus.

---

# Piqûre de rappel : Qu'est-ce que MCP ?

Le [Model Context Protocol (MCP)](https://www.sfeir.dev/mcp-model-context-protocol-la-cle-pour-connecter-les-ia-au-monde-reel-2/) est un protocole qui permet aux assistants IA d’interagir avec des services externes de manière sécurisée et standardisée. Dans notre cas, il nous permet de créer une interface directe entre notre environnement de développement et notre base de données PostgreSQL.

# Comment ajouter ce serveur et le configurer

Sur VSCode + [Copilot ](https://www.sfeir.dev/ia/genai-2025-le-guide-ultime-pour-tout-comprendre-a-lia-generative-outils-metiers-enjeux/), il suffit de passer en mode *Agent* et de cliquer sur la clé à gauche, où l’on ajoute un serveur.

![Où l'on ajout un serveur](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-192399f8-dee0-40a1-b953-bb6aa78496fa.png)

Où l'on ajout un serveur

Une interface s’ouvre alors, vous proposant d’ajouter plus d’outils. Si c’est la première fois que vous accédez à cette section, vous verrez directement le texte *“+ Add More Tools…”* affiché au centre de l’écran.

Le fichier de configuration **mcp.json** s’ouvre ensuite (sa localisation dépend de votre installation). Vous pouvez alors y placer la configuration suivante, en remplaçant bien sûr les données de connexion par les vôtres. Ici, nous utilisons le serveur `mcp-postgres-server`, mais si vous en connaissez d’autres, n’hésitez pas à les intégrer.

```
{
"servers": {
       "postgres": {
           "command": "npx",
           "args": ["mcp-postgres-server"],
           "env": {
               "POSTGRES_HOST": "localhost",
               "POSTGRES_PORT": "5433",
               "POSTGRES_USER": "user",
               "POSTGRES_PASSWORD": "password",
               "POSTGRES_DB": "defaultdb",
               "POSTGRES_SSL": "false"
           }
       }
   }
}

```

Bravo ! L’outil est prêt à être utilisé.  
Vous devriez voir apparaître une **petite clé** avec les six outils ajoutés, confirmant la bonne installation.

![Indications des outils ajoutés](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-a422ca3a-1b0a-4623-b4a2-4cf92d095b67-1.png)

Indications des outils ajoutés

![Liste des outils suite a l'ajout du serveur mcp postgres](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-9517436b-39c7-4474-93d0-1fd7e217d1f1.png)

Liste des outils suite a l'ajout du serveur mcp postgres

# Fonctionnalités du serveur MCP

Tout d’abord, demandez à l’agent de se connecter à la base avec une phrase simple, par exemple : *« Connecte-toi à la base »*. Vous pouvez vérifier la bonne connexion en demandant des informations sur une table : *« Donne-moi plus d’informations sur la table mySchema.Employee »*.

## Tester le serveur

Pour le test, prenons un exercice simple : créer une table dans la BDD, puis générer automatiquement tout le nécessaire côté back-end (entité, DTO, convertisseur, repository).

Voici le prompt utilisé :

```
Désormais on garde en tête que ça sera mySchema le schema qu'on utilisera. Créé une table testing, avec 3 colonnes :
un id auto-genere type uuid
info_une type text
info_deux type nombre

```

La table est alors créée et vous pouvez vérifier sa présence.

![Image de la table générée](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-efec3beb-47f8-44a7-a82e-ff4bd23fc62b.png)

Image de la table générée

Ensuite, demandons à l’agent de générer les éléments back nécessaires :

```
Sur mon projet springboot, j'ai besoin maintenant que tu créé l'entité, le dto, le repository et le converteur pour cette table. Tu peux t'inspirer de ce qui est déjà fait

```

Et voila le travail ! 

![Image du converteur](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-c83c17a5-0075-4fef-825e-903602e0726c.png)

Image du converteur

![Image du DTO](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-10a191bf-4633-4cf1-9884-890ed45f4801.png)

Image du DTO

![Image de l'entité](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-02556cd4-341a-4567-9d4a-adcef9bd1572.png)

Image de l'entité

![Image du repository](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/data-src-image-e22abd51-568f-4cdd-862f-c70cb09b1fb2.png)

Image du repository

---

# Avantages observés

#### Gain de temps considérable

Avant MCP :

- ⏱️ 30–45 minutes pour créer une entité complète
- 🔍 Allers-retours constants entre IDE et base de données
- 📝 Création manuelle de chaque classe, avec risques d’erreurs

Après MCP :

- ⚡ 2–3 minutes pour générer toute la couche de données
- 🎯 Code généré automatiquement selon les conventions du projet
- ✅ Cohérence garantie avec l’architecture existante

#### Réduction des erreurs

- **Typos éliminées** : les noms de colonnes sont extraits directement de la base
- **Types cohérents** : mapping automatique PostgreSQL ↔ [Java](https://www.sfeir.dev/back/le-langage-java-definition/)
- **Annotations correctes** : respect des conventions JPA et Lombok

#### Exploration facilitée

Il est possible d’écrire une phrase simple et d’obtenir la requête SQL correspondante pour une opération complexe.

Exemple :

```
Donne moi la requête me permettant de voir le nombre de personnes qui sont dans la table mySchema.employee avec une date de fin de contrat > maintenant , mais qui ne se trouve pas dans la table mySchema.worker

```

L’agent remarque immédiatement le manque de lien direct entre les deux tables, analyse les descriptions disponibles et finit par produire la requête correspondante :

```
SELECT COUNT(*) as nombre_personnes
FROM mySchema.employee e
WHERE e.contract_end_date > CURRENT_DATE
 AND NOT EXISTS (
   SELECT 1
   FROM mySchema.worker_employee we
   WHERE we.ldap = e.ldap
 )

```

On peut même lui demander d’optimiser la requête : il proposera alors d’autres jointures, la création d’index, etc.

# Recommandations pour l’implémentation

**Sécurité**

- Utiliser des connexions chiffrées
- Limiter les permissions de l’utilisateur de base
- Mettre en place une authentification robuste

**Performance**

- Utiliser des pools de connexions
- Mettre en cache les métadonnées fréquemment utilisées
- Définir des timeouts appropriés

**Conventions de code**

- Définir des templates pour garantir la cohérence
- Ou bien prévenir l’agent en amont afin qu’il étudie vos structures actuelles et s’y adapte

# Conclusion

La mise en place d'un serveur MCP pour la communication avec [PostgreSQL ](https://www.sfeir.dev/back/identifiez-et-analysez-les-requetes-sql-problematiques-optimisation-avec-pgbadger-et-depesz/)a véritablement révolutionné mon workflow de développement. Cette approche permet de :

- accélérer significativement le développement de nouvelles fonctionnalités,
- garantir la cohérence du code avec les conventions du projet,
- réduire les erreurs liées à la saisie manuelle,
- faciliter l’exploration et le debugging de la base de données.

L’investissement initial dans la configuration du serveur MCP est rapidement amorti par les gains de productivité quotidiens. Pour des projets avec de nombreuses tables et entités complexes, cette approche devient tout simplement indispensable.

---

# Pour aller plus loin...

Si cela vous inspire et que vous souhaitez créer vos propres MCP, voici un petit template qui pourrait vous aider.

Voici les fichiers :

[indexL'index.js du serveurindex.js2 KBdownload-circle](https://www.sfeir.dev/content/files/2025/09/index.js "Download")

[packagepackage.json578 Bytesdownload-circle](https://www.sfeir.dev/content/files/2025/09/package.json "Download")

Après avoir placé les fichiers (index.js, package.json, etc.) dans un dossier, ouvrez le terminal et lancez un petit **`npm install`** pour télécharger les dépendances nécessaires. Vous pourrez ensuite déclarer ce serveur dans votre **mcp.json** et le démarrer.

![Où placer le code du serveur](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/image-3.png)

Où placer le code du serveur

Vous aurez alors votre serveur MCP opérationnel, prêt à être utilisé en toute tranquillité.

![Exemple d'utilisation du MCP](https://storage.ghost.io/c/0b/31/0b31478e-a66a-46f1-8c34-d44388e21192/content/images/2025/09/image-2.png)

Exemple d'utilisation du MCP