Neon
oficialInteractú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_projectolist_projects. - Ejecutar consultas SQL y transacciones — Ejecuta SQL de una o varias declaraciones contra una base de datos, incluyendo escrituras, usando
run_sqlorun_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_statementoinspect_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_migrationycomplete_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_schemaocompare_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
Servidor MCP de Neon
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.
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:
- Configuración rápida con clave API (Cursor, VS Code y Claude Code): Ejecuta
neon@latest initpara configurar automáticamente el Servidor MCP de Neon, las habilidades del agente y la extensión de VS Code con un solo comando. - 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.
- 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.46y23.22.233.166a tu lista de permitidos (mcp.neon.techIPs 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_idoproject_iden 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:
- URL MCP predeterminada (consentimiento editable): Conéctate con
https://mcp.neon.tech/mcpy 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í. - URL MCP parametrizada (consentimiento fijo): Coloca
readonly,projectIdy/ocategoryen 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=truees 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,categoryyreadonlyen la URL MCP son una concesión fija confirmada en la autorización.readonly=trueno 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_sqlpermanece 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ámetro | Descripción | Ejemplo |
|---|---|---|
readonly | Habilita el modo de solo lectura (true/false) | ?readonly=true |
category | Restringe a categorías de herramientas específicas (repetido o CSV) | ?category=querying&category=schema |
projectId | Limita 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_migrationprepare_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 OAuthapp/.well-known/: Endpoints de metadatos de descubrimiento OAuthmcp/: Servidor MCP, herramientas, manejadores, analíticas e integración con Sentrylib/: 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
- Guía del servidor MCP de Neon
- Conectar clientes MCP a Neon
- Cursor con el servidor MCP de Neon
- Claude Code con el servidor MCP de Neon
- Claude Desktop con el servidor MCP de Neon
- Cline con el servidor MCP de Neon
- Windsurf con el servidor MCP de Neon
- Zed con el servidor MCP de Neon
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:
projectsbranchesendpointssnapshotsschemaqueryingneon_authdata_apiobservabilitydocsfunctionsstoragenull(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=branchesincluye herramientas de ramas, roles y bases de datos (list_postgres_roles,create_postgres_database, …). Un token ya emitido parabranchesobtiene 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_membersylist_project_permissionsson lecturas. - Las herramientas de esquema (
?category=schema) son las herramientas del hostget_database_tablesydescribe_table_schema, más las generadascompare_database_schema. - La aplicación de solo lectura sigue dependiendo de
readOnlySafey la lógica de solo lectura del lado del servidor;scopees 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_projecttambién está oculta.
Gestión de proyectos:
list_projects: Lista los proyectos de Neon.limitlimita 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 aget_connection_stringdespué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 debr-….list_credentials,create_credential,revoke_credential,rotate_credential: Credenciales de ámbito de rama para Object Storage y AI Gateway.revealno 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" }. Pasano_compute: truepara omitir el endpoint. Llama aget_connection_stringdespué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_namees 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 esrestore_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_idcomo id de rama (br-...), no un nombre. restore_snapshot: Restaura una instantánea. Pasatarget_branch_idpara 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_schemacompare_database_schema: Diferencia de esquema SQL de una base de datos contra otra rama.database_namees obligatorio. Omitirbase_branch_idcompara contra la rama principal. Los opcionaleslsn,timestamp,base_lsn,base_timestampson 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 CLIneon inspect db. Omitedatabase_namepara cubrir todas las bases de datos de la rama; pasa un nombre para inspeccionar una. Cuatro de ellos necesitan la extensiónpg_stat_statementsoneon.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_configget_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_providerlist_auth_trusted_domains,add_auth_trusted_domain,delete_auth_trusted_domaincreate_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 dehttps://neon.com/docs/llms.txt. Devuelve URLs y títulos de páginas que se pueden obtener individualmente usando la herramientaget_doc_resource.get_doc_resource: Obtiene una página específica de documentación de Neon como contenido markdown. Usa primero la herramientalist_docs_resourcespara 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_functionlist_functions_custom_domains,register_functions_custom_domain,delete_functions_custom_domainlist_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_bucketlist_storage_objects,delete_storage_object,delete_storage_objects_by_prefixpresign_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:
| Variable | Descripción |
|---|---|
SERVER_HOST | URL del servidor (por defecto VERCEL_URL) |
UPSTREAM_OAUTH_HOST | URL del proveedor OAuth de Neon |
CLIENT_ID | ID de cliente OAuth |
CLIENT_SECRET | Secreto de cliente OAuth |
KV_URL | URL de Vercel KV (Upstash Redis) |
OAUTH_DATABASE_URL | URL de Postgres para almacenamiento de tokens |
Opcionales:
| Variable | Description |
|---|---|
LOG_LEVEL | Nivel de registro de Winston: error, warn, info (predeterminado), debug, verbose, silly |
NEON_MCP_DISABLE_ANALYTICS | Establé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
identifycon 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 atrack.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.