プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Vedar — Kamchatka travel

作者:tourhabk-uiバージョン 2.10.1i★ –iクラウドで動く
レジストリ名ru.vedarai/mcp

インストール

概要

作者による説明(英語の原文)

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

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: 旅行・地図・天気

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://vedarai.ru/api/mcp

ターミナルでこれを実行します

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

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://vedarai.ru/api/mcp

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。

  • 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. Одна заявка на поездку целиком: тур на дату и/или жильё на даты и/или машина под заказ (трансфер) — одним вызовом, п

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ! 注意

    作者とリポジトリが一致

    公開者(vedarai.ru)がリポジトリの所有者(tourhabk-ui)ではありません。別の人が登録した可能性があります

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • ✓ 合格

    エンドポイントが応答する

    976ミリ秒で応答(HTTP 200)

  • – 対象外

    OAuthでサインイン

    サインイン不要

  • ✓ 合格

    ツールの説明に隠れた指示がない

    24件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした

旅行・地図・天気のほかのサーバーとの比較i

  • このカテゴリのほかの1706件のうち0%よりスターが多い
  • このカテゴリのほかの1706件のうち81%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1706件のうち50%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Vedar — Kamchatka travelは安全ですか?

当てはまる基本チェック3項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(2.10.1)がレジストリに届いたのは8 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:CGC Airport Transfers, Flightaware MCP, Killbottleneck

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

CGC Airport Transfers

作者:cgctransfers.com.au

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

クラウドで動く今日更新
インストール

Flightaware MCP

作者:chrischall

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

パソコンで動く今日更新
インストール

Killbottleneck

作者:tengolabs

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

パソコンで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

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), паркам сети «Вулканы Камчатки» проставлены официальные каналы оформления; карточка парка показывает толь

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く