Neon

oficial

Interactúa con la plataforma Postgres sin servidor de Neon

¿Qué puedes hacer con Neon MCP?

  • Crear y gestionar proyectos — Solicita crear una nueva base de datos Postgres, lista los proyectos existentes o elimina uno mediante create_project o list_projects.
  • Ejecutar consultas SQL y transacciones — Ejecuta SQL de una o varias declaraciones contra una base de datos, incluyendo escrituras, usando run_sql o run_sql_transaction.
  • Inspeccionar y optimizar el rendimiento — Identifica consultas lentas, obtén planes de ejecución o ejecuta diagnósticos como tasas de acierto de caché mediante list_slow_queries, explain_sql_statement o inspect_database.
  • Migrar esquemas de forma segura — Inicia una migración en una rama temporal, pruébala y luego confírmala en la rama principal con prepare_database_migration y complete_database_migration.
  • Explorar la estructura de la base de datos — Lista tablas, describe esquemas de columnas o compara esquemas entre ramas usando get_database_tables, describe_table_schema o compare_database_schema.

Servidor MCP alojado

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

Se instala en Claude Code, Codex, Cursor y más

Documentación

Neon Logo fallback

Servidor MCP de Neon

Install MCP Server in Cursor Add to Kiro

El Servidor MCP de Neon es una herramienta de código abierto que te permite interactuar con tus bases de datos Lakebase Postgres en Neon mediante lenguaje natural.

License: MIT

El Protocolo de Contexto de Modelo (MCP) es un protocolo estandarizado diseñado para gestionar el contexto entre modelos de lenguaje de gran tamaño (LLMs) y sistemas externos. Este repositorio proporciona un Servidor MCP remoto para Neon.

El servidor MCP de Neon actúa como un puente entre las solicitudes en lenguaje natural y la API de Neon. Construido sobre MCP, traduce tus solicitudes en las llamadas API necesarias, permitiéndote gestionar tareas como crear proyectos y ramas, ejecutar consultas y realizar migraciones de bases de datos sin problemas.

Algunas de las características clave del servidor MCP de Neon incluyen:

  • Interacción en lenguaje natural: Gestiona bases de datos de Neon mediante comandos conversacionales intuitivos.
  • Gestión simplificada de bases de datos: Realiza acciones complejas sin escribir SQL ni usar directamente la API de Neon.
  • Accesibilidad para no desarrolladores: Permite a usuarios con diversos niveles técnicos interactuar con las bases de datos de Neon.
  • Soporte para migraciones de bases de datos: Aprovecha las capacidades de ramificación de Neon para cambios en el esquema de la base de datos iniciados mediante lenguaje natural.

Por ejemplo, en Claude Code, o en cualquier Cliente MCP, puedes usar lenguaje natural para lograr cosas con Neon, como:

  • 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]
Consideraciones de seguridad del Servidor MCP de Neon
El Servidor MCP de Neon otorga potentes capacidades de gestión de bases de datos mediante solicitudes en lenguaje natural. Siempre revisa y autoriza las acciones solicitadas por el LLM antes de ejecutarlas. Asegúrate de que solo usuarios y aplicaciones autorizados tengan acceso al Servidor MCP de Neon.

El Servidor MCP de Neon está destinado únicamente al desarrollo local e integraciones con IDE. No recomendamos usar el Servidor MCP de Neon en entornos de producción. Puede ejecutar operaciones potentes que podrían provocar cambios accidentales o no autorizados.

Para más información, consulta Guía de seguridad de MCP →.

Configuración del Servidor MCP de Neon

Hay algunas opciones para configurar el Servidor MCP de Neon:

  1. Configuración rápida con clave API (Cursor, VS Code y Claude Code): Ejecuta neon@latest init para configurar automáticamente el Servidor MCP de Neon, las habilidades del agente y la extensión de VS Code con un solo comando.
  2. Servidor MCP remoto (autenticación basada en OAuth): Conéctate al servidor MCP gestionado de Neon usando OAuth para la autenticación. Este método es más conveniente ya que elimina la necesidad de gestionar claves API. Además, recibirás automáticamente las últimas funciones y mejoras tan pronto como se publiquen.
  3. Servidor MCP remoto (autenticación basada en clave API): Conéctate al servidor MCP gestionado de Neon usando una clave API para la autenticación. Este método es útil si deseas conectar un agente remoto a Neon donde OAuth no esté disponible. Además, recibirás automáticamente las últimas funciones y mejoras tan pronto como se publiquen.

Requisitos previos

  • Una aplicación de Cliente MCP.
  • Una cuenta de Neon.
  • Node.js (>= v18.0.0): Descárgalo desde nodejs.org.
  • Si IP Allow está habilitado, agrega 34.192.103.46 y 23.22.233.166 a tu lista de permitidos (mcp.neon.tech IPs estáticas).

Para desarrollo, necesitarás Node.js 22+ (pnpm se proporciona mediante Corepack — ejecuta corepack enable para activarlo).

Opción 1. Configuración rápida con clave API

¿No quieres crear una clave API manualmente?

Ejecuta neon@latest init para configurar automáticamente el Servidor MCP de Neon con un solo comando:

npx neon@latest init

Esto funciona con Cursor, VS Code (GitHub Copilot) y Claude Code. Autenticará mediante OAuth, creará una clave API de Neon para ti y configurará tu editor automáticamente.

Opción 2. Servidor MCP remoto alojado (autenticación basada en OAuth)

Conéctate al servidor MCP gestionado de Neon usando OAuth para la autenticación. Esta es la configuración más sencilla, no requiere instalación local de este servidor y no necesita una clave API de Neon configurada en el cliente.

Ejecuta el siguiente comando para agregar el Servidor MCP de Neon para todos los agentes y editores detectados en tu espacio de trabajo:

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

Esa URL publica proyectos, ramas, endpoints de cómputo, consultas y esquemas. Previsualízala con /api/list-tools?category=projects&category=branches&category=endpoints&category=querying&category=schema. La URL sin filtrar publica todas las categorías:

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

Agrega el indicador -g para añadir el Servidor MCP de Neon a la lista global de servidores MCP en lugar de al ámbito del proyecto.

Alternativamente, puedes agregar la siguiente entrada "Neon" al archivo de configuración del servidor MCP de tu cliente (por ejemplo, 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: Agrega lo siguiente a tu archivo de configuración MCP de Kiro (~/.kiro/settings/mcp.json para global, o .kiro/settings/mcp.json para ámbito del proyecto):

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

O usa el botón de instalación con un clic en la parte superior de este README. Para más información, consulta la documentación de MCP de Kiro.

  • Reinicia o actualiza tu cliente MCP.
  • Se abrirá una ventana de OAuth en tu navegador. Sigue las indicaciones para autorizar a tu cliente MCP a acceder a tu cuenta de Neon.

Con la autenticación basada en OAuth, el servidor MCP operará, por defecto, en proyectos bajo tu cuenta personal de Neon. Para acceder o gestionar proyectos que pertenecen a una organización, debes proporcionar explícitamente org_id o project_id en tu indicación al cliente MCP.

Opción 3. Servidor MCP remoto alojado (autenticación basada en clave API)

El Servidor MCP remoto también admite autenticación mediante una clave API en el encabezado Authorization si tu cliente lo admite.

Crea una clave API de Neon en la Consola de Neon. A continuación, ejecuta el siguiente comando para agregar el Servidor MCP de Neon para todos los agentes y editores detectados en tu espacio de trabajo:

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

Alternativamente, puedes agregar la siguiente entrada "Neon" al archivo de configuración del servidor MCP de tu cliente (por ejemplo, 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>"
      }
    }
  }
}

Proporciona la clave API de una organización para limitar el acceso solo a los proyectos de esa organización.

Ámbitos y modo de solo lectura

Neon MCP anuncia los ámbitos OAuth read y write. Tu cliente MCP puede solicitarlos, o puedes hacer la selección en la interfaz de permisos de OAuth. * se trata como escritura si un cliente aún lo envía.

El modo de solo lectura restringe qué herramientas están disponibles, deshabilitando operaciones de escritura como crear proyectos, ramas o ejecutar migraciones. Las herramientas de solo lectura incluyen listar proyectos, describir esquemas, consultar datos y ver métricas de rendimiento.

Puedes configurar el modo de solo lectura de dos maneras:

  1. URL MCP predeterminada (consentimiento editable): Conéctate con https://mcp.neon.tech/mcp y desmarca Permitir escrituras en la página de autorización. También puedes elegir un proyecto y un subconjunto de categorías de herramientas allí.
  2. URL MCP parametrizada (consentimiento fijo): Coloca readonly, projectId y/o category en la URL del servidor MCP. La página de autorización confirma esa concesión y no ofrece editores. Cambia la URL y autoriza nuevamente para cambiar la concesión.
{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?readonly=true"
    }
  }
}

Cómo se comporta el parámetro de consulta:

  • Flujo de clave API: readonly=true es la forma de habilitar el modo de solo lectura (no hay intercambio de ámbitos OAuth en este flujo). Los cambios de URL se aplican en la siguiente solicitud.
  • Flujo OAuth: projectId, category y readonly en la URL MCP son una concesión fija confirmada en la autorización. readonly=true no se puede ampliar a escrituras en esa página. Después de emitir un token, cambiar la URL no amplía ese token; autoriza nuevamente.

Para el registro OAuth, x-read-only es un valor predeterminado inicial de Permitir escrituras en el consentimiento editable. No bloquea la confirmación y no reduce una URL parametrizada que incluya readonly=false. Las solicitudes con clave API aún respetan x-read-only por solicitud, por debajo del parámetro de consulta readonly.

Nota: El modo de solo lectura restringe qué herramientas están disponibles. Además, la herramienta run_sql permanece disponible solo para consultas de solo lectura.

Parámetros de consulta de URL para control de acceso

El contexto de concesión (categorías de ámbitos, ámbito de proyecto, modo de solo lectura) se configura mediante parámetros de consulta de URL en la URL del servidor MCP. Las solicitudes con clave API aplican esos parámetros en cada solicitud. Los tokens OAuth almacenan la concesión confirmada o editada en la autorización.

ParámetroDescripciónEjemplo
readonlyHabilita el modo de solo lectura (true/false)?readonly=true
categoryRestringe a categorías de herramientas específicas (repetido o CSV)?category=querying&category=schema
projectIdLimita todas las operaciones a un solo proyecto?projectId=proj-123

Ejemplo de solo lectura + ámbito de proyecto:

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

Ejemplo con filtro de categorías (solo herramientas de consulta y esquema):

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

Puedes previsualizar qué herramientas son visibles para cualquier configuración usando el endpoint /api/list-tools (sin autenticación requerida):

curl "https://mcp.neon.tech/api/list-tools?readonly=true&category=querying"
Herramientas disponibles en modo de solo lectura

Herramientas de host: 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.

Herramientas generadas de la API de Gestión que son GET y no devuelven secretos, más query_logs (POST, solo lectura). Previsualiza el conjunto exacto con /api/list-tools?readonly=true.

Herramientas que requieren acceso de escritura:

  • Escrituras generadas de la API de Gestión (create_project, create_branch, delete_project, …)
  • get_connection_string (la cadena de conexión lleva la contraseña de un rol privilegiado, por lo que se retiene en modo de solo lectura; cópiala desde la Consola de Neon en su lugar)
  • prepare_database_migration, complete_database_migration
  • prepare_query_tuning, complete_query_tuning

Transporte de Eventos Enviados por el Servidor (SSE) (Obsoleto)

MCP admite dos transportes de servidor remoto: el obsoleto Eventos Enviados por el Servidor (SSE) y el más nuevo y recomendado HTTP Streamable. Si tu cliente LLM aún no admite HTTP Streamable, puedes cambiar el endpoint de https://mcp.neon.tech/mcp a https://mcp.neon.tech/sse para usar SSE en su lugar.

Ejecuta el siguiente comando para agregar el Servidor MCP de Neon para todos los agentes y editores detectados en tu espacio de trabajo usando el transporte SSE:

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

Arquitectura del servidor remoto

El servidor remoto se ejecuta como una aplicación Next.js App Router en Vercel en mcp.neon.tech.

[!NOTE] La ruta raíz / redirige a la documentación del Servidor MCP de Neon. No hay página de destino.

Áreas principales de implementación:

  • app/api/[transport]/route.ts: Endpoint de transporte MCP para HTTP Streamable (/mcp) y SSE (/sse)
  • app/api/authorize/, app/callback/, app/api/token/, app/api/revoke/: Endpoints del flujo OAuth
  • app/.well-known/: Endpoints de metadatos de descubrimiento OAuth
  • mcp/: Servidor MCP, herramientas, manejadores, analíticas e integración con Sentry
  • lib/: Ayudantes compatibles con Next.js (OAuth, configuración, manejo de errores)
  • mcp/utils/read-only.ts: Manejo del modo de solo lectura y ámbitos

Guías

Características

Herramientas compatibles

El servidor MCP de Neon proporciona las siguientes acciones, que se exponen como "herramientas" a los clientes MCP. Puedes usar estas herramientas para interactuar con tus proyectos y bases de datos de Neon mediante comandos en lenguaje natural.

Metadatos de alcance de herramientas

Cada definición de herramienta incluye una categoría scope utilizada para el filtrado de herramientas basado en permisos y la experiencia de consentimiento. Las categorías actuales son:

  • projects
  • branches
  • endpoints
  • snapshots
  • schema
  • querying
  • neon_auth
  • data_api
  • observability
  • docs
  • functions
  • storage
  • null (herramientas sin categoría de alcance)

Notas:

  • Las herramientas de la API de gestión provienen de @neon/tools. Los selectores son rutas del SDK (projects.list); los nombres MCP publicados son verbos primero (list_projects, delete_project, query_logs). Los nombres históricos se mantienen donde ya existían (describe_project, create_branch, reset_from_parent, compare_database_schema, provision_neon_auth, provision_neon_data_api, list_branch_computes).
  • ?category=branches incluye herramientas de ramas, roles y bases de datos (list_postgres_roles, create_postgres_database, …). Un token ya emitido para branches obtiene esas escrituras. El listado de cómputo es ?category=endpoints. La restauración de instantáneas es ?category=snapshots.
  • Las escrituras de miembros de proyecto y permisos no se publican. list_project_members y list_project_permissions son lecturas.
  • Las herramientas de esquema (?category=schema) son las herramientas del host get_database_tables y describe_table_schema, más las generadas compare_database_schema.
  • La aplicación de solo lectura sigue dependiendo de readOnlySafe y la lógica de solo lectura del lado del servidor; scope es metadatos de categoría, no un interruptor independiente de lectura/escritura.
  • En el modo de alcance de proyecto (?projectId=...), las herramientas sin ruta de proyecto (list_projects, create_project, list_organizations, list_regions, search, fetch, …) están ocultas. delete_project también está oculta.

Gestión de proyectos:

  • list_projects: Lista los proyectos de Neon. limit limita cuántos elementos se devuelven.
  • describe_project: Obtiene un proyecto de Neon por id ({ "project_id": "…" }).
  • create_project: Crea un proyecto de Neon y espera a que el cómputo predeterminado esté listo. No devuelve una cadena de conexión. Los argumentos son { "name": "…", "org_id": "…", "region_id": "…" }. Llama a get_connection_string después de que tenga éxito.
  • delete_project: Elimina un proyecto de Neon existente. Los argumentos son { "project_id": "…" }.
  • list_organizations: Lista todas las organizaciones a las que el usuario actual tiene acceso. Opcionalmente, filtra por nombre o ID de organización usando el parámetro de búsqueda.

Gestión de ramas:

  • list_branches: Lista las ramas de un proyecto. Úsala para resolver un nombre de rama a un id de br-….
  • list_credentials, create_credential, revoke_credential, rotate_credential: Credenciales de ámbito de rama para Object Storage y AI Gateway. reveal no es una herramienta; la rotación reemplaza secretos en su lugar y no es idempotente.
  • create_branch: Crea una rama con un cómputo de lectura-escritura y espera hasta que esté lista. No devuelve una cadena de conexión. Los argumentos son { "project_id": "…", "name": "feature-x" }. Pasa no_compute: true para omitir el endpoint. Llama a get_connection_string después de que tenga éxito.
  • reset_from_parent: Restablece una rama al HEAD actual de su rama principal ({ "project_id": "…", "branch_id": "br-…" }). Descarta las escrituras desde que la rama divergió. preserve_under_name es obligatorio cuando la rama tiene ramas hijas; esas hijas se mueven a la nueva rama. Solo HEAD de la rama principal; la restauración en un punto en el tiempo es restore_snapshot.
  • delete_branch: Elimina una rama ({ "project_id": "…", "branch_id": "br-…" }).
  • describe_branch: Recupera un árbol de bases de datos, esquemas, tablas, vistas y funciones en una rama.
  • Las herramientas de rama generadas toman branch_id como id de rama (br-...), no un nombre.
  • restore_snapshot: Restaura una instantánea. Pasa target_branch_id para restaurar en una rama existente; omítelo para crear una nueva.

Endpoints de cómputo (?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

Instantáneas (?category=snapshots):

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

Esquema (?category=schema):

  • get_database_tables, describe_table_schema
  • compare_database_schema: Diferencia de esquema SQL de una base de datos contra otra rama. database_name es obligatorio. Omitir base_branch_id compara contra la rama principal. Los opcionales lsn, timestamp, base_lsn, base_timestamp son solo para puntos en el tiempo.

Ejecución de consultas SQL:

  • get_connection_string: Devuelve tu cadena de conexión de base de datos.
  • run_sql: Ejecuta una única consulta SQL contra una base de datos de Neon especificada. Admite operaciones de lectura y escritura.
  • run_sql_transaction: Ejecuta una serie de consultas SQL dentro de una única transacción contra una base de datos de Neon.
  • get_database_tables: Lista todas las tablas dentro de una base de datos de Neon especificada.
  • describe_table_schema: Recupera la definición de esquema de una tabla específica, detallando columnas, tipos de datos y restricciones.

Migraciones de base de datos (cambios de esquema):

  • prepare_database_migration: Inicia un proceso de migración de base de datos. De manera crítica, crea una rama temporal para aplicar y probar la migración de forma segura antes de afectar la rama principal.
  • complete_database_migration: Finaliza y aplica una migración de base de datos preparada a la rama principal. Esta acción fusiona los cambios de la rama de migración temporal y limpia los recursos temporales.

Consultas y optimización SQL:

  • inspect_database: Ejecuta uno de los 15 diagnósticos de Postgres de solo lectura predefinidos contra una rama: tamaños de relaciones e índices, uso de índices y escaneos secuenciales, consultas activas y bloqueos, consultas más pesadas y frecuentes, tasa de aciertos de caché y tamaño del conjunto de trabajo, estimaciones de autovacuum y bloat, y estado de replicación. Mismas comprobaciones que el comando CLI neon inspect db. Omite database_name para cubrir todas las bases de datos de la rama; pasa un nombre para inspeccionar una. Cuatro de ellos necesitan la extensión pg_stat_statements o neon.
  • list_slow_queries: Identifica cuellos de botella de rendimiento encontrando las consultas más lentas en una base de datos. Requiere la extensión pg_stat_statements.
  • explain_sql_statement: Proporciona planes de ejecución detallados para consultas SQL para ayudar a identificar cuellos de botella de rendimiento.
  • prepare_query_tuning: Analiza el rendimiento de las consultas y sugiere optimizaciones, como la creación de índices. Crea una rama temporal para probar estas optimizaciones de forma segura.
  • complete_query_tuning: Finaliza el ajuste de consultas aplicando optimizaciones a la rama principal o descartándolas. Limpia la rama de ajuste temporal.

Neon Auth (?category=neon_auth):

  • provision_neon_auth, get_auth, disable_auth, update_auth_config
  • get_neon_auth_config: herramienta del host; secretos redactados. Usa las herramientas de escritura de Auth generadas para cambiar la configuración.
  • 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

API de datos de Neon (?category=data_api):

  • provision_neon_data_api, get_data_api, update_data_api, delete_data_api: Gestiona la API de datos para una base de datos de rama.

Búsqueda y descubrimiento:

  • search: Busca en organizaciones, proyectos y ramas que coincidan con una consulta. Devuelve IDs, títulos y enlaces directos a la consola de Neon.
  • fetch: Obtiene información detallada sobre una organización, proyecto o rama específica usando un ID (normalmente de la herramienta de búsqueda).

Observabilidad (?category=observability): estas herramientas requieren la versión Beta de la plataforma Neon y actualmente solo están disponibles para proyectos en la región aws-us-east-2. Una rama sin acceso a registros devuelve HTTP 404 con el motivo telemetry_not_enabled.

  • query_logs: Consulta registros de OpenTelemetry para una rama. POST en la API de gestión; tratado como solo lectura por este servidor.
  • list_log_fields: Lista los campos de registro cuyos valores puedes enumerar en una rama.
  • list_log_field_values: Lista los valores distintos de un campo de registro dentro de una rama y ventana de tiempo.

Documentación y recursos (?category=docs):

  • list_docs_resources: Lista todas las páginas de documentación de Neon disponibles obteniendo el índice de https://neon.com/docs/llms.txt. Devuelve URLs y títulos de páginas que se pueden obtener individualmente usando la herramienta get_doc_resource.
  • get_doc_resource: Obtiene una página específica de documentación de Neon como contenido markdown. Usa primero la herramienta list_docs_resources para descubrir los slugs de página disponibles, luego pasa el slug a esta herramienta.

Funciones (?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: Disparadores de funciones programados (type: "schedule", cron UTC de cinco campos).

Almacenamiento (?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

Migraciones

Las migraciones son una forma de gestionar cambios en el esquema de tu base de datos a lo largo del tiempo. Con el servidor MCP de Neon, los LLM pueden realizar migraciones de forma segura con comandos separados de "Inicio" (prepare_database_migration) y "Confirmar" (complete_database_migration).

El comando "Inicio" acepta una migración y la ejecuta en una nueva rama temporal. Al regresar, este comando sugiere al LLM que pruebe la migración en esta rama. El LLM puede entonces ejecutar el comando "Confirmar" para aplicar la migración a la rama original.

Desarrollo

Este proyecto usa pnpm como gestor de paquetes, fijado mediante Corepack.

Estructura del proyecto

El código del servidor MCP se encuentra en la raíz del repositorio, una aplicación Next.js desplegada en Vercel en mcp.neon.tech.

corepack enable
pnpm install

Consulta CONTRIBUTING.md para saber cómo añadir herramientas. Los argumentos de las herramientas son snake_case.

Desarrollo local

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

Linting y comprobación de tipos

pnpm lint
pnpm typecheck

Variables de entorno

Requeridas para el tiempo de ejecución del servidor remoto:

VariableDescripción
SERVER_HOSTURL del servidor (por defecto VERCEL_URL)
UPSTREAM_OAUTH_HOSTURL del proveedor OAuth de Neon
CLIENT_IDID de cliente OAuth
CLIENT_SECRETSecreto de cliente OAuth
KV_URLURL de Vercel KV (Upstash Redis)
OAUTH_DATABASE_URLURL de Postgres para almacenamiento de tokens

Opcionales:

VariableDescription
LOG_LEVELNivel de registro de Winston: error, warn, info (predeterminado), debug, verbose, silly
NEON_MCP_DISABLE_ANALYTICSEstablézcalo en 1 para deshabilitar la analítica de producto

Pirámide de pruebas

Todas las pruebas se ejecutan desde la raíz del repositorio.

# 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

Estrategia de pruebas:

  • Prefiera E2E para transporte/protocolo y comportamiento visible para el usuario.
  • Use pruebas de integración para contratos de herramientas deterministas y comportamiento de flujos de trabajo.
  • Use pruebas unitarias para lógica pura y casos límite.
  • Evite depender de la disponibilidad de terceros en pruebas de control de fusión; simule dependencias externas en los niveles de integración/unitario.

Implementación

Vercel implementa el servidor remoto automáticamente desde la configuración de la rama del repositorio. Los entornos de vista previa están disponibles para las solicitudes de extracción.

Telemetría

El servidor MCP de Neon recopila analítica de producto e informes de errores para ayudarnos a comprender el uso y mejorar la confiabilidad:

  • Analítica de producto (Segment): cuando se conecta con una cuenta autenticada, el servidor envía un evento identify con su ID de cuenta de Neon, nombre y dirección de correo electrónico. También rastrea el inicio de sesión (server_init), cada llamada de herramienta (tool_call) y errores inesperados del servidor (server_error). Un evento de llamada de herramienta incluye el nombre de la herramienta, el método de autenticación y el cliente, no los argumentos de la herramienta ni los resultados de las consultas. Las llamadas de herramientas solo de documentación sin una cuenta se rastrean de forma anónima. Los eventos se envían a track.neon.tech, el punto de conexión de analítica propio de Neon.
  • Informe de errores (Sentry): los errores inesperados del servidor se informan con seguimientos de pila y contexto de solicitud.

Esta recopilación está cubierta por la Política de privacidad de Neon. Para deshabilitar la analítica al ejecutar el servidor usted mismo, establezca NEON_MCP_DISABLE_ANALYTICS=1. Ese indicador no deshabilita Sentry.