Neon
offiziellInteragiere 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_projectoderlist_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_sqloderrun_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_statementoderinspect_databasedurch. - Schemata sicher migrieren — Starten Sie eine Migration auf einem temporären Branch, testen Sie sie und committen Sie sie dann mit
prepare_database_migrationundcomplete_database_migrationauf 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_schemaodercompare_database_schema.
Gehosteter MCP-Server
npx add-mcp 'https://mcp.neon.tech/mcp'Installiert in Claude Code, Codex, Cursor und mehr
Dokumentation
Neon MCP Server
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.
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:
- Schnelleinrichtung mit API-Schlüssel (Cursor, VS Code und Claude Code): Führen Sie
neon@latest initaus, um den MCP-Server von Neon, Agent Skills und die VS-Code-Erweiterung automatisch mit einem Befehl zu konfigurieren. - 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.
- 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.46und23.22.233.166zu Ihrer Zulassungsliste hinzu (mcp.neon.techstatische 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_idoderproject_idexplizit 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:
- Standard-MCP-URL (bearbeitbare Zustimmung): Verbinden Sie sich mit
https://mcp.neon.tech/mcpund deaktivieren Sie Schreibzugriff erlauben auf der Autorisierungsseite. Sie können dort auch ein Projekt und eine Teilmenge von Tool-Kategorien auswählen. - Parametrisierte MCP-URL (feste Zustimmung): Fügen Sie
readonly,projectIdund/odercategoryzur 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=trueist 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,categoryundreadonlyauf der MCP-URL sind eine feste Gewährung, die bei der Autorisierung bestätigt wird.readonly=truekann 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.
| Parameter | Beschreibung | Beispiel |
|---|---|---|
readonly | Nur-Lese-Modus aktivieren (true/false) | ?readonly=true |
category | Auf bestimmte Tool-Kategorien beschränken (wiederholt oder CSV) | ?category=querying&category=schema |
projectId | Alle 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_migrationprepare_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-Endpunkteapp/.well-known/: OAuth-Discovery-Metadaten-Endpunktemcp/: MCP-Server, Tools, Handler, Analysen und Sentry-Integrationlib/: Next.js-kompatible Helfer (OAuth, Konfiguration, Fehlerbehandlung)mcp/utils/read-only.ts: Nur-Lese-Modus und Bereichsverwaltung
Anleitungen
- Neon MCP Server Leitfaden
- MCP-Clients mit Neon verbinden
- Cursor mit Neon MCP Server
- Claude Code mit Neon MCP Server
- Claude Desktop mit Neon MCP Server
- Cline mit Neon MCP Server
- Windsurf mit Neon MCP Server
- Zed mit Neon MCP Server
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:
projectsbranchesendpointssnapshotsschemaqueryingneon_authdata_apiobservabilitydocsfunctionsstoragenull(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=branchesumfasst Branch-, Rollen- und Datenbank-Tools (list_postgres_roles,create_postgres_database, …). Ein bereits fürbranchesausgestelltes 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_membersundlist_project_permissionssind Lesezugriffe. - Schema-Tools (
?category=schema) sind die Host-Toolsget_database_tablesunddescribe_table_schemasowie generiertecompare_database_schema. - Die Nur-Lese-Erzwingung stützt sich weiterhin auf
readOnlySafeund die serverseitige Nur-Lese-Logik;scopeist 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_projectwird ebenfalls ausgeblendet.
Projektverwaltung:
list_projects: Listet Neon-Projekte auf.limitbegrenzt, 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 Sieget_connection_stringauf, 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 einebr-…-ID aufzulösen.list_credentials,create_credential,revoke_credential,rotate_credential: Branch-bezogene Anmeldeinformationen für Object Storage und das AI Gateway.revealist 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 Sieno_compute: true, um den Endpunkt zu überspringen. Rufen Sieget_connection_stringauf, 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_nameist erforderlich, wenn der Branch untergeordnete Branches hat; diese untergeordneten Branches werden auf den neuen Branch verschoben. Nur übergeordneter HEAD; Point-in-Time-Wiederherstellung istrestore_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_idals Branch-ID (br-...), nicht als Namen. restore_snapshot: Stellt einen Snapshot wieder her. Übergeben Sietarget_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_schemacompare_database_schema: SQL-Schema-Diff einer Datenbank gegen einen anderen Branch.database_nameist erforderlich. Wennbase_branch_idweggelassen wird, wird gegen den übergeordneten Branch verglichen. Optionalelsn,timestamp,base_lsn,base_timestampsind 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 derneon inspect db-CLI-Befehl. Lassen Siedatabase_nameweg, um jede Datenbank auf dem Branch abzudecken; übergeben Sie einen Namen, um eine zu untersuchen. Vier davon benötigen diepg_stat_statements- oderneon-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_configget_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_providerlist_auth_trusted_domains,add_auth_trusted_domain,delete_auth_trusted_domaincreate_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 vonhttps://neon.com/docs/llms.txtabgerufen wird. Gibt Seiten-URLs und Titel zurück, die einzeln mit demget_doc_resource-Tool abgerufen werden können.get_doc_resource: Ruft eine bestimmte Neon-Dokumentationsseite als Markdown-Inhalt ab. Verwenden Sie zuerst daslist_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_functionlist_functions_custom_domains,register_functions_custom_domain,delete_functions_custom_domainlist_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_bucketlist_storage_objects,delete_storage_object,delete_storage_objects_by_prefixpresign_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:
| Variable | Beschreibung |
|---|---|
SERVER_HOST | Server-URL (Standard: VERCEL_URL) |
UPSTREAM_OAUTH_HOST | Neon-OAuth-Anbieter-URL |
CLIENT_ID | OAuth-Client-ID |
CLIENT_SECRET | OAuth-Client-Geheimnis |
KV_URL | Vercel-KV (Upstash Redis) URL |
OAUTH_DATABASE_URL | Postgres-URL für Token-Speicherung |
Optional:
| Variable | Beschreibung |
|---|---|
LOG_LEVEL | Winston-Logstufe: error, warn, info (Standard), debug, verbose, silly |
NEON_MCP_DISABLE_ANALYTICS | Auf 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 antrack.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.