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-клиента.
-
Node.js (>= v18.0.0): скачайте с nodejs.org.
-
Если включён IP Allow, добавьте
34.192.103.46и23.22.233.166в список разрешённых IP (статические IPmcp.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: Перечисляет ветки в проекте. Используйте его, чтобы преобразовать имя ветки в idbr-…. -
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_HOST | URL сервера (по умолчанию берётся из VERCEL_URL) |
UPSTREAM_OAUTH_HOST | URL OAuth-провайдера Neon |
CLIENT_ID | Идентификатор OAuth-клиента |
CLIENT_SECRET | Секрет OAuth-клиента |
KV_URL | URL Vercel KV (Upstash Redis) |
OAUTH_DATABASE_URL | URL 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.