postgresql-mcp-server
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

PostgreSQL MCP Server

Un serveur Model Context Protocol (MCP) permettant aux LLMs d'interagir avec des bases de données PostgreSQL. Ce serveur peut être utilisé avec Claude ou d'autres LLMs compatibles avec MCP pour inspecter des schémas de base de données et exécuter des requêtes SQL.

Fonctionnalités

  • Connexion aux bases de données PostgreSQL
  • Inspection du schéma de la base de données (tables, colonnes, contraintes, etc.)
  • Exécution de requêtes SQL (SELECT, INSERT, UPDATE, DELETE)
  • Opérations DDL (CREATE TABLE, ALTER TABLE)
  • Validation et sécurisation des requêtes SQL
  • Intégration avec n8n en environnement Docker

Prérequis

  • Node.js 16+
  • PostgreSQL
  • Pour l'intégration avec Docker: Docker et Docker Compose

Installation

Installation depuis npm

npm install -g postgresql-mcp

Installation à partir des sources

git clone https://github.com/votrecompte/postgresql-mcp.git
cd postgresql-mcp
npm install
npm run build

Configuration

Le serveur PostgreSQL MCP ne nécessite pas de fichier de configuration. Les informations de connexion à la base de données sont fournies via l'outil connect_database au moment de l'exécution.

Utilisation

Démarrage du serveur

postgresql-mcp

Le serveur MCP communique via stdin/stdout, ce qui le rend compatible avec les applications qui prennent en charge le protocole MCP.

Intégration avec Claude

Pour utiliser ce serveur MCP avec Claude, vous devez l'ajouter aux paramètres MCP de votre application Claude. Par exemple, pour Claude Desktop:

{
  "mcpServers": {
    "postgresql": {
      "command": "postgresql-mcp",
      "env": {},
      "disabled": false
    }
  }
}

Outils disponibles

Le serveur MCP PostgreSQL fournit les outils suivants:

  • connect_database: Se connecter à une base de données PostgreSQL
  • disconnect_database: Se déconnecter de la base de données
  • execute_query: Exécuter une requête SQL arbitraire
  • get_schema: Récupérer le schéma complet de la base de données
  • create_table: Créer une nouvelle table
  • alter_table: Modifier une table existante
  • insert_data: Insérer des données dans une table
  • update_data: Mettre à jour des données dans une table
  • delete_data: Supprimer des données d'une table

Ressources disponibles

Le serveur expose également des ressources pour explorer la base de données:

  • postgresql://schema: Schéma complet de la base de données
  • postgresql://{schema}/{table}: Données d'une table spécifique (limité à 100 lignes)
  • postgresql://{schema}/{table}/columns: Colonnes d'une table spécifique
  • postgresql://{schema}/{table}/constraints: Contraintes d'une table spécifique
  • postgresql://{schema}/{table}/foreign-keys: Clés étrangères d'une table spécifique

Utilisation avec Docker et n8n

Construction de l'image Docker

docker build -t postgresql-mcp -f docker/Dockerfile .

Démarrage avec Docker Compose

cd docker
docker-compose up -d

Cela va démarrer:

  1. Un serveur PostgreSQL pour les tests
  2. Le serveur MCP PostgreSQL

Configuration de n8n

Pour utiliser ce serveur MCP dans n8n dockerisé:

  1. Ajoutez le service postgresql-mcp au fichier docker-compose.yml de n8n
  2. Configurez n8n pour utiliser le serveur MCP en définissant les variables d'environnement appropriées

Exemple d'ajout au docker-compose.yml de n8n:

services:
  # Autres services n8n...
  
  postgresql-mcp:
    image: votre-image/postgresql-mcp:latest
    stdin_open: true
    tty: true

Exemple d'utilisation

Voici un exemple d'utilisation du serveur MCP PostgreSQL avec Claude:

Claude: Comment puis-je me connecter à une base de données PostgreSQL?

Vous: Vous pouvez utiliser l'outil connect_database pour vous connecter à votre base de données PostgreSQL.

Claude: Je vais vous aider à vous connecter à une base de données PostgreSQL.

<use_mcp_tool>
<server_name>postgresql</server_name>
<tool_name>connect_database</tool_name>
<arguments>
{
  "host": "localhost",
  "port": 5432,
  "database": "mabase",
  "user": "utilisateur",
  "password": "motdepasse",
  "ssl": false
}
</arguments>
</use_mcp_tool>

Sécurité

Le serveur PostgreSQL MCP inclut plusieurs fonctionnalités de sécurité:

  • Validation des requêtes SQL pour éviter les injections
  • Possibilité de limiter les types d'opérations SQL autorisées
  • Restriction des tables accessibles
  • Prévention des opérations dangereuses comme DROP DATABASE

Contribution

Les contributions sont les bienvenues! N'hésitez pas à ouvrir une issue ou une pull request.

Licence

MIT

/postgresql-mcp-server/

    Package Sidebar

    Install

    npm i postgresql-mcp-server

    Weekly Downloads

    6

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    137 kB

    Total Files

    23

    Last publish

    Collaborators

    • pixeeplay