Neon

offiziell

Interagiere mit der serverlosen Postgres-Plattform Neon

Was kann man mit Neon MCP machen?

  • Projekte erstellen und verwalten — Fordern Sie die Erstellung einer neuen Postgres-Datenbank an, listen Sie bestehende Projekte auf oder löschen Sie eines über create_project oder list_projects.
  • SQL-Abfragen und Transaktionen ausführen — Führen Sie einzelne oder mehrteilige SQL-Anweisungen gegen eine Datenbank aus, einschließlich Schreibvorgängen, mit run_sql oder run_sql_transaction.
  • Leistung prüfen und optimieren — Identifizieren Sie langsame Abfragen, erhalten Sie Ausführungspläne oder führen Sie Diagnosen wie Cache-Trefferquoten über list_slow_queries, explain_sql_statement oder inspect_database durch.
  • Schemata sicher migrieren — Starten Sie eine Migration auf einem temporären Branch, testen Sie sie und committen Sie sie dann mit prepare_database_migration und complete_database_migration auf den Haupt-Branch.
  • Datenbankstruktur erkunden — Listen Sie Tabellen auf, beschreiben Sie Spaltenschemata oder vergleichen Sie Schemata über Branches hinweg mit get_database_tables, describe_table_schema oder compare_database_schema.

Gehosteter MCP-Server

npx add-mcp 'https://mcp.neon.tech/mcp'

Installiert in Claude Code, Codex, Cursor und mehr

Dokumentation

Neon Logo fallback

Neon MCP Server

Install MCP Server in Cursor Add to Kiro

Neon MCP Server ist ein Open-Source-Tool, mit dem Sie über natürliche Sprache mit Ihren Lakebase-Postgres-Datenbanken auf Neon interagieren können.

License: MIT

Das Model Context Protocol (MCP) ist ein standardisiertes Protokoll, das entwickelt wurde, um den Kontext zwischen großen Sprachmodellen (LLMs) und externen Systemen zu verwalten. Dieses Repository stellt einen Remote-MCP-Server für Neon bereit.

Der MCP-Server von Neon fungiert als Brücke zwischen Anfragen in natürlicher Sprache und der Neon-API. Aufbauend auf MCP übersetzt er Ihre Anfragen in die erforderlichen API-Aufrufe und ermöglicht es Ihnen, Aufgaben wie das Erstellen von Projekten und Branches, das Ausführen von Abfragen und das Durchführen von Datenbankmigrationen nahtlos zu verwalten.

Zu den wichtigsten Funktionen des Neon-MCP-Servers gehören:

  • Interaktion in natürlicher Sprache: Verwalten Sie Neon-Datenbanken mit intuitiven, gesprächsorientierten Befehlen.
  • Vereinfachte Datenbankverwaltung: Führen Sie komplexe Aktionen aus, ohne SQL zu schreiben oder die Neon-API direkt zu verwenden.
  • Zugänglichkeit für Nicht-Entwickler: Ermöglichen Sie Benutzern mit unterschiedlichem technischem Hintergrund die Interaktion mit Neon-Datenbanken.
  • Unterstützung für Datenbankmigrationen: Nutzen Sie die Branching-Funktionen von Neon für Datenbankschemaänderungen, die über natürliche Sprache initiiert werden.

In Claude Code oder einem anderen MCP-Client können Sie beispielsweise natürliche Sprache verwenden, um Aufgaben mit Neon zu erledigen, wie etwa:

  • Let's create a new Postgres database, and call it "my-database". Let's then create a table called users with the following columns: id, name, email, and password.
  • I want to run a migration on my project called "my-project" that alters the users table to add a new column called "created_at".
  • Can you give me a summary of all of my Neon projects and what data is in each one?

[!WARNING]
Sicherheitshinweise zum Neon MCP Server
Der Neon MCP Server gewährt über Anfragen in natürlicher Sprache umfangreiche Datenbankverwaltungsfunktionen. Überprüfen und autorisieren Sie Aktionen, die vom LLM angefordert werden, immer vor der Ausführung. Stellen Sie sicher, dass nur autorisierte Benutzer und Anwendungen Zugriff auf den Neon MCP Server haben.

Der Neon MCP Server ist nur für die lokale Entwicklung und IDE-Integrationen gedacht. Wir empfehlen nicht, den Neon MCP Server in Produktionsumgebungen zu verwenden. Er kann leistungsstarke Operationen ausführen, die zu versehentlichen oder unbefugten Änderungen führen können.

Weitere Informationen finden Sie unter MCP-Sicherheitsrichtlinien →.

Einrichten des Neon MCP Servers

Es gibt mehrere Optionen zum Einrichten des Neon MCP Servers:

  1. Schnelleinrichtung mit API-Schlüssel (Cursor, VS Code und Claude Code): Führen Sie neon@latest init aus, um den MCP-Server von Neon, Agent Skills und die VS-Code-Erweiterung automatisch mit einem Befehl zu konfigurieren.
  2. Remote-MCP-Server (OAuth-basierte Authentifizierung): Verbinden Sie sich mit dem verwalteten MCP-Server von Neon mithilfe von OAuth zur Authentifizierung. Diese Methode ist bequemer, da sie die Verwaltung von API-Schlüsseln überflüssig macht. Außerdem erhalten Sie automatisch die neuesten Funktionen und Verbesserungen, sobald sie veröffentlicht werden.
  3. Remote-MCP-Server (API-Schlüssel-basierte Authentifizierung): Verbinden Sie sich mit dem verwalteten MCP-Server von Neon mithilfe eines API-Schlüssels zur Authentifizierung. Diese Methode ist nützlich, wenn Sie einen Remote-Agenten mit Neon verbinden möchten, wo OAuth nicht verfügbar ist. Außerdem erhalten Sie automatisch die neuesten Funktionen und Verbesserungen, sobald sie veröffentlicht werden.

Voraussetzungen

  • Eine MCP-Client-Anwendung.
  • Ein Neon-Konto.
  • Node.js (>= v18.0.0): Herunterladen von nodejs.org.
  • Wenn IP Allow aktiviert ist, fügen Sie 34.192.103.46 und 23.22.233.166 zu Ihrer Zulassungsliste hinzu (mcp.neon.tech statische IPs).

Für die Entwicklung benötigen Sie Node.js 22+ (pnpm wird über Corepack bereitgestellt – führen Sie corepack enable aus, um es zu aktivieren).

Option 1. Schnelleinrichtung mit API-Schlüssel

Möchten Sie keinen API-Schlüssel manuell erstellen?

Führen Sie neon@latest init aus, um den MCP-Server von Neon automatisch mit einem Befehl zu konfigurieren:

npx neon@latest init

Dies funktioniert mit Cursor, VS Code (GitHub Copilot) und Claude Code. Es authentifiziert sich über OAuth, erstellt einen Neon-API-Schlüssel für Sie und konfiguriert Ihren Editor automatisch.

Option 2. Remote gehosteter MCP-Server (OAuth-basierte Authentifizierung)

Verbinden Sie sich mit dem verwalteten MCP-Server von Neon mithilfe von OAuth zur Authentifizierung. Dies ist die einfachste Einrichtung, erfordert keine lokale Installation dieses Servers und benötigt keinen Neon-API-Schlüssel, der im Client konfiguriert ist.

Führen Sie den folgenden Befehl aus, um den Neon MCP Server für alle erkannten Agenten und Editoren in Ihrem Arbeitsbereich hinzuzufügen:

npx add-mcp "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema"

Diese URL veröffentlicht Projekte, Branches, Compute-Endpunkte, Abfragen und Schema. Zeigen Sie eine Vorschau mit /api/list-tools?category=projects&category=branches&category=endpoints&category=querying&category=schema an. Die ungefilterte URL veröffentlicht jede Kategorie:

npx add-mcp https://mcp.neon.tech/mcp

Fügen Sie das Flag -g hinzu, um den Neon MCP Server zur globalen MCP-Serverliste hinzuzufügen, anstatt projektbezogen.

Alternativ können Sie den folgenden Eintrag „Neon" zur MCP-Serverkonfigurationsdatei Ihres Clients hinzufügen (z. B. mcp.json, mcp_config.json):

{
  "mcpServers": {
    "Neon": {
      "type": "http",
      "url": "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema"
    }
  }
}

Kiro: Fügen Sie Folgendes zu Ihrer Kiro-MCP-Konfigurationsdatei hinzu (~/.kiro/settings/mcp.json für global oder .kiro/settings/mcp.json für projektbezogen):

{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema"
    }
  }
}

Oder verwenden Sie die Installationsschaltfläche mit einem Klick oben in dieser README-Datei. Weitere Informationen finden Sie in der Kiro-MCP-Dokumentation.

  • Starten Sie Ihren MCP-Client neu oder aktualisieren Sie ihn.
  • Ein OAuth-Fenster wird in Ihrem Browser geöffnet. Folgen Sie den Eingabeaufforderungen, um Ihren MCP-Client zu autorisieren, auf Ihr Neon-Konto zuzugreifen.

Bei OAuth-basierter Authentifizierung arbeitet der MCP-Server standardmäßig mit Projekten unter Ihrem persönlichen Neon-Konto. Um auf Projekte zuzugreifen oder diese zu verwalten, die zu einer Organisation gehören, müssen Sie entweder org_id oder project_id explizit in Ihrer Eingabeaufforderung an den MCP-Client angeben.

Option 3. Remote gehosteter MCP-Server (API-Schlüssel-basierte Authentifizierung)

Der Remote-MCP-Server unterstützt auch die Authentifizierung mit einem API-Schlüssel im Authorization-Header, wenn Ihr Client dies unterstützt.

Erstellen Sie einen Neon-API-Schlüssel in der Neon-Konsole. Führen Sie dann den folgenden Befehl aus, um den Neon MCP Server für alle erkannten Agenten und Editoren in Ihrem Arbeitsbereich hinzuzufügen:

npx add-mcp "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema" --header "Authorization: Bearer <$NEON_API_KEY>"

Alternativ können Sie den folgenden Eintrag „Neon" zur MCP-Serverkonfigurationsdatei Ihres Clients hinzufügen (z. B. mcp.json, mcp_config.json):

{
  "mcpServers": {
    "Neon": {
      "type": "http",
      "url": "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema",
      "headers": {
        "Authorization": "Bearer <$NEON_API_KEY>"
      }
    }
  }
}

Geben Sie den API-Schlüssel einer Organisation an, um den Zugriff nur auf Projekte unter der Organisation zu beschränken.

Bereiche und Nur-Lese-Modus

Neon MCP bewirbt die OAuth-Bereiche read und write. Ihr MCP-Client kann diese anfordern, oder Sie können die Auswahl in der OAuth-Berechtigungs-UI treffen. * wird als Schreibzugriff behandelt, wenn ein Client es weiterhin sendet.

Der Nur-Lese-Modus schränkt ein, welche Tools verfügbar sind, und deaktiviert Schreiboperationen wie das Erstellen von Projekten, Branches oder das Ausführen von Migrationen. Zu den Nur-Lese-Tools gehören das Auflisten von Projekten, das Beschreiben von Schemas, das Abfragen von Daten und das Anzeigen von Leistungsmetriken.

Sie können den Nur-Lese-Modus auf zwei Arten festlegen:

  1. Standard-MCP-URL (bearbeitbare Zustimmung): Verbinden Sie sich mit https://mcp.neon.tech/mcp und deaktivieren Sie Schreibzugriff erlauben auf der Autorisierungsseite. Sie können dort auch ein Projekt und eine Teilmenge von Tool-Kategorien auswählen.
  2. Parametrisierte MCP-URL (feste Zustimmung): Fügen Sie readonly, projectId und/oder category zur MCP-Server-URL hinzu. Die Autorisierungsseite bestätigt diese Gewährung und bietet keine Editoren an. Ändern Sie die URL und autorisieren Sie erneut, um die Gewährung zu ändern.
{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?readonly=true"
    }
  }
}

So verhält sich der Abfrageparameter:

  • API-Schlüssel-Flow: readonly=true ist der Weg, um den Nur-Lese-Modus zu aktivieren (in diesem Flow gibt es keinen OAuth-Bereichsaustausch). URL-Änderungen gelten für die nächste Anfrage.
  • OAuth-Flow: projectId, category und readonly auf der MCP-URL sind eine feste Gewährung, die bei der Autorisierung bestätigt wird. readonly=true kann auf dieser Seite nicht auf Schreibzugriff erweitert werden. Nachdem ein Token ausgestellt wurde, erweitert eine Änderung der URL dieses Token nicht; autorisieren Sie erneut.

Für die OAuth-Registrierung ist x-read-only ein anfänglicher Standardwert „Schreibzugriff erlauben" bei bearbeitbarer Zustimmung. Es sperrt die Bestätigung nicht und reduziert keine parametrisierte URL, die readonly=false enthält. API-Schlüssel-Anfragen berücksichtigen weiterhin x-read-only pro Anfrage, unterhalb des readonly-Abfrageparameters.

Hinweis: Der Nur-Lese-Modus schränkt ein, welche Tools verfügbar sind. Darüber hinaus bleibt das run_sql-Tool nur für Nur-Lese-Abfragen verfügbar.

URL-Abfrageparameter für die Zugriffskontrolle

Der Gewährungskontext (Bereichskategorien, Projekteingrenzung, Nur-Lese-Modus) wird über URL-Abfrageparameter auf der MCP-Server-URL konfiguriert. API-Schlüssel-Anfragen wenden diese Parameter auf jede Anfrage an. OAuth-Tokens speichern die bei der Autorisierung bestätigte oder bearbeitete Gewährung.

ParameterBeschreibungBeispiel
readonlyNur-Lese-Modus aktivieren (true/false)?readonly=true
categoryAuf bestimmte Tool-Kategorien beschränken (wiederholt oder CSV)?category=querying&category=schema
projectIdAlle Operationen auf ein einzelnes Projekt beschränken?projectId=proj-123

Beispiel für Nur-Lese + projektspezifisch:

{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?readonly=true&projectId=my-project-id"
    }
  }
}

Beispiel für Kategorienfilter (nur Abfrage- und Schema-Tools):

{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?category=querying&category=schema"
    }
  }
}

Sie können mit dem /api/list-tools-Endpunkt (keine Authentifizierung erforderlich) eine Vorschau anzeigen, welche Tools für jede Konfiguration sichtbar sind:

curl "https://mcp.neon.tech/api/list-tools?readonly=true&category=querying"
Im Nur-Lese-Modus verfügbare Tools

Host-Tools: list_organizations, describe_branch, run_sql, run_sql_transaction, get_database_tables, describe_table_schema, list_slow_queries, explain_sql_statement, inspect_database, get_neon_auth_config, search, fetch, list_docs_resources, get_doc_resource.

Generierte Management-API-Tools, die GET sind und keine Geheimnisse zurückgeben, plus query_logs (POST, Nur-Lese). Zeigen Sie die genaue Menge mit /api/list-tools?readonly=true in der Vorschau an.

Tools, die Schreibzugriff erfordern:

  • Generierte Management-API-Schreibvorgänge (create_project, create_branch, delete_project, …)
  • get_connection_string (die Verbindungszeichenfolge enthält ein privilegiertes Rollenpasswort, daher wird sie im Nur-Lese-Modus zurückgehalten; kopieren Sie sie stattdessen aus der Neon-Konsole)
  • prepare_database_migration, complete_database_migration
  • prepare_query_tuning, complete_query_tuning

Server-Sent Events (SSE)-Transport (veraltet)

MCP unterstützt zwei Remote-Server-Transports: den veralteten Server-Sent Events (SSE) und das neuere, empfohlene Streamable HTTP. Wenn Ihr LLM-Client Streamable HTTP noch nicht unterstützt, können Sie den Endpunkt von https://mcp.neon.tech/mcp auf https://mcp.neon.tech/sse umstellen, um stattdessen SSE zu verwenden.

Führen Sie den folgenden Befehl aus, um den Neon MCP Server für alle erkannten Agenten und Editoren in Ihrem Arbeitsbereich mithilfe des SSE-Transports hinzuzufügen:

npx add-mcp https://mcp.neon.tech/sse --type sse

Remote-Server-Architektur

Der Remote-Server läuft als Next.js-App-Router-Anwendung auf Vercel unter mcp.neon.tech.

[!NOTE] Der Root-Pfad / leitet zu den Neon-MCP-Server-Dokumenten weiter. Es gibt keine Landingpage.

Kernimplementierungsbereiche:

  • app/api/[transport]/route.ts: MCP-Transport-Endpunkt für Streamable HTTP (/mcp) und SSE (/sse)
  • app/api/authorize/, app/callback/, app/api/token/, app/api/revoke/: OAuth-Flow-Endpunkte
  • app/.well-known/: OAuth-Discovery-Metadaten-Endpunkte
  • mcp/: MCP-Server, Tools, Handler, Analysen und Sentry-Integration
  • lib/: Next.js-kompatible Helfer (OAuth, Konfiguration, Fehlerbehandlung)
  • mcp/utils/read-only.ts: Nur-Lese-Modus und Bereichsverwaltung

Anleitungen

Funktionen

Unterstützte Tools

Der Neon MCP Server stellt die folgenden Aktionen bereit, die als „Tools“ für MCP-Clients verfügbar sind. Sie können diese Tools verwenden, um mit Ihren Neon-Projekten und -Datenbanken über natürliche Sprachbefehle zu interagieren.

Tool-Scope-Metadaten

Jede Tool-Definition enthält eine scope-Kategorie, die für die grant-basierte Tool-Filterung und die Zustimmungs-UX verwendet wird. Aktuelle Kategorien sind:

  • projects
  • branches
  • endpoints
  • snapshots
  • schema
  • querying
  • neon_auth
  • data_api
  • observability
  • docs
  • functions
  • storage
  • null (Tools ohne Scope-Kategorie)

Hinweise:

  • Management-API-Tools stammen aus @neon/tools. Selektoren sind SDK-Pfade (projects.list); veröffentlichte MCP-Namen sind verb-first (list_projects, delete_project, query_logs). Historische Namen bleiben dort bestehen, wo sie bereits existierten (describe_project, create_branch, reset_from_parent, compare_database_schema, provision_neon_auth, provision_neon_data_api, list_branch_computes).
  • ?category=branches umfasst Branch-, Rollen- und Datenbank-Tools (list_postgres_roles, create_postgres_database, …). Ein bereits für branches ausgestelltes Token erhält diese Schreibzugriffe. Die Compute-Auflistung ist ?category=endpoints. Die Snapshot-Wiederherstellung ist ?category=snapshots.
  • Projektmitglieder- und Berechtigungsschreibvorgänge werden nicht veröffentlicht. list_project_members und list_project_permissions sind Lesezugriffe.
  • Schema-Tools (?category=schema) sind die Host-Tools get_database_tables und describe_table_schema sowie generierte compare_database_schema.
  • Die Nur-Lese-Erzwingung stützt sich weiterhin auf readOnlySafe und die serverseitige Nur-Lese-Logik; scope ist Kategoriemetadaten, kein eigenständiger Lese-/Schreibschalter.
  • Im projektbezogenen Modus (?projectId=...) werden Tools ohne Projektpfad (list_projects, create_project, list_organizations, list_regions, search, fetch, …) ausgeblendet. delete_project wird ebenfalls ausgeblendet.

Projektverwaltung:

  • list_projects: Listet Neon-Projekte auf. limit begrenzt, wie viele Elemente zurückgegeben werden.
  • describe_project: Ruft ein Neon-Projekt anhand der ID ab ({ "project_id": "…" }).
  • create_project: Erstellt ein Neon-Projekt und wartet auf den Standard-Compute. Gibt keine Verbindungszeichenfolge zurück. Argumente sind { "name": "…", "org_id": "…", "region_id": "…" }. Rufen Sie get_connection_string auf, nachdem es erfolgreich war.
  • delete_project: Löscht ein vorhandenes Neon-Projekt. Argumente sind { "project_id": "…" }.
  • list_organizations: Listet alle Organisationen auf, auf die der aktuelle Benutzer Zugriff hat. Optional kann mithilfe des Suchparameters nach Organisationsname oder -ID gefiltert werden.

Branch-Verwaltung:

  • list_branches: Listet Branches in einem Projekt auf. Verwenden Sie es, um einen Branch-Namen in eine br-…-ID aufzulösen.
  • list_credentials, create_credential, revoke_credential, rotate_credential: Branch-bezogene Anmeldeinformationen für Object Storage und das AI Gateway. reveal ist kein Tool; Rotation ersetzt Geheimnisse an Ort und Stelle und ist nicht idempotent.
  • create_branch: Erstellt einen Branch mit einem Lese-/Schreib-Compute und wartet, bis er bereit ist. Gibt keine Verbindungszeichenfolge zurück. Argumente sind { "project_id": "…", "name": "feature-x" }. Übergeben Sie no_compute: true, um den Endpunkt zu überspringen. Rufen Sie get_connection_string auf, nachdem es erfolgreich war.
  • reset_from_parent: Setzt einen Branch auf den aktuellen HEAD des übergeordneten Branches zurück ({ "project_id": "…", "branch_id": "br-…" }). Verwirft Schreibvorgänge seit der Abweichung des Branches. preserve_under_name ist erforderlich, wenn der Branch untergeordnete Branches hat; diese untergeordneten Branches werden auf den neuen Branch verschoben. Nur übergeordneter HEAD; Point-in-Time-Wiederherstellung ist restore_snapshot.
  • delete_branch: Löscht einen Branch ({ "project_id": "…", "branch_id": "br-…" }).
  • describe_branch: Ruft einen Baum aus Datenbanken, Schemas, Tabellen, Ansichten und Funktionen auf einem Branch ab.
  • Generierte Branch-Tools verwenden branch_id als Branch-ID (br-...), nicht als Namen.
  • restore_snapshot: Stellt einen Snapshot wieder her. Übergeben Sie target_branch_id, um auf einem vorhandenen Branch wiederherzustellen; lassen Sie es weg, um einen neuen zu erstellen.

Compute-Endpunkte (?category=endpoints):

  • list_postgres_endpoints, list_branch_computes, get_postgres_endpoint, create_postgres_endpoint, update_postgres_endpoint, delete_postgres_endpoint, start_postgres_endpoint, suspend_postgres_endpoint, restart_postgres_endpoint

Snapshots (?category=snapshots):

  • list_snapshots, get_snapshot_schedule, set_snapshot_schedule, create_snapshot, update_snapshot, delete_snapshot, restore_snapshot

Schema (?category=schema):

  • get_database_tables, describe_table_schema
  • compare_database_schema: SQL-Schema-Diff einer Datenbank gegen einen anderen Branch. database_name ist erforderlich. Wenn base_branch_id weggelassen wird, wird gegen den übergeordneten Branch verglichen. Optionale lsn, timestamp, base_lsn, base_timestamp sind nur für Point-in-Time.

SQL-Abfrageausführung:

  • get_connection_string: Gibt Ihre Datenbank-Verbindungszeichenfolge zurück.
  • run_sql: Führt eine einzelne SQL-Abfrage gegen eine angegebene Neon-Datenbank aus. Unterstützt Lese- und Schreibvorgänge.
  • run_sql_transaction: Führt eine Reihe von SQL-Abfragen innerhalb einer einzelnen Transaktion gegen eine Neon-Datenbank aus.
  • get_database_tables: Listet alle Tabellen innerhalb einer angegebenen Neon-Datenbank auf.
  • describe_table_schema: Ruft die Schema-Definition einer bestimmten Tabelle ab, einschließlich Spalten, Datentypen und Einschränkungen.

Datenbank-Migrationen (Schemaänderungen):

  • prepare_database_migration: Startet einen Datenbank-Migrationsprozess. Wichtig: Es erstellt einen temporären Branch, um die Migration sicher anzuwenden und zu testen, bevor der Haupt-Branch betroffen ist.
  • complete_database_migration: Schließt eine vorbereitete Datenbankmigration ab und wendet sie auf den Haupt-Branch an. Diese Aktion führt Änderungen vom temporären Migrationsbranch zusammen und bereinigt temporäre Ressourcen.

SQL-Abfragen und Optimierung:

  • inspect_database: Führt eine von 15 vordefinierten Nur-Lese-Postgres-Diagnosen gegen einen Branch aus – Beziehungs- und Indexgrößen, Index- und sequentielle Scan-Nutzung, aktive Abfragen und Sperren, die schwersten und häufigsten Abfragen, Cache-Trefferquote und Working-Set-Größe, Autovacuum- und Bloat-Schätzungen sowie Replikationsstatus. Gleiche Prüfungen wie der neon inspect db-CLI-Befehl. Lassen Sie database_name weg, um jede Datenbank auf dem Branch abzudecken; übergeben Sie einen Namen, um eine zu untersuchen. Vier davon benötigen die pg_stat_statements- oder neon-Erweiterung.
  • list_slow_queries: Identifiziert Leistungsengpässe, indem die langsamsten Abfragen in einer Datenbank gefunden werden. Erfordert die pg_stat_statements-Erweiterung.
  • explain_sql_statement: Bietet detaillierte Ausführungspläne für SQL-Abfragen, um Leistungsengpässe zu identifizieren.
  • prepare_query_tuning: Analysiert die Abfrageleistung und schlägt Optimierungen vor, z. B. die Erstellung von Indizes. Erstellt einen temporären Branch zum sicheren Testen dieser Optimierungen.
  • complete_query_tuning: Schließt die Abfrageoptimierung ab, indem entweder Optimierungen auf den Haupt-Branch angewendet oder verworfen werden. Bereinigt den temporären Optimierungsbranch.

Neon Auth (?category=neon_auth):

  • provision_neon_auth, get_auth, disable_auth, update_auth_config
  • get_neon_auth_config: Host-Tool; Geheimnisse werden redigiert. Verwenden Sie generierte Auth-Schreib-Tools, um Einstellungen zu ändern.
  • list_auth_oauth_providers, add_auth_oauth_provider, update_auth_oauth_provider, delete_auth_oauth_provider
  • list_auth_trusted_domains, add_auth_trusted_domain, delete_auth_trusted_domain
  • create_auth_user, delete_auth_user, update_auth_user_role

Neon Data API (?category=data_api):

  • provision_neon_data_api, get_data_api, update_data_api, delete_data_api: Verwalten der Data API für eine Branch-Datenbank.

Suche und Entdeckung:

  • search: Sucht über Organisationen, Projekte und Branches, die einer Abfrage entsprechen. Gibt IDs, Titel und direkte Links zur Neon-Konsole zurück.
  • fetch: Ruft detaillierte Informationen zu einer bestimmten Organisation, einem Projekt oder einem Branch mithilfe einer ID ab (typischerweise aus dem Suchtool).

Observability (?category=observability): Diese Tools erfordern die Neon Platform Beta und sind derzeit nur für Projekte in der aws-us-east-2-Region verfügbar. Ein Branch ohne Protokollzugriff gibt HTTP 404 mit dem Grund telemetry_not_enabled zurück.

  • query_logs: Fragt OpenTelemetry-Protokolle für einen Branch ab. POST in der Management-API; wird von diesem Server als schreibgeschützt behandelt.
  • list_log_fields: Listet die Protokollfelder auf, für die Sie Werte auf einem Branch aufzählen können.
  • list_log_field_values: Listet die unterschiedlichen Werte eines Protokollfelds innerhalb eines Branches und Zeitfensters auf.

Dokumentation und Ressourcen (?category=docs):

  • list_docs_resources: Listet alle verfügbaren Neon-Dokumentationsseiten auf, indem der Index von https://neon.com/docs/llms.txt abgerufen wird. Gibt Seiten-URLs und Titel zurück, die einzeln mit dem get_doc_resource-Tool abgerufen werden können.
  • get_doc_resource: Ruft eine bestimmte Neon-Dokumentationsseite als Markdown-Inhalt ab. Verwenden Sie zuerst das list_docs_resources-Tool, um verfügbare Seiten-Slugs zu entdecken, und übergeben Sie dann den Slug an dieses Tool.

Funktionen (?category=functions):

  • list_functions, get_function, update_function, delete_function, deploy_function
  • list_functions_custom_domains, register_functions_custom_domain, delete_functions_custom_domain
  • list_triggers, get_trigger, create_trigger, update_trigger, delete_trigger: Geplante Funktionsauslöser (type: "schedule", fünfstelliger UTC-Cron).

Speicher (?category=storage):

  • list_storage_buckets, create_storage_bucket, delete_storage_bucket
  • list_storage_objects, delete_storage_object, delete_storage_objects_by_prefix
  • presign_storage_object, get_storage

Migrationen

Migrationen sind eine Möglichkeit, Änderungen an Ihrem Datenbankschema im Laufe der Zeit zu verwalten. Mit dem Neon MCP-Server können LLMs Migrationen sicher mit separaten „Start“- (prepare_database_migration) und „Commit“- (complete_database_migration) Befehlen durchführen.

Der „Start“-Befehl akzeptiert eine Migration und führt sie in einem neuen temporären Branch aus. Nach der Rückkehr weist dieser Befehl das LLM an, die Migration auf diesem Branch zu testen. Das LLM kann dann den „Commit“-Befehl ausführen, um die Migration auf den ursprünglichen Branch anzuwenden.

Entwicklung

Dieses Projekt verwendet pnpm als Paketmanager, der über Corepack festgelegt ist.

Projektstruktur

Der MCP-Servercode befindet sich im Repository-Stammverzeichnis, eine Next.js-Anwendung, die bei Vercel unter mcp.neon.tech bereitgestellt wird.

corepack enable
pnpm install

Siehe CONTRIBUTING.md für Hinweise zum Hinzufügen von Tools. Tool-Argumente sind snake_case.

Lokale Entwicklung

# Start the Next.js dev server (for the remote MCP server)
pnpm dev

Linting und Typprüfung

pnpm lint
pnpm typecheck

Umgebungsvariablen

Erforderlich für den Remote-Serverbetrieb:

VariableBeschreibung
SERVER_HOSTServer-URL (Standard: VERCEL_URL)
UPSTREAM_OAUTH_HOSTNeon-OAuth-Anbieter-URL
CLIENT_IDOAuth-Client-ID
CLIENT_SECRETOAuth-Client-Geheimnis
KV_URLVercel-KV (Upstash Redis) URL
OAUTH_DATABASE_URLPostgres-URL für Token-Speicherung

Optional:

VariableBeschreibung
LOG_LEVELWinston-Logstufe: error, warn, info (Standard), debug, verbose, silly
NEON_MCP_DISABLE_ANALYTICSAuf 1 setzen, um Produktanalysen zu deaktivieren

Testpyramide

Alle Tests werden vom Repository-Stammverzeichnis aus ausgeführt.

# Unit tests
pnpm test:unit

# Integration tests
pnpm test:integration

# MCP protocol end-to-end tests (real MCP client/server tool calls)
pnpm test:e2e:mcp

# Website end-to-end tests (Playwright; provisions/validates ephemeral DB first)
pnpm test:e2e:web

# Full end-to-end suite
pnpm test:e2e

# Full test pyramid (unit + integration + e2e; used in CI)
pnpm test

Teststrategie:

  • Bevorzuge E2E für Transport/Protokoll und sichtbares Benutzerverhalten.
  • Verwende Integrationstests für deterministische Tool-Verträge und Workflow-Verhalten.
  • Verwende Unit-Tests für reine Logik und Randfälle.
  • Vermeide Abhängigkeiten von der Verfügbarkeit Dritter in Merge-Gating-Tests; mocke externe Abhängigkeiten in Integrations-/Unit-Ebenen.

Bereitstellung

Vercel stellt den Remote-Server automatisch aus der Repository-Branch-Konfiguration bereit. Für Pull-Requests sind Vorschauumgebungen verfügbar.

Telemetrie

Der Neon-MCP-Server sammelt Produktanalysen und Fehlerberichte, um uns zu helfen, die Nutzung zu verstehen und die Zuverlässigkeit zu verbessern:

  • Produktanalysen (Segment): Wenn du dich mit einem authentifizierten Konto verbindest, sendet der Server ein identify-Ereignis mit deiner Neon-Konto-ID, deinem Namen und deiner E-Mail-Adresse. Er verfolgt außerdem den Sitzungsstart (server_init), jeden Tool-Aufruf (tool_call) und unerwartete Serverfehler (server_error). Ein Tool-Aufruf-Ereignis enthält den Tool-Namen, die Authentifizierungsmethode und den Client, nicht die Tool-Argumente oder Abfrageergebnisse. Nur-Dokumentations-Tool-Aufrufe ohne Konto werden anonym verfolgt. Ereignisse gehen an track.neon.tech, den eigenen Analyse-Endpunkt von Neon.
  • Fehlerberichte (Sentry): Unerwartete Serverfehler werden mit Stack-Traces und Anforderungskontext gemeldet.

Diese Erfassung wird durch die Neon-Datenschutzrichtlinie abgedeckt. Um Analysen zu deaktivieren, wenn du den Server selbst ausführst, setze NEON_MCP_DISABLE_ANALYTICS=1. Dieses Flag deaktiviert Sentry nicht.