/ Annuaire / Playground / Neon
● Officiel neondatabase 🔑 Nécessite votre clé

Neon

par neondatabase · neondatabase/mcp-server-neon

Neon MCP officiel : branchez votre Postgres sans serveur pour des tests de migration sécurisés, exécutez des requêtes et gérez des projets à partir du chat.

Le MCP officiel de Neon. Le branchement est la vedette : un fork de copie sur écriture d'une seconde de votre base de données qui vous permet de tester des migrations destructrices sur des données réelles sans risque. Plus l'exécution standard du projet/rôle/base de données CRUD et SQL.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

neon.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "neon": {
      "command": "npx",
      "args": [
        "-y",
        "@neondatabase/mcp-server-neon"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "neon": {
      "command": "npx",
      "args": [
        "-y",
        "@neondatabase/mcp-server-neon"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "neon": {
      "command": "npx",
      "args": [
        "-y",
        "@neondatabase/mcp-server-neon"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "neon": {
      "command": "npx",
      "args": [
        "-y",
        "@neondatabase/mcp-server-neon"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "neon",
      "command": "npx",
      "args": [
        "-y",
        "@neondatabase/mcp-server-neon"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "neon": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@neondatabase/mcp-server-neon"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add neon -- npx -y @neondatabase/mcp-server-neon

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : Neon

Tester une migration Postgres destructrice sur une branche de copie sur écriture

👤 Ingénieurs exécutant des modifications de schéma sur une base de données de données réelles ⏱ ~20 min intermediate

Quand l'utiliser : Vous avez une migration (DROP COLUMN, big UPDATE, reconstruction d'index) et vous souhaitez l'exécuter sur des données en forme de prod sans risquer la prod.

Prérequis
  • Clé API Néon — console.neon.tech → Compte → Clés API
Déroulement
  1. Créer une branche à partir du principal
    Dans le projet Neon <id>, créez une branche nommée « test-drop-legacy » à partir de la branche principale. Renvoie la chaîne de connexion pour la nouvelle branche.✓ Copié
    → Branche créée en <2 secondes, chaîne de connexion renvoyée
  2. Appliquer la migration sur la branche
    Connectez-vous à la nouvelle branche et exécutez : <coller la migration SQL>. Signalez le nombre de lignes et les erreurs éventuelles.✓ Copié
    → La migration est terminée ; les comptes ont du sens
  3. Vérifiez, puis nettoyez
    Exécutez des requêtes d’intégrité sur les tables modifiées. Si les résultats semblent corrects, dites-le-moi et je postulerai au principal. Supprimez ensuite la branche dans tous les cas.✓ Copié
    → Vérification + succursale supprimée pour éviter les frais de stockage

Résultat : Soyez assuré que votre migration fonctionne sur des données réelles, sans aucun risque pour la production.

Pièges
  • La branche consomme de l'espace de stockage proportionnel à la quantité que vous écrivez dessus — Supprimez les branches rapidement après les tests : les branches abandonnées avec de nombreuses écritures font grimper la facture
  • La branche est un instantané - ne voit pas les écritures qui se produisent sur la branche principale après la création de la branche — Branche fermée pour postuler; ou utilisez Neon time-travel pour partir d'un horodatage spécifique
Combiner avec : github · postgres

Créez une base de données éphémère par PR pour les tests d'intégration

👤 Équipes exécutant des tests d'intégration CI sur de vrais Postgres ⏱ ~15 min intermediate

Quand l'utiliser : Chaque PR a besoin de sa propre base de données isolée ; Les simulations SQLite ne suffisent pas.

Déroulement
  1. Créer une branche nommée d'après le PR
    Créez une branche Neon dans le projet <id> nommée 'pr-482' à partir de main. Renvoie la chaîne de connexion.✓ Copié
    → Branche prête, chaîne de connexion renvoyée
  2. Exécutez la suite de tests contre lui
    Définissez DATABASE_URL sur cette chaîne de connexion. Exécutez npm run test:integration et rapportez les résultats.✓ Copié
    → Tests exécutés, résumé réussite/échec
  3. Démolir
    Supprimez la branche 'pr-482'.✓ Copié
    → Branche supprimée

Résultat : Tests d'intégration de base de données réelle avec isolation en quelques secondes, sans contamination de l'état partagé.

Pièges
  • Limites de succursales par projet sur les plans inférieurs — Les limites du niveau gratuit sont importantes ; soit mettre à niveau, soit implémenter une balayeuse à N branches maximum
Combiner avec : github

Donnez à Claude un accès sécurisé en lecture seule à une base de données Neon de production

👤 Les ingénieurs déboguent les données de production sans donner au modèle le pouvoir d'écriture ⏱ ~10 min beginner

Quand l'utiliser : Vous souhaitez enquêter sur un problème de production, mais vous êtes nerveux à propos d'une MISE À JOUR ratée.

Déroulement
  1. Créer un rôle en lecture seule
    Dans le projet Neon <id>, créez un rôle 'claude_readonly' avec un accès SELECT uniquement sur le schéma public. Renvoie sa chaîne de connexion.✓ Copié
    → Rôle créé ; chaîne de connexion renvoyée
  2. Connectez-vous via Postgres MCP
    Utilisez cette chaîne de connexion avec le MCP Postgres. Confirmez que je peux exécuter SELECT mais pas INSERT.✓ Copié
    → SELECT fonctionne, INSÉRER les erreurs avec « autorisation refusée »
  3. Enquêter sur le problème
    Maintenant, interrogez la table des commandes pour l'ID utilisateur concerné 99214. Quel est l'état de la ligne et y a-t-il quelque chose d'inhabituel ?✓ Copié
    → Diagnostic concret à partir de données réelles

Résultat : Une session de débogage de production productive avec une sécurité prouvable en lecture seule.

Pièges
  • Oublier de définir la portée des futures tables : les nouvelles tables ne sont pas couvertes — Utilisez ALTER DEFAULT PRIVILEGES pour vous assurer que les nouvelles tables accordent automatiquement SELECT à claude_readonly
Combiner avec : postgres

Examiner l'évolution du schéma dans les branches avant de fusionner

👤 DBA et ingénieurs de plateforme ⏱ ~25 min advanced

Quand l'utiliser : Plusieurs branches de fonctionnalités ont chacune leurs propres modifications de schéma ; vous voulez voir la différence cumulée.

Déroulement
  1. Répertorier les succursales et leurs états
    Répertoriez toutes les branches Neon pour le projet <id>. Pour chacun, donnez-moi une description en une ligne de la façon dont son schéma diffère de celui principal.✓ Copié
    → Résumé delta du schéma par branche
  2. Comparez deux branches en détail
    Pour la branche « paiements caractéristiques » par rapport à la branche principale : comparez les tables, les colonnes, les index et les contraintes. Formatez en tant que migration SQL.✓ Copié
    → Différence SQL révisable
  3. Identifier les conflits
    Si les paiements de fonctionnalités et l'authentification de fonctionnalités sont fusionnés, leurs modifications de schéma sont-elles en conflit ? Où?✓ Copié
    → Liste de conflits spécifique, pas « aucun problème évident »

Résultat : Ordre de fusion et conflits connus avant qu'ils n'atteignent le principal.

Pièges
  • Diff manque les modifications dans les vues matérialisées ou les processus stockés — Soyez explicite — demandez à Claude de comparer également pg_proc et d'afficher les définitions, pas seulement les tableaux
Combiner avec : github

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

neon + github

Base de données éphémère par PR pour les tests CI, avec des commentaires PR affichant les informations de connexion

Lorsque le PR #482 s'ouvre, créez une branche Neon 'pr-482', exécutez des migrations + des graines sur celle-ci, publiez la chaîne de connexion en tant que commentaire privé sur le PR.✓ Copié
neon + postgres

Utilisez Postgres MCP pour des requêtes en lecture seule plus sûres une fois que Neon lance la branche

Créez une branche Neon avec le rôle en lecture seule 'claude_ro'. Utilisez ensuite Postgres MCP avec cette chaîne de connexion pour enquêter sur le problème user-99214.✓ Copié
neon + filesystem

Appliquer les fichiers de migration SQL locaux à une branche Neon afin

Lisez chaque fichier .sql sous /db/migrations/ dans l'ordre des noms. Appliquez-les dans l'ordre à la « mise en scène » de la branche Neon.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_projects none Voir vos projets Néon free
describe_project project_id Obtenir un aperçu d'un projet free
create_branch project_id, name?, parent_id?, parent_lsn? or parent_timestamp? Créez une branche pour les tests ou les bases de données par PR branch storage billed by writes
list_branches project_id Branches d'inventaire free
delete_branch project_id, branch_id Nettoyer après les tests : important pour contrôler les coûts de stockage free
get_connection_string project_id, branch_id?, role_name?, database_name? Obtenez une chaîne de connexion limitée à une branche/un rôle/une base de données free
run_sql project_id, branch_id?, sql: str Exécuter SQL sur n'importe quelle branche compute time billed
describe_table_schema project_id, branch_id?, table_name Inspecter une table sans écrire le SQL vous-même free
create_role / drop_role project_id, role_name Gérer les rôles pour un accès limité free
create_database / list_databases project_id, name Configurations multi-DB par projet free

Coût et limites

Coût d'exécution

Quota d'API
Limites standard de l'API Neon par plan
Tokens par appel
La plupart des opérations sont petites ; Les résultats SQL évoluent en fonction du nombre de lignes – LIMITEZ toujours les requêtes exploratoires
Monétaire
MCP gratuit ; Le niveau Neon Free couvre les petits projets, les forfaits payants facturent les heures de calcul et le stockage
Astuce
Les branches sont presque libres jusqu'à ce qu'elles accumulent des écritures. La surprise n°1 en termes de coûts concerne les branches oubliées : définissez une politique de balayage ou supprimez toujours après utilisation.

Sécurité

Permissions, secrets, portée

Portées minimales : scope API key to a single project when possible
Stockage des identifiants : Clé API dans la variable d'environnement NEON_API_KEY
Sortie de données : Appels à l'API console.neon.tech ; Trafic SQL vers le point de terminaison régional de votre projet
Ne jamais accorder : org-wide admin keys to long-running agents

Dépannage

Erreurs courantes et correctifs

401 Unauthorized

Clé API invalide ou révoquée. Générez du nouveau sur console.neon.tech → Compte → Clés API.

Vérifier : curl -H 'Authorization: Bearer $NEON_API_KEY' https://console.neon.tech/api/v2/projects
Branch creation fails: 'limit reached'

Vous avez atteint la limite de succursales de votre forfait. Supprimez les branches inutilisées ou effectuez une mise à niveau.

run_sql times out on a long migration

Les instructions de longue durée peuvent dépasser le délai d'expiration par défaut. Utilisez psql avec la chaîne de connexion pour les opérations très longues, ou divisez la migration.

Connection string works once then fails (compute paused)

Le calcul de niveau gratuit Neon est automatiquement suspendu. La première connexion le réveille (démarrage à froid ~ 1 s) ; les connexions ultérieures sont correctes. Ne considérez pas la latence du premier appel comme un échec.

Alternatives

Neon vs autres

AlternativeQuand l'utiliserCompromis
Supabase MCPVous voulez l'authentification, les fonctions Edge, le stockage en plus de PostgresSurface plus lourde ; branchement limité au plan Pro
Postgres MCPVous n'avez besoin que d'un accès SQL en lecture seule et n'utilisez pas de branchementPas de gestion de branche/projet
AWS RDS via aws MCPVous utilisez Postgres géré par AWS (RDS/Aurora)Pas de branchement ; le provisionnement est plus lourd et plus lent

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills