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 MCP Server
Neon MCP Server — это инструмент с открытым исходным кодом, который позволяет взаимодействовать с вашими базами данных 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?
[!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:
- Быстрая настройка с помощью 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в свой список разрешенных (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. * рассматривается как запись, если клиент все еще отправляет его.
Режим только для чтения ограничивает доступные инструменты, отключая операции записи, такие как создание проектов, веток или выполнение миграций. Инструменты только для чтения включают список проектов, описание схем, запрос данных и просмотр показателей производительности.
Вы можете установить режим только для чтения двумя способами:
- URL MCP по умолчанию (редактируемое согласие): Подключитесь с
https://mcp.neon.tech/mcpи снимите флажок Разрешить запись на странице авторизации. Вы также можете выбрать один проект и подмножество категорий инструментов там. - Параметризованный 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_migrationprepare_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/: конечные точки потока OAuthapp/.well-known/: конечные точки метаданных обнаружения OAuthmcp/: MCP-сервер, инструменты, обработчики, аналитика и интеграция Sentrylib/: помощники, совместимые с Next.js (OAuth, конфигурация, обработка ошибок)mcp/utils/read-only.ts: обработка режима только для чтения и областей действия
Руководства
- Руководство по Neon MCP Server
- Подключение MCP-клиентов к Neon
- Cursor с Neon MCP Server
- Claude Code с Neon MCP Server
- Claude Desktop с Neon MCP Server
- Cline с Neon MCP Server
- Windsurf с Neon MCP Server
- Zed с Neon MCP Server
Возможности
Поддерживаемые инструменты
Neon MCP Server предоставляет следующие действия, которые представлены как «инструменты» для MCP-клиентов. Вы можете использовать эти инструменты для взаимодействия с вашими проектами и базами данных Neon с помощью команд на естественном языке.
Метаданные области действия инструментов
Определение каждого инструмента включает категорию scope, используемую для фильтрации инструментов на основе грантов и UX согласия. Текущие категории:
projectsbranchesendpointssnapshotsschemaqueryingneon_authdata_apiobservabilitydocsfunctionsstoragenull(инструменты без категории области действия)
Примечания:
- Инструменты 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_schemacompare_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 и фрагментации, а также состояние репликации. Те же проверки, что и команда CLIneon 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_configget_neon_auth_config: хост-инструмент; секреты скрыты. Используйте сгенерированные инструменты записи Auth для изменения настроек.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
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_functionlist_functions_custom_domains,register_functions_custom_domain,delete_functions_custom_domainlist_triggers,get_trigger,create_trigger,update_trigger,delete_trigger: Запланированные триггеры функций (type: "schedule", пятипольный cron в UTC).
Хранилище (?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
Миграции
Миграции — это способ управления изменениями схемы базы данных с течением времени. С 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_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 автоматически развертывает удаленный сервер из конфигурации ветки репозитория. Для запросов на вытягивание доступны предварительные среды.
Телеметрия
Сервер Neon MCP собирает аналитику продукта и отчеты об ошибках, чтобы помочь нам понять использование и повысить надежность:
- Аналитика продукта (Segment): когда вы подключаетесь с аутентифицированной учетной записью, сервер отправляет событие
identifyс вашим идентификатором учетной записи Neon, именем и адресом электронной почты. Он также отслеживает начало сеанса (server_init), каждый вызов инструмента (tool_call) и непредвиденные ошибки сервера (server_error). Событие вызова инструмента включает имя инструмента, метод аутентификации и клиента, но не аргументы инструмента или результаты запроса. Вызовы инструментов только для документации без учетной записи отслеживаются анонимно. События отправляются наtrack.neon.tech, собственную конечную точку аналитики Neon. - Отчеты об ошибках (Sentry): непредвиденные ошибки сервера сообщаются с трассировками стека и контекстом запроса.
Этот сбор данных регулируется Политикой конфиденциальности Neon. Чтобы отключить аналитику при самостоятельном запуске сервера, установите NEON_MCP_DISABLE_ANALYTICS=1. Этот флаг не отключает Sentry.