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 : relancer pip install -r requirements.txt et vérifier le chemin Python de .venv.
  • Base absente : relancer python setup_db.py.
  • Tool absent : MCP: Reset Cached Tools puis redémarrer le serveur.
  • Logs : MCP: List Servers puis Show 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.

MCP Server · Populars

MCP Server · New

    abskrj

    velane

    Code Runtime and iPaaS for AI Agent — execute Bun/Python snippets at scale via POST API + integrate with 800+ tools (N8N for AI Agents)

    Community abskrj
    jean-technologies

    Jean Memory

    next-generation AI memory infrastructure (powered by mem0 and graphiti)

    Community jean-technologies
    PascaleBeier

    HitKeep

    HitKeep is privacy-first analytics for humans and AI agents, self-hosted or in managed EU/US cloud regions.

    Community PascaleBeier
    prometheus

    Prometheus MCP Server

    MCP server for LLMs to interact with Prometheus

    Community prometheus
    TencentEdgeOne

    EdgeOne Makers MCP

    An MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.

    Community TencentEdgeOne