API VEGA

MCP-сервер Neon

MCP-сервер Neon — это инструмент с открытым исходным кодом, который позволяет взаимодействовать с вашими базами данных Lakebase Postgres в Neon на естественном языке.

Model Context Protocol (MCP) — это стандартизированный протокол, предназначенный для управления контекстом между большими языковыми моделями (LLM) и внешними системами. Этот репозиторий предоставляет удалённый MCP-сервер для Neon.

MCP-сервер Neon служит мостом между запросами на естественном языке и Neon API. Построенный на MCP, он преобразует ваши запросы в необходимые вызовы API, позволяя без труда выполнять такие задачи, как создание проектов и веток, запуск запросов и миграции баз данных.

Ключевые возможности MCP-сервера Neon:

  • Взаимодействие на естественном языке: управляйте базами данных Neon с помощью интуитивных команд в разговорном стиле.

  • Упрощённое управление базами данных: выполняйте сложные действия без написания SQL или прямого использования Neon API.

  • Доступность для нетехнических пользователей: дайте пользователям с разным уровнем технической подготовки возможность взаимодействовать с базами данных Neon.

  • Поддержка миграций баз данных: используйте возможности ветвления Neon для изменений схемы базы данных, инициируемых на естественном языке.

Например, в Claude Code или любом MCP-клиенте можно использовать естественный язык для работы с Neon, например:

  • 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?

Предупреждение

Меры безопасности MCP-сервера Neon

MCP-сервер Neon предоставляет мощные возможности управления базами данных через запросы на естественном языке. Всегда проверяйте и авторизуйте действия, запрошенные LLM, перед выполнением. Убедитесь, что только авторизованные пользователи и приложения имеют доступ к MCP-серверу Neon.

MCP-сервер Neon предназначен только для локальной разработки и интеграций с IDE. Мы не рекомендуем использовать MCP-сервер Neon в production-средах. Он может выполнять мощные операции, которые способны привести к случайным или несанкционированным изменениям.

Подробнее см. рекомендации по безопасности MCP →.

Настройка MCP-сервера Neon

Есть несколько вариантов настройки MCP-сервера Neon:

  • Быстрая настройка с API-ключом (Cursor, VS Code и Claude Code): выполните neon@latest init, чтобы одной командой автоматически настроить MCP-сервер Neon, навыки агентов и расширение VS Code.

  • Удалённый MCP-сервер (аутентификация на основе OAuth): подключитесь к управляемому MCP-серверу Neon с аутентификацией через OAuth. Этот способ удобнее, так как избавляет от необходимости управлять API-ключами. Кроме того, вы будете автоматически получать последние функции и улучшения сразу после их выпуска.

  • Удалённый MCP-сервер (аутентификация на основе API-ключа): подключитесь к управляемому MCP-серверу Neon с аутентификацией по API-ключу. Этот способ полезен, если нужно подключить удалённого агента к Neon там, где OAuth недоступен. Кроме того, вы будете автоматически получать последние функции и улучшения сразу после их выпуска.

Предварительные требования

  • Приложение MCP-клиента.

  • Аккаунт Neon.

  • Node.js (>= v18.0.0): скачайте с nodejs.org.

  • Если включён IP Allow, добавьте 34.192.103.46 и 23.22.233.166 в список разрешённых IP (статические IP mcp.neon.tech).

Для разработки потребуется Node.js 22+ (pnpm поставляется через Corepack — выполните corepack enable, чтобы активировать его).

Вариант 1. Быстрая настройка с API-ключом

Не хотите создавать API-ключ вручную?

Выполните neon@latest init, чтобы автоматически настроить MCP-сервер Neon одной командой:

npx neon@latest init

Это работает с Cursor, VS Code (GitHub Copilot) и Claude Code. Инструмент аутентифицируется через OAuth, создаст для вас API-ключ Neon и автоматически настроит редактор.

Вариант 2. Удалённый размещённый MCP-сервер (аутентификация на основе OAuth)

Подключитесь к управляемому MCP-серверу Neon с аутентификацией через OAuth. Это самый простой вариант: не требует локальной установки этого сервера и настройки API-ключа Neon в клиенте.

Выполните следующую команду, чтобы добавить MCP-сервер Neon для всех обнаруженных агентов и редакторов в рабочей области:

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

Этот URL публикует проекты, ветки, вычислительные эндпоинты, запросы и схему. Просмотрите его с помощью /api/list-tools?category=projects&category=branches&category=endpoints&category=querying&category=schema. URL без фильтрации публикует все категории:

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

Добавьте флаг -g, чтобы добавить MCP-сервер Neon в глобальный список MCP-серверов, а не в список для проекта.

Либо добавьте следующую запись "Neon" в файл конфигурации MCP-серверов вашего клиента (например, 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: добавьте следующее в файл конфигурации MCP Kiro (~/.kiro/settings/mcp.json для глобальной настройки или .kiro/settings/mcp.json для проекта):

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

Или используйте кнопку установки в один клик в верхней части этого README. Подробнее см. документацию Kiro MCP.

  • Перезапустите или обновите MCP-клиент.

  • В браузере откроется окно OAuth. Следуйте подсказкам, чтобы авторизовать MCP-клиент для доступа к вашему аккаунту Neon.

При аутентификации на основе OAuth MCP-сервер по умолчанию работает с проектами в вашем личном аккаунте Neon. Чтобы получить доступ к проектам, принадлежащим организации, или управлять ими, необходимо явно указать org_id или project_id в запросе к MCP-клиенту.

Вариант 3. Удалённый размещённый MCP-сервер (аутентификация на основе API-ключа)

Удалённый MCP-сервер также поддерживает аутентификацию с помощью API-ключа в заголовке Authorization, если ваш клиент это поддерживает.

Создайте API-ключ Neon в Neon Console. Затем выполните следующую команду, чтобы добавить MCP-сервер Neon для всех обнаруженных агентов и редакторов в рабочей области:

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

Либо добавьте следующую запись "Neon" в файл конфигурации MCP-серверов вашего клиента (например, 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>"
      }
    }
  }
}

Укажите API-ключ организации, чтобы ограничить доступ только проектами этой организации.

Скоупы и режим только для чтения

Neon MCP объявляет OAuth-скоупы read и write. Их может запросить ваш MCP-клиент, либо вы можете выбрать нужные в интерфейсе разрешений OAuth. Если клиент всё же отправляет *, этот скоуп трактуется как write.

Режим только для чтения ограничивает набор доступных инструментов, отключая операции записи — например, создание проектов и веток или запуск миграций. К инструментам только для чтения относятся просмотр списка проектов, описание схем, выполнение запросов к данным и просмотр метрик производительности.

Включить режим только для чтения можно двумя способами:

  • MCP URL по умолчанию (изменяемое согласие): подключитесь к https://mcp.neon.tech/mcp и снимите флажок Allow writes на странице авторизации. Там же можно выбрать один проект и подмножество категорий инструментов.

  • Параметризованный MCP URL (фиксированное согласие): добавьте readonly, projectId и/или category в URL MCP-сервера. Страница авторизации лишь подтверждает такие права и не позволяет их редактировать. Чтобы изменить права, измените URL и пройдите авторизацию заново.

{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?readonly=true"
    }
  }
}

Как работают параметры запроса:

  • Поток с API-ключом: readonly=true — единственный способ включить режим только для чтения (обмен OAuth-скоупами в этом потоке не используется). Изменения URL вступают в силу со следующего запроса.

  • OAuth-поток: projectId, category и readonly в MCP URL образуют фиксированный набор прав, подтверждаемый при авторизации. Расширить readonly=true до записи на этой странице нельзя. После выдачи токена изменение URL не расширяет права этого токена — потребуется повторная авторизация.

При регистрации OAuth-клиента x-read-only задаёт исходное состояние по умолчанию для флажка Allow writes на странице изменяемого согласия. Он не блокирует подтверждение и не урезает права, заданные параметризованным URL с readonly=false. Запросы с API-ключом по-прежнему учитывают x-read-only в каждом запросе, однако параметр запроса readonly имеет более высокий приоритет.

Примечание: режим только для чтения ограничивает набор доступных инструментов. Кроме того, инструмент run_sql остаётся доступным только для запросов на чтение.

Параметры URL для управления доступом

Контекст прав доступа (категории скоупов, ограничение проектом, режим только для чтения) настраивается через параметры строки запроса в URL MCP-сервера. Запросы с API-ключом применяют эти параметры к каждому запросу. OAuth-токены хранят набор прав, подтверждённый или изменённый при авторизации.

ПараметрОписаниеПример
readonlyВключает режим только для чтения (true/false)?readonly=true
categoryОграничивает набор конкретными категориями инструментов (повторением параметра или в формате CSV)?category=querying&category=schema
projectIdОграничивает все операции одним проектом?projectId=proj-123

Пример: режим только для чтения + ограничение проектом:

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

Пример с фильтрацией по категориям (только инструменты querying и schema):

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

Для любой конфигурации можно заранее проверить, какие инструменты будут доступны, с помощью эндпоинта /api/list-tools (аутентификация не требуется):

curl "https://mcp.neon.tech/api/list-tools?readonly=true&category=querying"

Инструменты, доступные в режиме только для чтения

Инструменты хоста: 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.

Сгенерированные инструменты Management API, использующие метод GET и не возвращающие секретов, а также query_logs (POST, только чтение). Точный набор можно посмотреть через /api/list-tools?readonly=true.

Инструменты, требующие прав на запись:

  • Операции записи сгенерированного Management API (create_project, create_branch, delete_project, …)

  • get_connection_string (строка подключения содержит пароль привилегированной роли, поэтому в режиме только для чтения она не выдаётся; скопируйте её в Neon Console)

  • prepare_database_migration, complete_database_migration

  • prepare_query_tuning, complete_query_tuning

Транспорт Server-Sent Events (SSE) (устарел)

MCP поддерживает два транспорта для удалённых серверов: устаревший Server-Sent Events (SSE) и более новый рекомендуемый Streamable HTTP. Если ваш LLM-клиент ещё не поддерживает Streamable HTTP, вы можете сменить эндпоинт с https://mcp.neon.tech/mcp на https://mcp.neon.tech/sse и использовать SSE.

Выполните следующую команду, чтобы добавить Neon MCP Server для всех обнаруженных в рабочем пространстве агентов и редакторов, используя транспорт SSE:

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

Архитектура удалённого сервера

Удалённый сервер работает как приложение Next.js App Router на Vercel по адресу mcp.neon.tech.

Примечание

Корневой путь / перенаправляет на документацию Neon MCP Server. Отдельной лендинг-страницы нет.

Основные компоненты реализации:

  • app/api/[transport]/route.ts: эндпоинт транспорта MCP для Streamable HTTP (/mcp) и SSE (/sse)

  • app/api/authorize/, app/callback/, app/api/token/, app/api/revoke/: эндпоинты OAuth-потока

  • app/.well-known/: эндпоинты метаданных для обнаружения OAuth

  • mcp/: MCP-сервер, инструменты, обработчики, аналитика и интеграция с Sentry

  • lib/: вспомогательные модули, совместимые с Next.js (OAuth, конфигурация, обработка ошибок)

  • mcp/utils/read-only.ts: логика режима только для чтения и обработки скоупов

Руководства

Возможности

Поддерживаемые инструменты

Neon MCP Server предоставляет перечисленные ниже действия, которые доступны MCP-клиентам в виде «инструментов». С их помощью вы можете взаимодействовать со своими проектами и базами данных Neon, используя команды на естественном языке.

Метаданные области действия инструментов

Каждое определение инструмента включает категорию scope, которая используется для фильтрации инструментов на основе разрешений и UX получения согласия. Текущие категории:

  • projects

  • branches

  • endpoints

  • snapshots

  • schema

  • querying

  • neon_auth

  • data_api

  • observability

  • docs

  • functions

  • storage

  • null (инструменты без категории scope)

Примечания:

  • Инструменты Management API происходят из @neon/tools. Селекторы — это пути SDK (projects.list); опубликованные имена MCP начинаются с глагола (list_projects, delete_project, query_logs). Исторические имена сохраняются там, где они уже существовали (describe_project, create_branch, reset_from_parent, compare_database_schema, provision_neon_auth, provision_neon_data_api, list_branch_computes).

  • ?category=branches включает инструменты для веток, ролей и баз данных (list_postgres_roles, create_postgres_database, …). Токен, уже выданный для branches, получает доступ к этим операциям записи. Просмотр compute относится к ?category=endpoints. Восстановление снимков — к ?category=snapshots.

  • Операции записи для участников проекта и разрешений не публикуются. list_project_members и list_project_permissions — это операции чтения.

  • Инструменты схемы (?category=schema) — это host-инструменты get_database_tables и describe_table_schema, а также сгенерированный compare_database_schema.

  • Принудительное применение режима только для чтения по-прежнему опирается на readOnlySafe и серверную логику read-only; scope — это метаданные категории, а не отдельный переключатель чтения/записи.

  • В режиме с областью проекта (?projectId=...) инструменты без пути проекта (list_projects, create_project, list_organizations, list_regions, search, fetch, …) скрыты. delete_project также скрыт.

Управление проектами:

  • list_projects: Перечисляет проекты Neon. limit ограничивает количество возвращаемых элементов.

  • describe_project: Получает проект Neon по id ({ "project_id": "…" }).

  • create_project: Создаёт проект Neon и ожидает готовности compute по умолчанию. Не возвращает строку подключения. Аргументы: { "name": "…", "org_id": "…", "region_id": "…" }. После успешного создания вызовите get_connection_string.

  • delete_project: Удаляет существующий проект Neon. Аргументы: { "project_id": "…" }.

  • list_organizations: Перечисляет все организации, к которым у текущего пользователя есть доступ. При необходимости фильтруйте по имени или ID организации с помощью параметра search.

Управление ветками:

  • list_branches: Перечисляет ветки в проекте. Используйте его, чтобы преобразовать имя ветки в id br-….

  • list_credentials, create_credential, revoke_credential, rotate_credential: Учётные данные с областью ветки для Object Storage и AI Gateway. reveal не является инструментом; ротация заменяет секреты на месте и не является идемпотентной.

  • create_branch: Создаёт ветку с compute для чтения и записи и ожидает её готовности. Не возвращает строку подключения. Аргументы: { "project_id": "…", "name": "feature-x" }. Передайте no_compute: true, чтобы пропустить эндпоинт. После успешного создания вызовите get_connection_string.

  • reset_from_parent: Сбрасывает ветку к текущему HEAD её родителя ({ "project_id": "…", "branch_id": "br-…" }). Отбрасывает записи, сделанные с момента ответвления ветки. preserve_under_name требуется, когда у ветки есть дочерние ветки; эти дочерние ветки перемещаются в новую ветку. Только HEAD родителя; восстановление на точку во времени выполняется через restore_snapshot.

  • delete_branch: Удаляет ветку ({ "project_id": "…", "branch_id": "br-…" }).

  • describe_branch: Получает дерево баз данных, схем, таблиц, представлений и функций в ветке.

  • Сгенерированные инструменты веток принимают branch_id как id ветки (br-...), а не как имя.

  • restore_snapshot: Восстанавливает снимок. Передайте target_branch_id, чтобы восстановить в существующую ветку; опустите его, чтобы создать новую.

Вычислительные эндпоинты (?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

Снимки (?category=snapshots):

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

Схема (?category=schema):

  • get_database_tables, describe_table_schema

  • compare_database_schema: SQL schema diff одной базы данных с другой веткой. database_name обязателен. Если опустить base_branch_id, сравнение выполняется с родителем. Необязательные lsn, timestamp, base_lsn, base_timestamp работают только для точки во времени.

Выполнение SQL-запросов:

  • get_connection_string: Возвращает строку подключения к вашей базе данных.

  • run_sql: Выполняет один SQL-запрос к указанной базе данных Neon. Поддерживает операции чтения и записи.

  • run_sql_transaction: Выполняет серию SQL-запросов в рамках одной транзакции к базе данных Neon.

  • get_database_tables: Перечисляет все таблицы в указанной базе данных Neon.

  • describe_table_schema: Получает определение схемы конкретной таблицы с описанием столбцов, типов данных и ограничений.

Миграции базы данных (изменения схемы):

  • prepare_database_migration: Запускает процесс миграции базы данных. Важно: он создаёт временную ветку, чтобы безопасно применить и протестировать миграцию до воздействия на основную ветку.

  • complete_database_migration: Завершает и применяет подготовленную миграцию базы данных к основной ветке. Это действие объединяет изменения из временной ветки миграции и очищает временные ресурсы.

SQL-запросы и оптимизация:

  • inspect_database: Запускает одну из 15 предопределённых диагностик Postgres только для чтения для ветки — размеры отношений и индексов, использование индексов и последовательного сканирования, активные запросы и блокировки, самые тяжёлые и самые частые запросы, доля попаданий в кэш и размер рабочего набора, оценки autovacuum и bloat, а также состояние репликации. Те же проверки, что и в CLI-команде neon inspect db. Опустите database_name, чтобы охватить все базы данных в ветке; передайте имя, чтобы проверить одну. Четыре из них требуют расширения pg_stat_statements или neon.

  • list_slow_queries: Выявляет узкие места производительности, находя самые медленные запросы в базе данных. Требует расширения pg_stat_statements.

  • explain_sql_statement: Предоставляет подробные планы выполнения SQL-запросов, помогая выявлять узкие места производительности.

  • prepare_query_tuning: Анализирует производительность запросов и предлагает оптимизации, например создание индексов. Создаёт временную ветку для безопасного тестирования этих оптимизаций.

  • complete_query_tuning: Завершает настройку запросов: либо применяет оптимизации к основной ветке, либо отменяет их. Очищает временную ветку настройки.

Neon Auth (?category=neon_auth):

  • provision_neon_auth, get_auth, disable_auth, update_auth_config

  • get_neon_auth_config: host-инструмент; секреты скрыты. Используйте сгенерированные инструменты записи Auth для изменения настроек.

  • 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: Управляют Data API для базы данных ветки.

Поиск и обнаружение:

  • search: Ищет по организациям, проектам и веткам, соответствующим запросу. Возвращает ID, заголовки и прямые ссылки на Neon Console.

  • fetch: Получает подробную информацию о конкретной организации, проекте или ветке по ID (обычно из инструмента search).

Наблюдаемость (?category=observability): эти инструменты требуют Neon Platform Beta и сейчас доступны только для проектов в регионе aws-us-east-2. Ветка без доступа к логам возвращает HTTP 404 с причиной telemetry_not_enabled.

  • query_logs: Запрашивает логи OpenTelemetry для ветки. В Management API это POST; данный сервер обрабатывает его как операцию только для чтения.

  • list_log_fields: Перечисляет поля логов, для которых можно перечислить значения в ветке.

  • list_log_field_values: Перечисляет различные значения поля логов в рамках ветки и временного окна.

Документация и ресурсы (?category=docs):

  • list_docs_resources: Перечисляет все доступные страницы документации Neon, получая индекс из https://neon.com/docs/llms.txt. Возвращает URL страниц и заголовки, которые можно получать по отдельности с помощью инструмента get_doc_resource.

  • get_doc_resource: Получает конкретную страницу документации Neon в виде markdown-содержимого. Сначала используйте инструмент list_docs_resources, чтобы узнать доступные slug страниц, затем передайте slug в этот инструмент.

Функции (?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: триггеры функций по расписанию (type: "schedule", cron-выражение из пяти полей в формате UTC).

Хранилище (?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

Миграции

Миграции — способ управлять изменениями схемы базы данных по мере её развития. Сервер Neon MCP позволяет LLM безопасно выполнять миграции благодаря разделению процесса на отдельные команды: «Start» (prepare_database_migration) и «Commit» (complete_database_migration).

Команда «Start» принимает миграцию и выполняет её в новой временной ветке. По завершении команда подсказывает LLM, что миграцию следует протестировать на этой ветке. Затем LLM может выполнить команду «Commit», чтобы применить миграцию к исходной ветке.

Разработка

В этом проекте используется pnpm в качестве пакетного менеджера, версия зафиксирована через Corepack.

Структура проекта

Код MCP-сервера находится в корне репозитория; это приложение Next.js, развёрнутое на Vercel по адресу mcp.neon.tech.

corepack enable
pnpm install

О том, как добавлять инструменты, читайте в CONTRIBUTING.md. Аргументы инструментов именуются в стиле snake_case.

Локальная разработка

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

Линтинг и проверка типов

pnpm lint
pnpm typecheck

Переменные окружения

Обязательные для работы удалённого сервера:

ПеременнаяОписание
SERVER_HOSTURL сервера (по умолчанию берётся из VERCEL_URL)
UPSTREAM_OAUTH_HOSTURL OAuth-провайдера Neon
CLIENT_IDИдентификатор OAuth-клиента
CLIENT_SECRETСекрет OAuth-клиента
KV_URLURL Vercel KV (Upstash Redis)
OAUTH_DATABASE_URLURL Postgres для хранения токенов

Необязательные:

ПеременнаяОписание
LOG_LEVELУровень логирования Winston: error, warn, info (по умолчанию), debug, verbose, silly
NEON_MCP_DISABLE_ANALYTICSУстановите значение 1, чтобы отключить продуктовую аналитику

Пирамида тестирования

Все тесты запускаются из корня репозитория.

# 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

Стратегия тестирования:

  • Для проверки транспорта/протокола и поведения, видимого пользователю, отдавайте предпочтение E2E-тестам.

  • Интеграционные тесты используйте для проверки детерминированных контрактов инструментов и поведения рабочих процессов.

  • Модульные тесты — для чистой логики и граничных случаев.

  • Не полагайтесь на доступность сторонних сервисов в тестах, блокирующих слияние; имитируйте внешние зависимости на уровнях интеграционных и модульных тестов.

Развёртывание

Vercel автоматически развёртывает удалённый сервер в соответствии с конфигурацией веток репозитория. Для pull request доступны preview-окружения.

Телеметрия

Сервер Neon MCP собирает продуктовую аналитику и отчёты об ошибках, чтобы мы могли лучше понимать характер использования и повышать надёжность:

  • Продуктовая аналитика (Segment): при подключении с аутентифицированной учётной записью сервер отправляет событие identify с идентификатором, именем и адресом электронной почты вашей учётной записи Neon. Также отслеживаются начало сессии (server_init), каждый вызов инструмента (tool_call) и непредвиденные ошибки сервера (server_error). Событие вызова инструмента содержит имя инструмента, способ аутентификации и клиент, но не аргументы инструмента и не результаты запросов. Вызовы инструментов, работающих только с документацией, отслеживаются анонимно, если выполняются без учётной записи. События отправляются на track.neon.tech — собственный аналитический эндпоинт Neon.

  • Отчёты об ошибках (Sentry): непредвиденные ошибки сервера передаются вместе со стек-трейсами и контекстом запроса.

Сбор данных регулируется политикой конфиденциальности Neon. Чтобы отключить аналитику при самостоятельном запуске сервера, установите NEON_MCP_DISABLE_ANALYTICS=1. Этот флаг не отключает Sentry.