Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Kamchatka, Russia travel: tours, hotels, transfers, volcano status, safety, booking requests
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://vedarai.ru/api/mcp터미널에서 이 명령어를 실행하세요
claude mcp add --transport http vedarai https://vedarai.ru/api/mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"vedarai": {
"url": "https://vedarai.ru/api/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"vedarai": {
"type": "http",
"url": "https://vedarai.ru/api/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://vedarai.ru/api/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
도구 이름과 설명은 서버가 2026년 11월 6일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
get_toursUse 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_detailsOne 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_contextKamchatka safety context for a place or route: hazards, active alerts, advice. For plain facts (type, coordinates) use get_place_info. Получить полный контекст места как Хранитель: статус (открыто/закрыто), реалтайм алерты КБГС РАН, опасности, загрузка, традиционные знания о мест
get_place_infoKamchatka 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_weatherDaily weather forecast (Open-Meteo) for a Kamchatka place by name, or for any point by latitude/longitude. Прогноз погоды по дням (Open-Meteo) для места Камчатки по имени или для любой точки по координатам. Без аргументов — Петропавловск-Камчатский; в горах погода другая, поэтому
get_volcano_statusUse 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_accommodationsUse 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_transfersUse 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_rentalUse 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_gearGear 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_statusKamchatka regional safety status: active alerts (seismic, volcanic, weather, MChS) with their source and dates, plus elevated volcanoes (KVERT, KB GS RAS). Текущая обстановка по Камчатскому краю целиком: активные предупреждения, их количество и тяжесть, у каждого пункта ленты — к
make_trip_planDay-by-day Kamchatka trip plan with weather and live availability; returns a plan ID for edit_trip_plan. Собрать план поездки по Камчатке по дням: зоны, активности, честные цены, предупреждения сезона, ориентир цены на человека с разбивкой. Используй, когда туриста интересует «чт
edit_trip_planEdit 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_availabilityUse 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_toursSide-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 КОНКРЕТНЫХ тура по тому, что важно человеку, — фактами из базы,
searchKeyword 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: туры операторов Камчатки, места, жильё и м
fetchFull 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_statusKamchatka 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_leadTour-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_requestUse 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_requestKamchatka 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_charterWhole-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_requestTwo-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_requestWhole 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. Одна заявка на поездку целиком: тур на дату и/или жильё на даты и/или машина под заказ (трансфер) — одним вызовом, п
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
게시자(vedarai.ru)가 저장소 소유자(tourhabk-ui)가 아니에요. 다른 사람이 등록했을 수 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
976ms 만에 응답(HTTP 200)
로그인 필요 없음
도구 설명 24개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 2개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.10.1)은 7일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Signoff
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Платформа полного цикла — от поиска маршрута до экстренной помощи в поле. Ранее известна как 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-сервер (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。
| Слой | Технология |
|---|---|
| Frontend | Next.js 15 App Router, TypeScript strict, Tailwind CSS |
| База данных | PostgreSQL — прямой SQL, без ORM |
| Аутентификация | JWT, role-based middleware |
| AI | Waterfall: 14 провайдеров — OpenRouter · DeepSeek · Gemini · MiMo · GLM · NVIDIA · Groq · Cerebras · Mistral · xAI · YandexGPT · MiniMax · MuseSpark · Anthropic. Плюс Mistral OCR (паспорта маршрутов) |
| PWA | Service 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 routes | 930 |
| UI компонентов | 292 |
| lib-модулей | 1412 |
| SQL миграций | 846 (последняя 1397) |
| Юнит-тестов | 26210 в 2284 файлах |
| GitHub Actions | 188 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.
lib/safety/sos-detector.ts — детерминированный детектор ЧП (8 категорий: заблудился, травма, медведь, лёд, лавина, группа не вернулась, замерзание, бедствие)/emergency.html — статичная аварийная страница/sos — расширенный SOS-экран/safety/offline — инструкции выживания/offline/manage| Группа | Примеры | Расписание |
|---|---|---|
| Безопасность | Safety Ingest, Watchdog, Rescue, SOS Bridge, KVERT ACC | каждые 5 мин – 6 ч |
| Контент | Editor, Import Routes, Enrich Routes, Places Enricher | 22:00–23:00 UTC |
| Разведка | Scout Digest, Scout Innovator, Intelligence, KB Gap, Industry Intel, Legislation Sync | 07: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 Sweeper | CI упал | Читает лог, чинит: 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/safety | public |
| Трансфер | /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 importFROM operator_bookings / FROM operator_tours — не bookings, не tours$1, $2), никогда конкатенацияvar(--accent), var(--ocean))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 МБ).
parks (заявка + email), паркам сети «Вулканы Камчатки» проставлены официальные каналы оформления; карточка парка показывает толь앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요