Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Vedar — Kamchatka travel

de tourhabk-uiversión 2.10.1i★ –iSe ejecuta en la nube
Nombre en el registroru.vedarai/mcp

Instalar

Resumen

Descripción del creador (original en inglés)

Kamchatka, Russia travel: tours, hotels, transfers, volcano status, safety, booking requests

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en la nube
  • Transporte: Streamable HTTP
  • Categoría: Viajes, mapas y clima

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

Necesitas

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Funciona en Claude para web, escritorio y móvil:

  1. Abre Settings → Connectors
  2. Presiona Add custom connector
  3. Pega la dirección de abajo y presiona Add
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Add2https://…3
https://vedarai.ru/api/mcp

Ejecuta esto en tu terminal

claude mcp add --transport http vedarai https://vedarai.ru/api/mcp

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "vedarai": {
      "url": "https://vedarai.ru/api/mcp"
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "vedarai": {
      "type": "http",
      "url": "https://vedarai.ru/api/mcp"
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

ChatGPT solo se conecta a servidores en internet:

  1. Abre ChatGPT en la web → Settings → Connectors (Apps)
  2. Presiona Create o Add (en algunos planes primero hay que activar Developer mode en Advanced)
  3. Pega la dirección de abajo, ponle un nombre y guarda
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Create2https://…3
https://vedarai.ru/api/mcp

Los nombres de los menús pueden variar un poco según el plan y con el tiempo.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Nombres y descripciones de las herramientas tal como los informó el servidor el 6 nov 2026. Los escribió el creador, no nosotros; los mostramos como texto sin formato.

  • get_tours

    Use when the user asks about Kamchatka (Russia) tours: operator tours with prices and dates; live availability via get_tour_availability. One tour in depth: get_tour_details. Получить активные туры из платформы Ведар с ценами и датами. Используй когда турист спрашивает о конкретн

  • get_tour_details

    One Kamchatka tour in depth: program, what is included, what to bring, safety notes. A company or guide name returns a tour list and their page instead. To list or search tours use get_tours. Полные детали КОНКРЕТНОГО тура: описание, программа, точка сбора и логистика (старт/забо

  • get_guardian_context

    Kamchatka safety context for a place or route: hazards, active alerts, advice. For plain facts (type, coordinates) use get_place_info. Получить полный контекст места как Хранитель: статус (открыто/закрыто), реалтайм алерты КБГС РАН, опасности, загрузка, традиционные знания о мест

  • get_place_info

    Kamchatka place facts on record: type, coordinates, altitude, hazards, distance to medical help, satellite comms, MChS registration, tours by company. No live alerts — use get_guardian_context. Найти базовую информацию о месте из базы данных: тип, координаты, ссылка на страницу м

  • get_weather

    Daily weather forecast (Open-Meteo) for a Kamchatka place by name, or for any point by latitude/longitude. Прогноз погоды по дням (Open-Meteo) для места Камчатки по имени или для любой точки по координатам. Без аргументов — Петропавловск-Камчатский; в горах погода другая, поэтому

  • get_volcano_status

    Use when the user asks about Kamchatka volcano activity: KVERT aviation code and KB GS RAS seismicity. No name — all elevated. One place or route: get_guardian_context. Вулканическая активность Камчатки по двум шкалам: авиационный код KVERT (пепел) и сводка сейсмичности КФ ЕГС РА

  • search_accommodations

    Use when the user asks about hotels or accommodation in Kamchatka, Russia: stays from platform partners. To send dates and guests to a stay owner use create_stay_request. Найти жильё на Камчатке (гостиницы, базы, глэмпинг, дома) из платформы Ведар с ценами и адресами. Используй к

  • search_transfers

    Use when the user asks about Kamchatka transfers: whole-vehicle charters (vakhtovka, minibus, jeep), price per vehicle by destination or hour/day, not per seat. Request: request_charter. Трансфер по Камчатке — машина целиком под заказ у перевозчика (вахтовки, микроавтобусы, джипы

  • search_car_rental

    Use when the user wants to rent a car, SUV, 4x4 or minibus in Kamchatka (car rental, car hire): self-drive, price per day, deposit. With a driver: search_transfers. Request: create_car_rental_request. Прокат автомобилей на Камчатке — машина БЕЗ водителя у прокатчиков платформы: в

  • search_gear

    Gear rental in Kamchatka from platform partners. An empty result is normal: the rental shelf may have no partners yet, and the answer says so — do not invent rental shops. Найти прокат туристического снаряжения на Камчатке из платформы Ведар с ценами за сутки. Используй когда тур

  • safety_status

    Kamchatka regional safety status: active alerts (seismic, volcanic, weather, MChS) with their source and dates, plus elevated volcanoes (KVERT, KB GS RAS). Текущая обстановка по Камчатскому краю целиком: активные предупреждения, их количество и тяжесть, у каждого пункта ленты — к

  • make_trip_plan

    Day-by-day Kamchatka trip plan with weather and live availability; returns a plan ID for edit_trip_plan. Собрать план поездки по Камчатке по дням: зоны, активности, честные цены, предупреждения сезона, ориентир цены на человека с разбивкой. Используй, когда туриста интересует «чт

  • edit_trip_plan

    Edit a Kamchatka trip plan from make_trip_plan by its ID: add, remove or move a day, change lodging level, or apply a flight delay the traveller reports; untouched days stay as they were. Изменить план поездки, собранный make_trip_plan, по его ID: добавить день с занятием («добав

  • get_tour_availability

    Use when the user asks if a Kamchatka tour has free seats: live availability by date, free seats and nearest open dates. Then booking via create_booking_request. Свободные даты и места КОНКРЕТНОГО тура из реальной занятости мест. Используй всегда, когда турист спрашивает «когда е

  • compare_tours

    Side-by-side facts for 2-4 Kamchatka tours on what the user cares about: price or group total, duration, dates, inclusions, cancellation, pickup, operator. No ranking; one tour: get_tour_details. Разложить рядом 2–4 КОНКРЕТНЫХ тура по тому, что важно человеку, — фактами из базы,

  • search

    Keyword search across Vedar Kamchatka: operator tours, places, stays, routes; returns up to 10 results with id for fetch, title and canonical url. For live seats use get_tour_availability. Поиск по витрине Ведара для коннекторов ChatGPT: туры операторов Камчатки, места, жильё и м

  • fetch

    Full text of one Vedar Kamchatka record by id from search (tour, place, stay, route): description, price, program, safety facts, canonical url. Published records only. Полный текст одной записи витрины Ведара по id из search (tour: , place: , stay: , route: ): описание, цена и со

  • get_request_status

    Kamchatka request status by key from create_lead, create_booking_request, create_stay_request, request_charter, create_car_rental_request, create_trip_request. No personal data. Состояние заявки, отправленной через create_lead, create_booking_request, create_stay_request, request

  • create_lead

    Tour-selection request for Kamchatka when no tour or date is chosen yet; human-confirmed by a manager, no payment. Needs consent: true, else refused. Whole-vehicle charter: request_charter. Оставить заявку на подбор тура по Камчатке: менеджер платформы свяжется по телефону. Обяза

  • create_booking_request

    Use when the user wants to book a Kamchatka tour on a date: live availability checked first, human-confirmed by the operator, no payment. Needs consent: true. No tour yet — use create_lead. Заявка оператору на конкретный тур и дату. Перед вызовом проверь свободные даты через get_

  • create_stay_request

    Kamchatka stay request: dates and guests go to the owner, human-confirmed by the owner, no payment. Needs consent: true, otherwise refused. For tours use create_booking_request. Заявка владельцу жилья на даты: заезд, выезд, сколько гостей, имя и телефон. Объект — из search_accomm

  • request_charter

    Whole-vehicle (vakhtovka, minibus) request to a Kamchatka charter carrier: destination, dates, group size; human-confirmed by a manager, no payment. Needs consent: true. Prices: search_transfers. Заявка на машину целиком (вахтовка, микроавтобус) у перевозчика «под заказ»: куда, н

  • create_car_rental_request

    Two-step Kamchatka self-drive car rental request: step 1 returns a draft and confirmation code; step 2 only after the person explicitly agrees. Never set consent yourself. Заявка прокатчику на машину без водителя на даты: какая машина, с какого по какое число, где забрать. Машины

  • create_trip_request

    Whole Kamchatka trip in one request: tour + stay + charter vehicle under one trip id; each partner sees the rest. Human-confirmed, no payment. Needs consent: true. Одна заявка на поездку целиком: тур на дату и/или жильё на даты и/или машина под заказ (трансфер) — одним вызовом, п

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ! Precaución

    El creador coincide con el repo

    Quien lo publicó (vedarai.ru) no es el dueño del repo (tourhabk-ui); puede que otra persona lo haya listado

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • ✓ Superada

    El endpoint responde

    Respondió en 976 ms (HTTP 200)

  • – No aplica

    Inicio de sesión con OAuth

    No hace falta iniciar sesión

  • ✓ Superada

    Sin instrucciones ocultas en las descripciones de herramientas

    Leímos 24 descripciones de herramientas y no encontramos instrucciones ocultas para la IA

Comparado con otros en Viajes, mapas y climai

  • Más estrellas que el 0% de los otros 1706 servidores de esta categoría
  • Publicado en el registro más recientemente que el 81% de los otros 1706 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 50% de los otros 1706 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Vedar — Kamchatka travel?

Superó 2 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en la nube del creador. Te conectas por internet sin instalar nada, pero lo que envías pasa por los servidores del creador.

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (2.10.1) llegó al registro hace 8 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.

¿Qué puedo usar en su lugar?

En la misma categoría: CGC Airport Transfers, Flightaware MCP, Killbottleneck

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

CGC Airport Transfers

de cgctransfers.com.au

Fixed-price quotes and bookings for private airport transfers: Gold Coast, Brisbane, Byron Bay.

Se ejecuta en la nubeActualizado hoy
Instalar

Flightaware MCP

de chrischall

Live flight tracking and aviation data via FlightAware AeroAPI (flights, airports, alerts).

Se ejecuta en tu computadoraActualizado hoy
Instalar

Killbottleneck

de tengolabs

Free-to-self-host goal and process maps for humans and AI agents, with REST API and MCP.

Se ejecuta en tu computadoraActualizado hoy
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

Vedar(维达尔)— Ведар, туристическая ОС Камчатки

Платформа полного цикла — от поиска маршрута до экстренной помощи в поле. Ранее известна как TourHab / KamchatourHub / Volcano OS.

[vedarai.ru](https://vedarai.ru) · Next.js 15 · PostgreSQL · TypeScript strict · PWA · Offline-first · AI


Что это

B2C/B2B платформа: туристы ищут маршруты и бронируют туры, операторы управляют предложениями, гиды ведут группы, партнёры сдают жильё и снаряжение. В основе — безопасность: каждое место имеет профиль опасности, реалтайм-статус и привязку к МЧС.

Работает в поле без интернета: офлайн-карты, экстренная страница, инструкции выживания, офлайн-очередь SOS (уходит сам при появлении связи) и QR-эстафета — попутчик сканирует сигнал без сети у обоих, его телефон доставляет SOS из зоны покрытия. Меш-ретрансляция — дополнительный канал, когда у соседа по группе связь осталась. Экстренный ответ не зависит от AI: детерминированный SOS-детектор добавляет телефоны 112/МЧС к ответу любого чата платформы, даже когда AI-конвейер лежит целиком.

MCP-сервер для ИИ-агентов

У Ведара есть публичный MCP-сервер (vedar-mcp): endpoint https://vedarai.ru/api/mcp, транспорт Streamable HTTP (JSON-RPC 2.0), авторизация не требуется. 24 инструмента: туры и их реальная занятость, сравнение 2–4 туров фактами из базы, безопасность мест и маршрутов, погода, жильё, трансферы, прокат машин без водителя, план поездки и его правка, заявки с подтверждением человеком — на подбор, на тур и дату, на вахтовку целой машиной, владельцу жилья, прокатчику на машину, заявка на поездку целиком (тур + жильё + машина одним вызовом). Подробнее: vedarai.ru/mcp · манифест /.well-known/mcp.json · /llms.txt.

В каталогах: официальный реестр MCP — ru.vedarai/mcp (манифест публикации — server.json), Smithery — tourhabk/vedar (npx -y smithery mcp add tourhabk/vedar), Glama — glama.json. Идентификаторы — в lib/mcp/catalogs.ts; их же отдают манифест, /llms.txt и /mcp. Карточка сервера по расширению MCP Server Card — /api/mcp/server-card, каталог домена AI Catalog — /.well-known/ai-catalog.json (lib/mcp/server-card.ts). Тот же агент по A2A: визитки /.well-known/agent-card.json (1.0) и /.well-known/agent.json (0.3), вход /api/a2a; в реестре A2A Registry (a2aregistry.org) — запись 538d68a1-16a1-4e55-af5a-8d672b6f1ac7, регистрация 12.10 (lib/a2a/catalogs.ts). Для агентов без MCP и A2A (GPT Actions, Copilot Studio, OpenAPI-наборы) — описание OpenAPI 3.1 /openapi.json и каталог API по RFC 9727 /.well-known/api-catalog (lib/api/openapi.ts).

Vedar — Kamchatka travel (English). Public MCP server for AI agents: live tours and availability, safety alerts, places, weather, stays, trip plans. Endpoint https://vedarai.ru/api/mcp, Streamable HTTP, no auth.

中文(面向中文 AI 代理与开发者)。 Vedar(维达尔,vedarai.ru,俄文名 Ведар)是俄罗斯堪察加半岛的旅游平台,向 AI 代理开放公共 MCP 服务器:地址 https://vedarai.ru/api/mcp,Streamable HTTP(JSON-RPC 2.0),无需认证,20 个工具:本地旅行社的团队游及其真实余位、地点与路线的安全状况(火山、地震、天气预警)、天气、住宿、装备租赁、接送、行程规划。写操作只有四种申请(create_lead、create_booking_request、create_stay_request、request_charter),均由人工确认,无在线支付。接口返回的名称与说明为俄文,工具参数以俄文或英文为佳。中文页面另列价格、时长与季节。中文页面 vedarai.ru/zh,机器可读说明 /llms.txt,A2A 代理卡片 /.well-known/agent-card.json,OpenAPI 3.1 /openapi.json。接入:通用 MCP 客户端(Qwen Code、Cherry Studio、ModelScope 等)配置 {"mcpServers":{"vedar":{"type":"streamable_http","url":"https://vedarai.ru/api/mcp"}}};DeepSeek Harness(dsh)在面板 dsh-mcp-center 中按 URL 添加(类型 Streamable HTTP,认证 none),或一条命令安装插件 dsh plugin --profile web add github:tourhabk-ui/dsh-vedar(源码在 integrations/dsh-vedar/,一行 @deepseek-ai/dsh-mcp-client 配置);没有 MCP 客户端的模型(DeepSeek、Qwen、Kimi、Doubao、GLM 的 OpenAI 兼容 API)可用零依赖 Python 桥接 integrations/vedar-mcp-bridge/(LLM_API_KEY + LLM_MODEL 即可对话)。豆包电脑版、扣子 3.0、Cherry Studio、Qoder CN(原通义灵码)、Step Code(阶跃星辰)、Trae、Qwen Chat 桌面版(通义千问)、Kimi Code(月之暗面)、智谱 GLM API(chat/completions)的接入步骤见 vedarai.ru/zh(据各平台资料整理,未经实际接入验证,界面可能不同);Trae 一键安装链接(粘贴到浏览器地址栏后回车):trae-cn://trae.ai-ide/mcp-import?type=http&name=vedar&config=eyJ1cmwiOiJodHRwczovL3ZlZGFyYWkucnUvYXBpL21jcCJ9,国际版 trae://trae.ai-ide/mcp-import?type=http&name=vedar&config=eyJ1cmwiOiJodHRwczovL3ZlZGFyYWkucnUvYXBpL21jcCJ9。堪察加紧急电话:112。


Стек

СлойТехнология
FrontendNext.js 15 App Router, TypeScript strict, Tailwind CSS
База данныхPostgreSQL — прямой SQL, без ORM
АутентификацияJWT, role-based middleware
AIWaterfall: 14 провайдеров — OpenRouter · DeepSeek · Gemini · MiMo · GLM · NVIDIA · Groq · Cerebras · Mistral · xAI · YandexGPT · MiniMax · MuseSpark · Anthropic. Плюс Mistral OCR (паспорта маршрутов)
PWAService Worker, Web Push (VAPID), Background Sync, IndexedDB
МешWebRTC P2P (VolcanoMesh) — SOS-ретрансляция между устройствами группы
ДеплойTimeweb Cloud — автодеплой при пуше в main
БотыTelegram + MAX (Kuzmich)

Масштаб

Код — цифры обновляет node scripts/update-readme-stats.mjs; запускает его post-merge.yml после каждого мержа (из CI проверка снята 15.08: устаревшая витрина держала выкладку прода):

МетрикаЗначение
Страниц268
API routes930
UI компонентов292
lib-модулей1412
SQL миграций846 (последняя 1397)
Юнит-тестов26210 в 2284 файлах
GitHub Actions188 workflow

Каталог — перепись GET /api/cron/catalog-census на проде, замер 2026-11-07 (обновляется после каждого мержа; «живые» — видимые и не слитые):

СущностьЖивых
Мест (places)385
Маршрутов (kamchatka_routes)366
Гидов с действующей аттестацией112

places: is_visible = true и merged_into_id IS NULL · kamchatka_routes: is_visible = true и merged_into_id IS NULL · guide_certifications: различных guide_id с is_verified = true и неистёкшим expiry_date


Структура данных

Три сущности — три таблицы:

places           — географический факт: вулкан, озеро, источник

kamchatka_routes — маршрут между точками, трек, сложность operator_tours — коммерческий продукт: цена, слоты, бронь

Безопасность каждого места — location_safety_profile + location_real_time_status. Связь маршрут→точки — route_waypoints.


Офлайн и безопасность в поле

SOS-страховщик поверх всех чатов
  • lib/safety/sos-detector.ts — детерминированный детектор ЧП (8 категорий: заблудился, травма, медведь, лёд, лавина, группа не вернулась, замерзание, бедствие)
  • При признаках беды к ответу ЛЮБОГО чата (веб, стрим на главной, Telegram/MAX, планировщик) добавляются 112, МЧС и совет по ситуации — независимо от модели
/emergency.html — статичная аварийная страница
  • 34 КБ (замер 04.09), нулевые зависимости, OLED-тёмная тема, кэшируется при установке PWA
  • GPS-координаты → скопировать → назвать оператору 112
  • 4 протокола inline: Потерялся · Медведь · Травма · Холодно
/sos — расширенный SOS-экран
  • Отправка сигнала с офлайн-очередью (IndexedDB + Background Sync)
  • VolcanoMesh: WebRTC P2P ретрансляция SOS через группу
  • Спутниковая диктовка — текст для чтения оператору
/safety/offline — инструкции выживания
  • Медведь, вулкан, гипотермия, потерялся, сигнализация, вода — precached
Офлайн-карта
  • Тайлы Камчатки зум 7–9 кэшируются при установке (~8 МБ)
  • Зум 10+ скачивается по маршруту через /offline/manage

AI-агенты

ГруппаПримерыРасписание
БезопасностьSafety Ingest, Watchdog, Rescue, SOS Bridge, KVERT ACCкаждые 5 мин – 6 ч
КонтентEditor, Import Routes, Enrich Routes, Places Enricher22:00–23:00 UTC
РазведкаScout Digest, Scout Innovator, Intelligence, KB Gap, Industry Intel, Legislation Sync07:00–08:00 UTC
ПамятьMemory Reflector, Contradiction Scanner (safety)раз в сутки
КачествоKuzmich Eval (faithfulness: фикстура + живые вопросы туристов), метрика заземления, SSR-сторожеженедельно
БизнесAbandoned Bookings, Payouts, Tour Reminder, Leadsпочасово / 06:00 UTC
БотыKuzmich (Telegram, MAX, Web, Widget)realtime

Loop-агенты (работают с репозиторием, loop engineering):

ПетляТриггерЧто делает
CI SweeperCI упалЧитает лог, чинит: PR-ветка → фикс-коммит; main → hotfix draft-PR
Issue Triageежедневно 21:00 UTCРазмечает тикеты; safety/деньги → владельцу, тривиальные → draft-PR за ночь
Post-Merge Cleanupмерж PRУдаляет смерженные ветки, закрывает issue
Weekly Chronicleтолько вручную (расписание снято 15.10)Хроника недели в .claude/MEMORY.md — межсессионная память агентов

Уровень автономии L2: LLM-петли готовят draft-PR, мержит человек. Деньги и safety петли не решают — приносят владельцу с лейблом needs-owner.

Общая память агентов: каждый агент на старте читает readAgentBriefing() — состояние платформы, историю запусков, must-have контекст туризма на Камчатке.

Реестры: AGENTS.md · docs/AGENTS_BOOK.md


Хабы

ХабПутьРоли
Туристы/hub/tourist/tourist
Операторы/hub/operator/operator
Гиды/hub/guide/guide
Агенты/hub/agent/agent
Жильё/hub/stay/stay-партнёр
Прокат снаряжения/hub/gear/gear-партнёр
Безопасность/hub/safetypublic
Трансфер/hub/transfer/transfer_operator
Рыбалка/hub/fishing/public
Админ/hub/admin/admin

Разработка

Новому разработчику — [`docs/DEVELOPER_GUIDE.md`](./docs/DEVELOPER_GUIDE.md): быстрый старт (миграции с нуля не проигрываются — baseline + хвост), карта репозитория, две дороги туриста по коду, неочевидные механизмы (офлайн-очередь SOS, три планировщика кронов, маркеры), отладка прода. Схема базы — docs/DB_SCHEMA.md, снимается с настоящего PostgreSQL.

npm install

cp .env.example .env.local npm run dev

npm run dev           # dev-сервер

npx tsc --noEmit # type check (0 ошибок) npx vitest run # тесты npm run migrate # миграции локально git push origin main # → Timeweb автодеплой

Ключевые соглашения
  • import { pool } from '@/lib/db-pool' — только named import
  • FROM operator_bookings / FROM operator_tours — не bookings, не tours
  • SQL — только параметризованный ($1, $2), никогда конкатенация
  • Все API routes — Zod-валидация входных данных
  • Цвета — только CSS custom properties (var(--accent), var(--ocean))
  • AI — только через callAIWaterfall() / callAIFast()
  • Критичные факты (безопасность, цены, телефоны, наличие мест) — только из инструментов/БД, самоотчетам модели не верить
  • SELECT * FROM kamchatka_routes — только через v_kamchatka_routes_api

Полные правила: CLAUDE.md


Деплой

Push в main → Timeweb видит пуш → собирает Docker → start.js накатывает миграции → поднимает сервер.

Приложение: Fair Polydeuces на Timeweb Cloud. Репо: tourhabk-ui/pos.

Docker: standalone bundle ≤ 50 МБ, images.unoptimized: true (убирает sharp ~33 МБ).


Последние изменения (июль 2026)

  • Разрешения ООПТ в данных — Кроноцкий заповедник в справочнике parks (заявка + email), паркам сети «Вулканы Камчатки» проставлены официальные каналы оформления; карточка парка показывает толь

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx