Neon

официальный

Взаимодействие с бессерверной платформой Postgres Neon

Что можно делать с Neon MCP?

  • Создание и управление проектами — Запросите создание новой базы данных Postgres, просмотрите существующие проекты или удалите один из них с помощью create_project или list_projects.
  • Выполнение SQL-запросов и транзакций — Выполняйте одиночные или множественные SQL-запросы к базе данных, включая запись, с помощью run_sql или run_sql_transaction.
  • Проверка и оптимизация производительности — Выявляйте медленные запросы, получайте планы выполнения или запускайте диагностику, например, коэффициент попадания в кэш, через list_slow_queries, explain_sql_statement или inspect_database.
  • Безопасная миграция схем — Начните миграцию на временной ветке, протестируйте её, затем зафиксируйте в основной ветке с помощью prepare_database_migration и complete_database_migration.
  • Изучение структуры базы данных — Просматривайте таблицы, описывайте схемы столбцов или сравнивайте схемы между ветками с помощью get_database_tables, describe_table_schema или compare_database_schema.

Размещённый MCP-сервер

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

Устанавливается в Claude Code, Codex, Cursor и другие

Документация

Neon Logo fallback

Neon MCP Server

Install MCP Server in Cursor Add to Kiro

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

License: MIT

Протокол 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?

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

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

Для получения дополнительной информации см. Руководство по безопасности MCP →.

Настройка Neon MCP Server

Существует несколько вариантов настройки Neon MCP Server:

  1. Быстрая настройка с помощью API-ключа (Cursor, VS Code и Claude Code): Запустите neon@latest init, чтобы автоматически настроить MCP-сервер Neon, навыки агента и расширение VS Code одной командой.
  2. Удаленный MCP-сервер (аутентификация на основе OAuth): Подключитесь к управляемому MCP-серверу Neon, используя OAuth для аутентификации. Этот метод более удобен, так как устраняет необходимость управления API-ключами. Кроме того, вы автоматически будете получать последние функции и улучшения сразу после их выпуска.
  3. Удаленный 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 в свой список разрешенных (mcp.neon.tech статические IP-адреса).

Для разработки вам понадобится 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 в клиенте.

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

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, чтобы добавить Neon MCP Server в глобальный список 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. Затем выполните следующую команду, чтобы добавить Neon MCP Server для всех обнаруженных агентов и редакторов в вашем рабочем пространстве:

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. * рассматривается как запись, если клиент все еще отправляет его.

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

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

  1. URL MCP по умолчанию (редактируемое согласие): Подключитесь с https://mcp.neon.tech/mcp и снимите флажок Разрешить запись на странице авторизации. Вы также можете выбрать один проект и подмножество категорий инструментов там.
  2. Параметризованный URL MCP (фиксированное согласие): Поместите 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 в URL MCP — это фиксированный грант, подтвержденный при авторизации. readonly=true не может быть расширен до записи на этой странице. После выпуска токена изменение URL не расширяет этот токен; авторизуйтесь снова.

Для регистрации OAuth x-read-only является начальным значением по умолчанию «Разрешить запись» для редактируемого согласия. Он не блокирует подтверждение и не уменьшает параметризованный URL, который включает readonly=false. Запросы с API-ключом по-прежнему учитывают x-read-only для каждого запроса, ниже параметра запроса readonly.

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

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

Контекст гранта (категории областей действия, ограничение проекта, режим только для чтения) настраивается через параметры запроса 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"
    }
  }
}

Пример фильтрации по категориям (только инструменты запросов и схемы):

{
  "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.

[!NOTE] Корневой путь / перенаправляет на документацию 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 (инструменты без категории области действия)

Примечания:

  • Инструменты 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, получает эти операции записи. Перечисление вычислений — это ?category=endpoints. Восстановление из снимка — это ?category=snapshots.
  • Операции записи для участников проекта и разрешений не публикуются. list_project_members и list_project_permissions — операции чтения.
  • Инструменты схемы (?category=schema) — это хост-инструменты get_database_tables и describe_table_schema, а также сгенерированные compare_database_schema.
  • Принудительное соблюдение режима «только чтение» по-прежнему опирается на readOnlySafe и серверную логику «только чтение»; scope — это метаданные категории, а не отдельный переключатель чтения/записи.
  • В режиме области проекта (?projectId=...) инструменты без пути проекта (list_projects, create_project, list_organizations, list_regions, search, fetch, …) скрыты. delete_project также скрыт.

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

  • list_projects: Перечисляет проекты Neon. limit ограничивает количество возвращаемых элементов.
  • describe_project: Получает проект Neon по идентификатору ({ "project_id": "…" }).
  • create_project: Создает проект Neon и ожидает готовности вычислительного ресурса по умолчанию. Не возвращает строку подключения. Аргументы: { "name": "…", "org_id": "…", "region_id": "…" }. Вызовите get_connection_string после успешного завершения.
  • delete_project: Удаляет существующий проект Neon. Аргументы: { "project_id": "…" }.
  • list_organizations: Перечисляет все организации, к которым имеет доступ текущий пользователь. При необходимости можно отфильтровать по имени или идентификатору организации с помощью параметра поиска.

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

  • list_branches: Перечисляет ветки в проекте. Используйте его, чтобы преобразовать имя ветки в идентификатор br-….
  • list_credentials, create_credential, revoke_credential, rotate_credential: Учетные данные для ветки для Object Storage и AI Gateway. reveal — не инструмент; ротация заменяет секреты на месте и не является идемпотентной.
  • create_branch: Создает ветку с вычислительным ресурсом чтения-записи и ожидает ее готовности. Не возвращает строку подключения. Аргументы: { "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 как идентификатор ветки (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-дифф схемы одной базы данных относительно другой ветки. Требуется 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 и фрагментации, а также состояние репликации. Те же проверки, что и команда 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: хост-инструмент; секреты скрыты. Используйте сгенерированные инструменты записи 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: Выполняет поиск по организациям, проектам и веткам, соответствующим запросу. Возвращает идентификаторы, заголовки и прямые ссылки на консоль Neon.
  • fetch: Получает подробную информацию о конкретной организации, проекте или ветке по идентификатору (обычно из инструмента поиска).

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

  • query_logs: Запрашивает журналы OpenTelemetry для ветки. POST в Management API; этот сервер обрабатывает его как операцию только для чтения.
  • 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, чтобы найти доступные слаги страниц, затем передайте слаг в этот инструмент.

Функции (?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 server 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 автоматически развертывает удаленный сервер из конфигурации ветки репозитория. Для запросов на вытягивание доступны предварительные среды.

Телеметрия

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

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

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