TP Chapitre 4 — Serveur MCP custom & agent contrôlé
Ce dossier contient tous les fichiers nécessaires au TP : serveur MCP custom, base SQLite fictive, outils SQL read-only, agent Gemini et orchestration multi-agents.
1. Créer et ouvrir le projet
mkdir paycore-mcp-agent
cd paycore-mcp-agent
code .
Copiez les fichiers de cette archive dans le dossier paycore-mcp-agent.
2. Créer l'environnement Python
PowerShell :
py -m venv .venv
.\.venv\Scripts\Activate.ps1
Si PowerShell bloque :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1
Bash Windows / Git Bash :
python -m venv .venv
source .venv/Scripts/activate
macOS / Linux / WSL :
python3 -m venv .venv
source .venv/bin/activate
3. Installer les dépendances
pip install -r requirements.txt
4. Configurer Gemini
PowerShell :
$env:GEMINI_API_KEY="VOTRE_CLE_API"
Bash :
export GEMINI_API_KEY="VOTRE_CLE_API"
Tester :
python -c "import os; print('OK' if os.getenv('GEMINI_API_KEY') else 'CLE MANQUANTE')"
5. Créer et tester la base
python setup_db.py
Vérifier qu'il y a 4 lignes :
python -c "import sqlite3; conn=sqlite3.connect('paycore_demo.db'); print(conn.execute('SELECT COUNT(*) FROM incidents').fetchone()); conn.close()"
Résultat attendu :
(4,)
6. Tester les outils SQL
python test_db_tools.py
Résultat attendu :
- le schéma s'affiche ;
- la requête SELECT fonctionne ;
- la requête DELETE est bloquée.
7. Tester le serveur MCP manuellement
python mcp_server.py
Le terminal reste actif. Arrêtez avec :
Ctrl + C
8. Configurer MCP dans VS Code
Le fichier .vscode/mcp.json fourni est configuré pour Windows :
{
"servers": {
"paycoreDb": {
"type": "stdio",
"command": "${workspaceFolder}\\.venv\\Scripts\\python.exe",
"args": ["mcp_server.py"],
"cwd": "${workspaceFolder}"
}
}
}
Pour macOS / Linux / WSL, remplacez son contenu par celui de .vscode/mcp.unix.json.
9. Démarrer MCP dans VS Code
Dans VS Code :
Ctrl + Shift + P
MCP: List Servers
paycoreDb
Start Server
Tester la resource :
Ctrl + Shift + P
MCP: Browse Resources
paycoreDb
paycore://schema
10. Prompt de test dans le chat VS Code compatible MCP
Utilise le serveur MCP paycoreDb.
Commence par consulter la resource paycore://schema.
Puis utilise l’outil query_incidents pour répondre à la question suivante :
Quels incidents de double débit sont encore ouverts ou en investigation ?
Contraintes :
- utilise uniquement une requête SELECT ;
- interroge uniquement la table incidents ;
- cite la requête SQL utilisée ;
- cite les données utilisées ;
- indique les limites ;
- ne propose aucune action client automatique.
Résultat attendu : deux incidents double_debit :
mobile_app,open,120.50;ecommerce,investigating,89.90.
11. Tester l'agent Gemini
python agent_demo.py
12. Tester l'orchestration multi-agents
python multi_agent_demo.py
13. Dépannage rapide
- Serveur MCP absent : vérifier
.vscode/mcp.json. - Erreur
No module named mcp: relancerpip install -r requirements.txtet vérifier le chemin Python de.venv. - Base absente : relancer
python setup_db.py. - Tool absent :
MCP: Reset Cached Toolspuis redémarrer le serveur. - Logs :
MCP: List ServerspuisShow Output.
14. Ce que l'apprenant doit savoir dire
J'ai développé un serveur MCP custom connecté à une base SQLite. Je l'ai déclaré dans VS Code, puis j'ai utilisé une resource et un tool MCP. J'ai ensuite simulé un agent contrôlé capable de transformer une question en requête SQL, d'exécuter l'outil autorisé, d'observer le résultat et de répondre avec limites.