Construisez votre propre serveur MCP SQLite

Construisez votre propre serveur MCP SQLite avec n8n

Pour qui est-ce fait ?
Ce workflow s’adresse aux développeurs, analystes BI, data engineers ou architectes no-code souhaitant créer une interface sécurisée entre un agent IA (via MCP) et une base de données SQLite. Il est idéal pour celles et ceux qui veulent tester des capacités d’agent conversationnel orientées données, tout en gardant le contrôle total sur les opérations SQL exécutées.

Problème résolu / Cas d’usage
Exposer une base SQLite à une IA via SQL brut peut poser des problèmes de sécurité ou d’intégrité des données. Ce workflow offre une alternative sécurisée et structurée : chaque requête (lecture, insertion, mise à jour) passe par des chemins balisés. L’agent IA interagit via des workflows paramétrés, limitant ainsi les risques et assurant une meilleure traçabilité des requêtes exécutées.

Ce que fait ce workflow

  • Met en place un serveur MCP SQLite auto-hébergé basé sur l’implémentation officielle du Model Context Protocol.

  • Utilise un déclencheur MCP pour capter les requêtes d’un agent IA (Claude, ChatGPT, etc.).

  • Dirige chaque requête via un nœud “Execute workflow” selon son type (select, insert, update).

  • Gère la logique SQL dans :

    • 2 nœuds de code (requêtes simples en lecture seule).

    • 3 workflows personnalisés pour les requêtes complexes, avec paramètres contrôlés.

  • Utilise la bibliothèque sqlite3 dans les nœuds de code pour exécuter localement les requêtes sur votre base SQLite.

Configuration

1. Préparer la base SQLite

  • Créez ou récupérez une base .sqlite prête à l’emploi avec vos tables (ex. : insights, utilisateurs, logs).

2. Mettre en place le serveur MCP dans n8n

  • Téléchargez l’exemple de serveur MCP SQLite :
    👉 GitHub – Model Context Protocol SQLite Server

  • Créez un workflow principal avec un déclencheur MCP.

  • Ajoutez un nœud Switch pour détecter le type d’opération demandée : select, insert, update.

3. Ajouter les outils de traitement SQL

  • Nœuds de code : pour exécuter les requêtes de lecture simples (read-only).

  • Workflows personnalisés :

    • SelectHandler : pour récupérer des insights ou des données filtrées.

    • InsertHandler : pour enregistrer de nouveaux insights.

    • UpdateHandler : pour modifier un enregistrement existant selon des paramètres précis.

  • Ces workflows reçoivent uniquement des paramètres validés et construisent les requêtes SQL à la main (pas de SQL généré librement par l’IA).

4. Intégration avec un client MCP

Personnalisation possible

  • Limiter les types de requêtes disponibles selon l’utilisateur (ex. : lecture seule pour certains).

  • Restreindre les colonnes accessibles ou créer un alias de table avec vue réduite.

  • Ajouter une couche d’authentification et journaliser toutes les requêtes pour audit.

  • Activer le chiffrement et la validation stricte des entrées côté nœud de code.

Exemple d’utilisation
Entrée utilisateur (via agent IA connecté au serveur MCP) :

« Qui a ajouté le plus d’insights business cette semaine ? »

Traitement :

  • L’agent IA formule une requête select avec filtres de date.

  • Le workflow SelectHandler exécute la requête :
    SELECT utilisateur, COUNT(*) FROM insights WHERE date > '2024-05-27' GROUP BY utilisateur ORDER BY COUNT(*) DESC

Sortie IA :

« Cette semaine, l’utilisateur Jules L. a ajouté 18 insights business. »