Vedar MCP
An official MCP server for the Vedar Kamchatka travel information portal, allowing AI agents to access real-time tour availability, accommodation, transfers, weather, volcano status, and safety alerts for the Kamchatka region. It supports booking requests that are confirmed by human operators, without direct online payment processing.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://vedarai.ru/api/mcpWhat its tools do
24 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (16)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to vedarai.ru ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for tours with prices and live availability
- Check volcano activity and weather forecasts
- Find accommodation and transfer options
- Submit booking requests for tours or stays
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- vedar-mcp 2.10.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 24 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
24 advertised
get_tours — Tour catalogue
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. Получить активные туры из платформы Ведар с ценами и датами. Используй когда турист спрашивает о конкретных турах или программах. У каждого тура — компания; порядок — правило платформы, названное в ответе (сначала со свободными местами по ближайшей дате, остальные раз в сутки по жребию), а не рекомендация.
{
"type": "object",
"required": [],
"properties": {
"page": {
"type": "string",
"examples": [
"2"
],
"description": "Catalogue page, 7 tours each, starting at 1; the reply ends with the page count and the next page. Страница каталога по 7 туров, с 1. В конце ответа сказано, сколько страниц и какая следующая."
},
"activity_type": {
"type": "string",
"examples": [
"вулканы"
],
"description": "Activity filter, free text (Russian works best): fishing, volcanoes, bears, geysers, trekking. Matches the activity type and the word in the tour title, place, short description or main place; tours that have the word only in the full description or programme come in a separate unverified block (check them with get_tour_details); company and guide names are not searched. Фильтр по типу: рыбалка, вулканы, медведи, гейзеры, трекинг и т.д. Ищет вид отдыха и слово в названии, месте, кратком описании и главном месте тура, а отдельным блоком «не проверено» даёт туры, где слово есть только в полном описании или программе (что это за упоминание, уточни через get_tour_details); имена компаний и гидов не ищет."
}
}
}{
"title": "Tour catalogue",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_tour_details — 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. Полные детали КОНКРЕТНОГО тура: описание, программа, точка сбора и логистика (старт/забор), что входит и не входит, что взять с собой. Используй ВСЕГДА, когда турист спрашивает про конкретный тур — что там по программе, откуда стартуют, где сбор, что взять. Не выдумывай эти детали сам — бери отсюда. Назвал компанию или гида, продающих туры, — ответ: список туров и адрес их страницы, а не один тур (имя из общих слов или только часть имени — в списке и туры других компаний по тем же словам). Совпала только часть слов запроса — ответ так и говорит и даёт список: не называй эти туры подходящими.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"examples": [
"рыбалка"
],
"description": "Tour title, numeric ID, a keyword, or the name of a company or guide selling tours (the reply then lists tours and their page, not one tour). Название тура, номер, ключевое слово или имя компании либо гида — так, как назвал человек"
}
}
}{
"title": "Tour details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_guardian_context — Place safety
Kamchatka safety context for a place or route: hazards, active alerts, advice. For plain facts (type, coordinates) use get_place_info. Получить полный контекст места как Хранитель: статус (открыто/закрыто), реалтайм алерты КБГС РАН, опасности, загрузка, традиционные знания о месте. Используй ВСЕГДА когда спрашивают о конкретном месте, вулкане, озере, маршруте, источнике Камчатки.
{
"type": "object",
"required": [
"place"
],
"properties": {
"place": {
"type": "string",
"examples": [
"Авачинский вулкан"
],
"description": "Place or route name. Название места или объекта"
}
}
}{
"title": "Place safety",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_place_info — 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_guardian_context.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"examples": [
"Курильское озеро"
],
"description": "Place name. Название объекта"
}
}
}{
"title": "Place info",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_weather — Weather
Daily weather forecast (Open-Meteo) for a Kamchatka place by name, or for any point by latitude/longitude. Прогноз погоды по дням (Open-Meteo) для места Камчатки по имени или для любой точки по координатам. Без аргументов — Петропавловск-Камчатский; в горах погода другая, поэтому место лучше назвать.
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "string",
"examples": [
"52.45"
],
"description": "Latitude in decimal degrees; use together with lng. Coordinates take precedence over place. Широта в градусах — из вопроса человека или из ответа другого инструмента. Вместе с lng; координаты главнее названия."
},
"lng": {
"type": "string",
"examples": [
"158.19"
],
"description": "Longitude in decimal degrees; use together with lat. Долгота в градусах — оттуда же, откуда широта. Вместе с lat."
},
"days": {
"type": "string",
"examples": [
"3"
],
"description": "Forecast days, 1–7; default 3. Сколько дней прогноза, 1–7; по умолчанию 3."
},
"place": {
"type": "string",
"examples": [
"Мутновский"
],
"description": "Place name from the platform directory (Russian works best). Название места так, как его назвал человек; ищется в справочнике платформы."
}
}
}{
"title": "Weather",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_volcano_status — 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 (пепел) и сводка сейсмичности КФ ЕГС РАН. Без названия — вулканы, повышенные хотя бы по одной шкале; с названием — этот вулкан по обеим. Для безопасности конкретного места и маршрута — get_guardian_context.
{
"type": "object",
"required": [],
"properties": {
"volcano": {
"type": "string",
"examples": [
"Ключевской"
],
"description": "Volcano name; empty — all volcanoes elevated on either scale. Название вулкана так, как его назвал человек. Пусто — все повышенные."
}
}
}{
"title": "Volcano status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_accommodations — Stays
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. Найти жильё на Камчатке (гостиницы, базы, глэмпинг, дома) из платформы Ведар с ценами и адресами. Используй когда турист спрашивает где остановиться, переночевать, снять жильё.
{
"type": "object",
"required": [],
"properties": {
"type": {
"type": "string",
"examples": [
"hotel"
],
"description": "Stay type: hotel, hostel, guesthouse, glamping, apartment, cottage. Тип жилья: hotel, hostel, guesthouse, glamping, apartment, cottage"
},
"zone": {
"type": "string",
"examples": [
"Паратунка"
],
"description": "Area or town name. Зона расположения — город, долина или курорт, как их назвал человек"
},
"price_max": {
"type": "string",
"examples": [
"8000"
],
"description": "Maximum price per night, RUB. Максимальная цена за ночь в рублях"
}
}
}{
"title": "Stays",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_transfers — 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. Трансфер по Камчатке — машина целиком под заказ у перевозчика (вахтовки, микроавтобусы, джипы): прайс по направлениям или за час и за день работы машины, цена за машину целиком, не за место. Используй, когда турист спрашивает, как доехать, есть ли трансфер или заброска, сколько стоит вахтовка, микроавтобус или джип к вулкану, источникам, озеру, в аэропорт. Места в машине платформа не продаёт: дату и направление задаёт заказчик, машину с перевозчиком подтверждает менеджер Ведара, расчёт — напрямую с перевозчиком. Рейсов, свободных мест и цен, которых нет в ответе, не выдумывай.
{
"type": "object",
"required": [],
"properties": {
"place": {
"type": "string",
"examples": [
"Горелый"
],
"description": "Destination or origin keyword; empty — the whole price list. Куда или откуда — слово из вопроса человека: вулкан, озеро, река, посёлок; без него — весь прайс"
}
}
}{
"title": "Transfers",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_car_rental — 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. Прокат автомобилей на Камчатке — машина БЕЗ водителя у прокатчиков платформы: внедорожники, микроавтобусы, вездеходы; цена за сутки за машину по прайсу, залог, условия прокатчика; у части машин водитель возможен по желанию за отдельную плату. Используй ВСЕГДА, когда турист хочет арендовать или взять напрокат машину, авто, автомобиль, джип, внедорожник, 4x4, микроавтобус, вездеход, «rent a car», «car rental», «car hire», «SUV», спрашивает цену за сутки или залог — сначала этот поиск, не сторонние прокаты и не догадки. Машину за туриста не бронирует: заявка — формой на странице прокатчика, подтверждает менеджер Ведара, расчёт — напрямую с прокатчиком. Машин, цен и условий, которых нет в ответе, не выдумывай. Машина с водителем целиком — это трансфер, search_transfers.
{
"type": "object",
"required": [],
"properties": {
"type": {
"enum": [
"car",
"suv",
"minibus",
"offroad_truck",
"vahtovka"
],
"type": "string",
"examples": [
"suv"
],
"description": "Body type if known: car, suv (SUV/4x4), minibus, offroad_truck, vahtovka. Вид кузова, если известен: car — легковая, suv — внедорожник/4x4, minibus — микроавтобус, offroad_truck — вездеход, vahtovka — вахтовка"
},
"query": {
"type": "string",
"examples": [
"внедорожник"
],
"description": "A word about the car: body type (SUV, minibus, off-road truck), model, or \"with driver\"; empty — the whole price list. Слово о машине из вопроса — вид (внедорожник, микроавтобус, вездеход), модель или «с водителем»; без него — весь прайс. Слова «аренда», «прокат», «rent a car» можно не убирать"
},
"date_to": {
"type": "string",
"examples": [
"2026-11-14"
],
"description": "Rental end, YYYY-MM-DD. Конец проката, YYYY-MM-DD"
},
"date_from": {
"type": "string",
"examples": [
"2026-11-10"
],
"description": "Rental start, YYYY-MM-DD: used to count days and the price-list total; the provider confirms availability. Начало проката, YYYY-MM-DD — для расчёта суток и суммы по прайсу"
}
}
}{
"title": "Car rental",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_gear — Gear rental
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. Найти прокат туристического снаряжения на Камчатке из платформы Ведар с ценами за сутки. Используй когда турист спрашивает где арендовать/взять напрокат снаряжение: палатку, спальник, треккинговые палки, рюкзак, кошки, газовую горелку и т.д. Пустая выдача — норма: прокатов на платформе пока может не быть вовсе, ответ так и скажет; адреса прокатов не выдумывай.
{
"type": "object",
"required": [],
"properties": {
"query": {
"type": "string",
"examples": [
"палатка"
],
"description": "What to rent: tent, sleeping bag, trekking poles, a brand. Что ищут — вещь или бренд, как их назвал человек"
},
"category": {
"type": "string",
"description": "Gear category, if known. Категория снаряжения (если известна)"
},
"price_max": {
"type": "string",
"examples": [
"1500"
],
"description": "Maximum price per day, RUB. Максимальная цена за сутки в рублях"
}
}
}{
"title": "Gear rental",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}safety_status — Regional safety status
Kamchatka regional safety status: active alerts (seismic, volcanic, weather, MChS) with their source and dates, plus elevated volcanoes (KVERT, KB GS RAS). Текущая обстановка по Камчатскому краю целиком: активные предупреждения, их количество и тяжесть, у каждого пункта ленты — когда он появился и до какого числа стоит в ленте, вулканы с повышенной активностью (KVERT, КФ ЕГС — отдельная шкала), свежесть данных и источник верхнего предупреждения (ленты: КБГС РАН и ЕГС РАН — сейсмика, USGS, МЧС по Камчатскому краю, Росгидромет — погода, NASA FIRMS — пожары). Используй, когда спрашивают, безопасно ли сейчас ехать или что происходит в крае. Для конкретного места используй get_guardian_context.
{
"type": "object",
"required": [],
"properties": {}
}{
"title": "Regional safety status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}make_trip_plan — Trip plan
Day-by-day Kamchatka trip plan with weather and live availability; returns a plan ID for edit_trip_plan. Собрать план поездки по Камчатке по дням: зоны, активности, честные цены, предупреждения сезона, ориентир цены на человека с разбивкой. Используй, когда туриста интересует «что посмотреть за N дней», «составь маршрут/план поездки», «как спланировать неделю на Камчатке». Ответ содержит ссылку на страницу готового плана с турами и заявкой оператору. Ответ несёт ID плана: добавить день, убрать или переставить день, сменить уровень жилья, учесть задержку рейса — через edit_trip_plan с этим ID, остальные дни не меняются. Другие даты, длительность или состав группы — вызови make_trip_plan снова с прежними аргументами плюс изменение.
{
"type": "object",
"required": [],
"properties": {
"days": {
"type": "string",
"examples": [
"7"
],
"description": "Trip length in days, 3–21; default 7. Сколько дней поездка (число, 3–21). Не сказано — 7."
},
"when": {
"type": "string",
"examples": [
"2027-07-10"
],
"description": "When the trip starts: a Russian month name or YYYY-MM-DD; season decides what is possible in Kamchatka. Default is one month from today. Когда поездка: месяц («июль», «в августе») или дата YYYY-MM-DD. Сезон на Камчатке решает всё — если турист назвал месяц, передай его обязательно. Не сказано — через месяц от сегодня."
},
"adults": {
"type": "string",
"examples": [
"2"
],
"description": "Number of adults, 1–30; default 2, and the answer says it was assumed. Сколько взрослых (1–30), если турист сказал. Не сказано — считаю двоих и говорю об этом в ответе."
},
"children": {
"type": "string",
"examples": [
"6, 10"
],
"description": "Age of each child in years — NOT a count: two children aged 6 and 10 → \"6, 10\" or \"6 years, 10 years\"; one child aged 2 → \"2 years\"; a baby under one → \"0 years\". A single bare number is ambiguous (one child's age or how many children?) and returns a refusal with no plan. The youngest age decides which activities are allowed: if you only know how many children, ask the person for each age. No children — omit the field. Возраст каждого ребёнка в годах — не число детей: двое детей 6 и 10 лет → «6, 10» или «6 лет, 10 лет»; один ребёнок 2 лет → «2 года»; ребёнок до года → «до года». Одно число без «лет» неоднозначно (возраст одного ребёнка или число детей?) — план не собирается, придёт вопрос. От возраста младшего зависят допуски активностей: знаешь только, сколько детей, — спроси возраст каждого. Детей нет — не передавай."
},
"interests": {
"type": "string",
"examples": [
"вулканы и медведи"
],
"description": "Interests in free text. Интересы туриста своими словами: «вулканы и медведи», «рыбалка», «море и термальные»"
},
"rest_days": {
"type": "string",
"examples": [
"1"
],
"description": "Rest days to add, 0–14; a weather reserve day is added separately when needed. Сколько дней отдыха вставить в план (0–14), если турист сказал. Резерв на нелётную погоду планер добавит сам."
},
"budget_tier": {
"type": "string",
"examples": [
"economy"
],
"description": "Budget level: economy, comfort or premium; default comfort. Уровень бюджета: «эконом», «комфорт» или «премиум» (economy/comfort/premium). Не сказано — «комфорт»."
},
"travel_style": {
"type": "string",
"examples": [
"self"
],
"description": "How the traveller wants to go: self (no guide, only where our safety data allows), operator (operator tours) or mixed; default mixed. Как турист хочет ехать: «сам» (без гида — только там, где это безопасно), «с оператором» (туры операторов) или «вперемешку». Не сказано — вперемешку."
}
}
}{
"title": "Trip plan",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}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: добавить день с занятием («добавь день рыбалки»), убрать день, переставить день, сменить уровень жилья («замени жильё на базу», «подешевле»), учесть задержку рейса («рейс задержали на два дня» — flight_delay). Дни, которых правка не касается, не меняются. Невозможная правка (день прилёта, занятие не по возрасту детей, движок не нашёл выхода) — отказ с причиной, план остаётся прежним. План хранится 7 дней; нет плана — сначала make_trip_plan.
{
"type": "object",
"required": [
"plan_id",
"action"
],
"properties": {
"day": {
"type": "string",
"examples": [
"3"
],
"description": "Day number in the plan, for remove_day and move_day. Номер дня в плане — для remove_day и move_day."
},
"action": {
"type": "string",
"examples": [
"add_day"
],
"description": "add_day, remove_day, move_day, set_lodging or flight_delay. Что сделать: add_day (добавить день с занятием), remove_day (убрать день), move_day (переставить день), set_lodging (уровень жилья), flight_delay (рейс задержан — турист сказал сам)."
},
"to_day": {
"type": "string",
"examples": [
"2"
],
"description": "New position of the day, for move_day. Новое место дня — для move_day."
},
"lodging": {
"type": "string",
"examples": [
"economy"
],
"description": "Lodging level for set_lodging: economy, comfort or premium. Уровень жилья для set_lodging: «эконом» (базы, хостелы, палатки), «комфорт» (гостиницы, апартаменты), «премиум» (лоджи)."
},
"plan_id": {
"type": "string",
"description": "Plan ID from the make_trip_plan answer. Идентификатор плана (ID) из ответа make_trip_plan."
},
"interest": {
"type": "string",
"examples": [
"рыбалка"
],
"description": "Activity for add_day, free text (Russian works best). Занятие для add_day своими словами: «рыбалка», «вулканы», «сплав»."
},
"delay_days": {
"type": "string",
"examples": [
"2"
],
"description": "For flight_delay: how many days the arrival flight is delayed, 1–7. На сколько дней задержан рейс прилёта (1–7) — для flight_delay."
},
"keep_return": {
"type": "string",
"examples": [
"yes"
],
"description": "For flight_delay: yes keeps the return date and shortens the trip (default); no shifts the whole trip. Для flight_delay: «да» — обратный билет прежний, поездка короче (по умолчанию); «нет» — обратный билет переносится, вся поездка сдвигается."
}
}
}{
"title": "Edit trip plan",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_tour_availability — 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. Свободные даты и места КОНКРЕТНОГО тура из реальной занятости мест. Используй всегда, когда турист спрашивает «когда есть места», «свободно ли на дату», «на какие даты можно» — не называй даты и места по памяти, только отсюда. Если в окне мест нет, ответ называет ближайшую свободную дату после окна (в пределах года) и, если окно начинается не с сегодня, — раньше окна.
{
"type": "object",
"required": [
"tour"
],
"properties": {
"days": {
"type": "string",
"examples": [
"14"
],
"description": "Window length in days, 1–31; default 14. Окно в днях (1–31). Не сказано — 14."
},
"tour": {
"type": "string",
"description": "Tour title, keyword or numeric ID from get_tours. A company or guide name returns their tour list without dates — then ask by tour ID. Название тура, ключевое слово или числовой ID. Имя компании или гида — ответ список их туров без дат: даты смотри по номеру тура."
},
"people": {
"type": "string",
"examples": [
"2"
],
"description": "Number of travellers, 1–30. When given, each date shows the full booking total — the same calculation the booking itself uses; if the window has no seats, the nearest date with seats for all of them. Сколько человек (1–30). Дано — к каждой дате итоговая сумма поездки, тем же расчётом, что при оформлении заявки; если в окне мест нет — ближайшая дата, где мест хватит на всех."
},
"date_from": {
"type": "string",
"examples": [
"2027-07-15"
],
"description": "Start of the window, YYYY-MM-DD; default today. С какой даты смотреть, YYYY-MM-DD. Не сказано — с сегодня."
}
}
}{
"title": "Tour availability",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_tours — 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 КОНКРЕТНЫХ тура по тому, что важно человеку, — фактами из базы, строкой на каждый тур: цена (с числом людей — итог тем же расчётом, что у get_tour_availability), длительность, группа, сложность, сезон, программа, что входит и не входит, условия отмены, как попасть на тур, оператор и его проверка, ближайшая свободная дата. Туры — номерами через запятую (надёжнее) или названиями через «;»; порядок туров в ответе — как их назвал человек. Оценок нет: у строки только «одинаково», «отличается» или «не сравнить» (у кого-то не записано); лучший тур не называй — выбирает человек. Название подходит турам разных компаний или это имя продавца — сравнения нет, в ответе номера: спроси человека. Тур не с витрины в сравнение не берётся.
{
"type": "object",
"required": [
"tours"
],
"properties": {
"tours": {
"type": "string",
"examples": [
"61, 70"
],
"description": "Two to four tours in the order the user named them: numeric IDs separated by commas (most reliable) or titles separated by semicolons. Два–четыре тура в том порядке, как назвал человек: номера через запятую («61, 70») — надёжнее; названия — через «;». Номера — из get_tours, get_place_info, get_tour_details."
},
"people": {
"type": "string",
"examples": [
"2"
],
"description": "Number of travellers, 1-30: the price row then shows the full total for all of them, the same calculation as get_tour_availability, and the nearest-date row the first date with seats for all of them. The tool picks the date of the total and names it per tour: the first date with seats for all of them, or the first date open for a request (tours without a schedule); a total on a date the user named comes from get_tour_availability with date_from and people. Сколько человек (1–30). Дано — в строке «цена» итог за всех тем же расчётом, что у get_tour_availability, а в строке «ближайшая дата» — первая дата, где мест хватит на всех. Дату итога выбирает инструмент и называет её у каждого тура: первая, где мест хватит на всех, или первая дата для заявки (у тура без расписания); итог на дату, которую назвал человек, — get_tour_availability с date_from и people."
},
"criteria": {
"type": "string",
"examples": [
"цена, отмена"
],
"description": "What matters to the user, comma-separated, Russian or English: price, duration, group, difficulty, season, program, included, not included, cancellation, pickup, operator, nearest date; empty means a short default set. Что важно человеку, через запятую: цена, длительность, группа, сложность, сезон, программа, что входит, что не входит, отмена, подвоз, оператор, ближайшая дата. Не сказано — короткий набор: цена, длительность, ближайшая дата, сложность, подвоз, отмена, оператор."
}
}
}{
"title": "Compare tours",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search — Search (ChatGPT connector)
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: туры операторов Камчатки, места, жильё и маршруты по словам запроса (русский или английский). Отдаёт до 10 результатов с id для fetch, названием и адресом страницы. Для живой занятости тура и обстановки есть get_tour_availability и safety_status.
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"examples": [
"Курильское озеро медведи"
],
"description": "Search words, 2–200 characters; Russian or English. Слова запроса, от 2 до 200 символов, по-русски или по-английски."
}
}
}{
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор документа для fetch: tour:<id>, place:<slug>, stay:<uuid>, route:<slug>"
},
"url": {
"type": "string",
"description": "Каноническая страница на vedarai.ru — для цитаты"
},
"title": {
"type": "string",
"description": "Название для человека"
}
}
}
}
}
}{
"title": "Search (ChatGPT connector)",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fetch — Fetch (ChatGPT connector)
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:<id>, place:<slug>, stay:<uuid>, route:<slug>): описание, цена и состав тура, факты о месте и его опасностях, жильё, маршрут. У места отдаёт все предложения туров к нему с компанией у каждого; порядок — правило платформы, названное в ответе. Только опубликованное; записи, которой нет на витрине, — отказ с объяснением.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"examples": [
"tour:12"
],
"description": "Record id from search: tour:<id>, place:<slug>, stay:<uuid> or route:<slug>. Идентификатор записи из search: tour:<id>, place:<slug>, stay:<uuid> или route:<slug>."
}
}
}{
"type": "object",
"required": [
"id",
"title",
"text",
"url"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string",
"description": "Каноническая страница на vedarai.ru"
},
"text": {
"type": "string",
"description": "Полный текст записи"
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"description": "Род записи и факты: kind, price, duration, season…"
}
}
}{
"title": "Fetch (ChatGPT connector)",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_request_status — 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_charter, create_car_rental_request или create_trip_request (ключи частей поездки), по ключу статуса из ответа того инструмента: ждёт оператора, оператор связался, подтверждена, отказ, другая дата, нет ответа. Заявка на жильё — кому передана (delivered). partner_replies — сколько адресат заявки написал в переписке (без текста). Без имени и телефона. Ключ выдаётся на каждую заявку и живёт 90 дней; без ключа состояние не узнать — номера заявок не называются. В ответе есть page — страница заявки для человека: там он сам подтверждает согласие на обработку данных и видит ответ оператора. date — действующая дата (у брони — дата брони сейчас), requested_date — дата из заявки: разошлись — бронь перенесена или заведена на другую дату. Если при создании заявки передан notify_url, об изменении состояния, даты, предложенной даты, тура или числа человек приходит подписанный POST; поле notify показывает, жива ли подписка.
{
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"description": "Status key from the reply of the writing tool, as is. Ключ статуса из ответа пишущего инструмента, как есть (20–120 знаков)."
}
}
}{
"type": "object",
"required": [
"state",
"kind",
"human",
"next",
"consent",
"consent_purpose",
"page"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"description": "Дата тура YYYY-MM-DD, если есть, — действующая: у брони та, что в брони сейчас (оператор мог перенести); у заявки на жильё — дата заезда"
},
"kind": {
"enum": [
"lead",
"seat_request",
"stay_request"
],
"type": "string",
"description": "lead — заявка менеджеру или оператору; seat_request — запрос мест у оператора; stay_request — заявка владельцу жилья"
},
"next": {
"type": "string",
"description": "Что делать дальше"
},
"page": {
"type": "string",
"description": "Страница заявки для человека: состояние, ответ оператора и подтверждение согласия своей рукой. Дайте её человеку, не публикуйте."
},
"tour": {
"type": [
"string",
"null"
],
"description": "Название тура, если заявка про тур"
},
"human": {
"type": "string",
"description": "Состояние словами для человека"
},
"state": {
"enum": [
"awaiting_operator",
"delivered",
"operator_contacted",
"in_progress",
"confirmed",
"declined",
"other_date",
"no_answer",
"cancelled",
"failed",
"unknown"
],
"type": "string",
"description": "Состояние заявки одним словом"
},
"notify": {
"type": [
"object",
"null"
],
"required": [
"ref",
"active",
"disabled_reason"
],
"properties": {
"ref": {
"type": "string"
},
"active": {
"type": "boolean"
},
"disabled_reason": {
"enum": [
"gone",
"undeliverable",
"vedar_failure",
null
],
"type": [
"string",
"null"
]
}
},
"description": "Подписка на уведомления этой заявки: null — не заводилась (notify_url не передан) или удалена через 30 дней после отключения. active: false — уведомлений больше не будет, опрашивайте get_request_status; disabled_reason: gone — приёмник ответил 410; undeliverable — доставить не удалось (ответ 4xx или повторы исчерпаны; причина бывает и на пути до приёмника); vedar_failure — сбой на стороне Ведара"
},
"consent": {
"enum": [
"human",
"agent",
"none"
],
"type": "string",
"description": "Чьё согласие на обработку персональных данных записано: human — человек подтвердил сам (страница заявки или форма сайта); agent — передал агент при создании; none — не записано"
},
"alt_date": {
"type": [
"string",
"null"
],
"description": "Дата, которую предложил оператор вместо запрошенной"
},
"deadline": {
"type": [
"string",
"null"
],
"description": "До какого времени ждём ответ оператора (ISO 8601), у запроса мест"
},
"max_link": {
"type": [
"string",
"null"
],
"description": "Ссылка подключить MAX: ответы адресата будут приходить человеку туда. Дайте её человеку, не публикуйте; null — MAX уже подключён или переписки по ключу нет"
},
"check_out": {
"type": [
"string",
"null"
],
"description": "Дата выезда YYYY-MM-DD, у заявки на жильё"
},
"participants": {
"type": [
"integer",
"null"
],
"description": "Число человек в заявке (у жилья — гостей), если записано"
},
"accommodation": {
"type": [
"string",
"null"
],
"description": "Название объекта, если заявка на жильё"
},
"requested_date": {
"type": [
"string",
"null"
],
"description": "Дата YYYY-MM-DD, которую просили в заявке, если записана (заявка на тур, запрос мест, жильё). Отличается от date — бронь перенесена или заведена на другую дату"
},
"consent_purpose": {
"enum": [
"operator",
"stay",
"carrier",
"rental"
],
"type": "string",
"description": "На передачу кому согласие по заявке: operator — туроператору, stay — владельцу жилья, carrier — перевозчику. Этот текст человек подтверждает на странице заявки"
},
"partner_replies": {
"type": [
"integer",
"null"
],
"description": "Сколько сообщений адресат заявки (владелец жилья, туроператор, перевозчик, прокат) написал человеку в переписке; текст — только на странице заявки. null — переписки по этому ключу нет"
},
"accommodation_url": {
"type": [
"string",
"null"
],
"description": "Карточка объекта жилья: там телефон владельца"
},
"partner_last_reply_at": {
"type": [
"string",
"null"
],
"description": "Когда адресат написал последнее сообщение (ISO 8601); null — не писал или переписки по ключу нет"
}
}
}{
"title": "Request status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_lead — Tour request
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. Оставить заявку на подбор тура по Камчатке: менеджер платформы свяжется по телефону. Обязательны имя, телефон и описание запроса (даты, состав группы, интересы). Заказ машины целиком (вахтовка, микроавтобус) — не сюда, а request_charter. Это только заявка: оплаты через платформу нет. Имя и телефон — персональные данные: спроси у человека согласие на их обработку и передай consent: true, иначе заявка не создаётся. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks).
{
"type": "object",
"required": [
"name",
"phone",
"comment",
"consent"
],
"properties": {
"name": {
"type": "string",
"description": "Traveller's name. Имя туриста"
},
"phone": {
"type": "string",
"description": "Contact phone, required. Телефон для связи (обязателен)"
},
"comment": {
"type": "string",
"description": "The request: dates, group size, interests. Запрос: даты, сколько человек, что интересует"
},
"consent": {
"type": "boolean",
"examples": [
true
],
"description": "Explicit consent to process name and phone for this request; ask the person and pass true, otherwise the request is not created. Человек согласен на обработку своих персональных данных (имя, телефон) для связи по этой заявке. Спроси прямо и передай true. Без согласия заявка не создаётся."
},
"plan_id": {
"type": "string",
"examples": [
"1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed"
],
"description": "Plan ID from make_trip_plan when the request is for that plan: the manager gets the whole plan (group, tours by day, estimate). Номер плана из make_trip_plan, если заявка — на этот план: менеджер получит план целиком (состав, туры по дням, смету) и не будет переспрашивать."
},
"interest": {
"type": "string",
"description": "Tour or route name, if already chosen. Название тура/маршрута, если уже выбран"
},
"notify_url": {
"type": "string",
"description": "Optional HTTPS URL of your receiver (host name, port 443): a signed POST (Standard Webhooks) arrives when the request state, date, operator-offered date, tour or group size changes; the signing key is in the reply once. Not for stays. Leave empty if you have no receiver; do not invent one. Необязательно. HTTPS-адрес вашего приёмника (только имя хоста, порт 443): когда изменятся состояние заявки, дата, предложенная оператором дата, тур или число человек, на него придёт подписанный POST (Standard Webhooks); ключ подписи — в ответе один раз. Нет своего приёмника — не передавайте и не придумывайте адрес."
}
}
}{
"title": "Tour request",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}create_booking_request — 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_tour_availability. Заявку подтверждает оператор по телефону — мгновенного подтверждения нет, оплаты через платформу нет. Если по названию подходят туры разных компаний, в tour имя компании или гида либо совпала лишь часть слов — заявки нет: в ответе туры с номерами и компаниями; спроси человека и повтори вызов с номером выбранного тура. Если на дату нет мест, заявка не создаётся и в ответе будут ближайшие свободные даты. Если у тура вообще нет расписания в системе (оператор берёт туристов без календаря), вместо отказа оператору уходит запрос мест: в ответе будет ссылка на страницу статуса — передай её человеку; места этим не закрепляются. Имя и телефон — персональные данные: спроси согласие на их обработку и передай consent: true. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks).
{
"type": "object",
"required": [
"tour",
"date",
"name",
"phone",
"consent"
],
"properties": {
"date": {
"type": "string",
"examples": [
"2027-07-15"
],
"description": "Tour date, YYYY-MM-DD. Дата тура, YYYY-MM-DD"
},
"name": {
"type": "string",
"description": "Traveller's name. Имя туриста"
},
"tour": {
"type": "string",
"description": "Numeric tour ID or tour title from get_tours / get_tour_availability. A company or guide name, or a partial word match, creates no request: the reply lists tours by ID. Числовой ID тура или его название (из get_tours / get_tour_availability). Имя компании или гида заявку не создаёт — нужен тур."
},
"phone": {
"type": "string",
"description": "Phone for confirmation, required. Телефон для подтверждения (обязателен)"
},
"comment": {
"type": "string",
"description": "Wishes, questions, group composition. Пожелания, вопросы, состав группы"
},
"consent": {
"type": "boolean",
"examples": [
true
],
"description": "Explicit consent to process name and phone for this request; ask the person and pass true, otherwise the request is not created. Человек согласен на обработку своих персональных данных (имя, телефон) для связи по этой заявке. Спроси прямо и передай true. Без согласия заявка не создаётся."
},
"plan_id": {
"type": "string",
"examples": [
"1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed"
],
"description": "Plan ID from make_trip_plan when this tour is part of that plan: the operator sees the whole trip. Номер плана из make_trip_plan, если тур — из этого плана: оператор увидит, частью какой поездки он стоит."
},
"notify_url": {
"type": "string",
"description": "Optional HTTPS URL of your receiver (host name, port 443): a signed POST (Standard Webhooks) arrives when the request state, date, operator-offered date, tour or group size changes; the signing key is in the reply once. Not for stays. Leave empty if you have no receiver; do not invent one. Необязательно. HTTPS-адрес вашего приёмника (только имя хоста, порт 443): когда изменятся состояние заявки, дата, предложенная оператором дата, тур или число человек, на него придёт подписанный POST (Standard Webhooks); ключ подписи — в ответе один раз. Нет своего приёмника — не передавайте и не придумывайте адрес."
},
"participants": {
"type": "string",
"examples": [
"2"
],
"description": "Number of people, 1–30; default 1. Сколько человек (1–30). Не сказано — 1."
}
}
}{
"title": "Booking request",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}create_stay_request — 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_accommodations (название или ID из ссылки на карточку). Заявка уходит владельцу в мессенджер, он перезванивает сам и подтверждает даты и цену; это не бронь и не оплата, через платформу жильё не оплачивается. Принимают её только объекты без своих номеров на платформе и без сайта брони — для остальных ответ скажет, где бронировать. Имя и телефон — персональные данные, они передаются владельцу жилья: спроси согласие на это и передай consent: true.
{
"type": "object",
"required": [
"accommodation",
"check_in",
"check_out",
"name",
"phone",
"consent"
],
"properties": {
"name": {
"type": "string",
"description": "Guest's name. Имя гостя"
},
"phone": {
"type": "string",
"description": "Phone the owner will call back, required. Телефон гостя — по нему перезвонит владелец (обязателен)"
},
"guests": {
"type": "string",
"examples": [
"4"
],
"description": "Number of guests, 1–50; default 1. Сколько гостей (1–50). Не сказано — 1."
},
"comment": {
"type": "string",
"description": "Wishes for the owner. Пожелания владельцу: баня, время заезда, дети"
},
"consent": {
"type": "boolean",
"examples": [
true
],
"description": "Explicit consent to process name and phone and pass them to the stay's owner; ask the person and pass true, otherwise the request is not created. Человек согласен на обработку своих персональных данных (имя, телефон) и их передачу владельцу жилья для связи по заявке. Спроси прямо и передай true. Без согласия заявка не создаётся."
},
"check_in": {
"type": "string",
"examples": [
"2027-07-15"
],
"description": "Check-in date, YYYY-MM-DD. Дата заезда, YYYY-MM-DD"
},
"check_out": {
"type": "string",
"examples": [
"2027-07-17"
],
"description": "Check-out date, YYYY-MM-DD, after check-in, at most 60 nights. Дата выезда, YYYY-MM-DD (позже заезда, не больше 60 ночей)"
},
"accommodation": {
"type": "string",
"description": "Stay name or ID from search_accommodations. Название объекта или его ID (из search_accommodations)"
}
}
}{
"title": "Stay request",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}request_charter — Charter request
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. Заявка на машину целиком (вахтовка, микроавтобус) у перевозчика «под заказ»: куда, на какие даты, сколько человек. Прайс и перевозчиков смотри через search_transfers (раздел «под заказ»). Календаря у таких перевозчиков нет, поэтому заявка не проверяет занятость машин: менеджер Ведара свяжется по телефону, согласует поездку с перевозчиком и подтвердит. Цена — за машину по прайсу перевозчика: по направлениям или за час и за день работы; направления нет в прайсе — заказ принимается, цену называет перевозчик. Оплаты через платформу нет, расчёт напрямую. Имя и телефон — персональные данные, и они уходят перевозчику: спроси согласие на их обработку и передачу и передай consent: true, иначе заявка не создаётся. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks).
{
"type": "object",
"required": [
"destination",
"date_from",
"passengers",
"name",
"phone",
"consent"
],
"properties": {
"name": {
"type": "string",
"description": "Customer's name. Имя заказчика"
},
"phone": {
"type": "string",
"description": "Contact phone, required. Телефон для связи (обязателен)"
},
"carrier": {
"type": "string",
"examples": [
"shatun"
],
"description": "Carrier name or slug from search_transfers; required when there is more than one carrier. Перевозчик: название или slug из search_transfers. Когда перевозчиков несколько, без него заявка не создаётся — инструмент попросит назвать, кому её адресовать."
},
"comment": {
"type": "string",
"description": "Wishes: how many days the vehicle is needed, what to carry, pickup place. Пожелания: сколько дней нужна машина, что везти, откуда забирать"
},
"consent": {
"type": "boolean",
"examples": [
true
],
"description": "Explicit consent to process name and phone for this request; ask the person and pass true, otherwise the request is not created. Человек согласен на обработку своих персональных данных (имя, телефон) и их передачу перевозчику для связи по заявке. Спроси прямо и передай true. Без согласия заявка не создаётся."
},
"date_to": {
"type": "string",
"examples": [
"2027-07-17"
],
"description": "Return date, YYYY-MM-DD, if known. Дата возвращения, YYYY-MM-DD, если известна"
},
"date_from": {
"type": "string",
"examples": [
"2027-07-15"
],
"description": "Departure date, YYYY-MM-DD. Дата выезда, YYYY-MM-DD"
},
"notify_url": {
"type": "string",
"description": "Optional HTTPS URL of your receiver (host name, port 443): a signed POST (Standard Webhooks) arrives when the request state, date, operator-offered date, tour or group size changes; the signing key is in the reply once. Not for stays. Leave empty if you have no receiver; do not invent one. Необязательно. HTTPS-адрес вашего приёмника (только имя хоста, порт 443): когда изменятся состояние заявки, дата, предложенная оператором дата, тур или число человек, на него придёт подписанный POST (Standard Webhooks); ключ подписи — в ответе один раз. Нет своего приёмника — не передавайте и не придумывайте адрес."
},
"passengers": {
"type": "string",
"examples": [
"8"
],
"description": "Number of people, 1–60. Сколько человек (1–60)"
},
"destination": {
"type": "string",
"examples": [
"Горелый"
],
"description": "Where to go: a word from the carrier price list or your own destination. Куда ехать: слово или название из прайса («Горелый», «Толбачик») либо своё направление"
}
}
}{
"title": "Charter request",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}create_car_rental_request — 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. Заявка прокатчику на машину без водителя на даты: какая машина, с какого по какое число, где забрать. Машины и прокатчиков смотри через search_car_rental — машина называется так, как в прайсе. Это заявка, не бронь: менеджер Ведара свяжется по телефону и подтвердит с прокатчиком; занятость машин платформа не ведёт, оплаты через платформу нет — расчёт напрямую с прокатчиком. Два шага. Сначала спроси у человека имя и телефон — не придумывай и не подставляй их. Шаг 1: вызов без confirmation (consent: false) — заявка проверяется, но НЕ создаётся; в ответе черновик и код confirmation. Покажи черновик человеку и прямо спроси, согласен ли он на обработку имени и телефона и их передачу прокатчику и на отправку заявки. Шаг 2 — только после явного «да» самого человека: тот же вызов с теми же полями, confirmation из ответа и consent: true. Никогда не ставь consent: true сам, без ответа человека. Пробная или демонстрационная заявка — test: true: она помечается и прокатчику не уходит, шаги те же. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks).
{
"type": "object",
"required": [
"car",
"date_from",
"date_to",
"name",
"phone",
"consent"
],
"properties": {
"car": {
"type": "string",
"examples": [
"Suzuki Jimny"
],
"description": "Car exactly as in the search_car_rental price list. Машина — как в прайсе search_car_rental, например «Suzuki Jimny»"
},
"name": {
"type": "string",
"description": "Renter's name. Имя арендатора"
},
"test": {
"type": "boolean",
"examples": [
false
],
"description": "true for a trial or demo request: marked as test and not sent to the rental company. true — пробная заявка (проверка, демонстрация): помечается, прокатчику не уходит"
},
"phone": {
"type": "string",
"description": "Contact phone, required. Телефон для связи (обязателен)"
},
"pickup": {
"type": "string",
"examples": [
"аэропорт Елизово"
],
"description": "Pickup place if the person named one: airport, town, address. Где забрать машину: аэропорт, город, адрес — если человек сказал"
},
"comment": {
"type": "string",
"description": "Wishes: child seat, drop-off elsewhere, etc. Пожелания: детское кресло, возврат в другом месте и т.п."
},
"company": {
"type": "string",
"examples": [
"laguna-prokat"
],
"description": "Rental company name or slug from search_car_rental; may be omitted when there is only one. Прокатчик: название или slug из search_car_rental. Когда прокатчик один, можно не указывать"
},
"consent": {
"type": "boolean",
"examples": [
false
],
"description": "false on step 1. true only after the person themselves said yes to passing name and phone to the rental company; never set it on their behalf. Человек согласен на обработку своих персональных данных (имя, телефон) и их передачу прокатчику для связи по заявке. На шаге 1 — false. true — только когда человек сам ответил «да» на вопрос о согласии; агент не ставит true за человека."
},
"date_to": {
"type": "string",
"examples": [
"2026-11-14"
],
"description": "Rental end, inclusive, YYYY-MM-DD. По какое число включительно, YYYY-MM-DD"
},
"date_from": {
"type": "string",
"examples": [
"2026-11-10"
],
"description": "Rental start, YYYY-MM-DD. С какого числа нужна машина, YYYY-MM-DD"
},
"notify_url": {
"type": "string",
"description": "Optional HTTPS URL of your receiver (host name, port 443): a signed POST (Standard Webhooks) arrives when the request state, date, operator-offered date, tour or group size changes; the signing key is in the reply once. Not for stays. Leave empty if you have no receiver; do not invent one. Необязательно. HTTPS-адрес вашего приёмника (только имя хоста, порт 443): когда изменятся состояние заявки, дата, предложенная оператором дата, тур или число человек, на него придёт подписанный POST (Standard Webhooks); ключ подписи — в ответе один раз. Нет своего приёмника — не передавайте и не придумывайте адрес."
},
"confirmation": {
"type": "string",
"description": "Code from the step 1 reply; send it only after the person explicitly agreed. Without it a draft is returned and nothing is created. Код из ответа шага 1. Передавай только после явного согласия человека; без кода заявка не создаётся, а возвращается черновик"
}
}
}{
"title": "Car rental request",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}create_trip_request — 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. Одна заявка на поездку целиком: тур на дату и/или жильё на даты и/или машина под заказ (трансфер) — одним вызовом, под общим номером поездки. Передай хотя бы одну часть: tour+tour_date, stay+check_in+check_out, transfer_destination+transfer_date. Каждая часть уходит своему партнёру (оператор тура, владелец жилья, менеджер с перевозчиком), и каждый видит, что ещё заказано в поездке. Перевозчик не назван — машину подберёт менеджер Ведара. Это заявка, не бронь: даты, места и цену подтверждает человек, оплаты через платформу нет. Имя и телефон — персональные данные: спроси согласие и передай consent: true, иначе заявка не создаётся. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks).
{
"type": "object",
"required": [
"name",
"phone",
"consent"
],
"properties": {
"name": {
"type": "string",
"description": "Traveller's name. Имя туриста"
},
"stay": {
"type": "string",
"description": "Stay name or ID from search_accommodations. Жильё: название или ID из search_accommodations"
},
"tour": {
"type": "string",
"description": "Tour ID or name from get_tours. Тур: числовой ID или название из get_tours"
},
"phone": {
"type": "string",
"description": "Phone partners will call back, required. Телефон для связи (обязателен)"
},
"carrier": {
"type": "string",
"description": "Carrier name from search_transfers; omit and a Vedar manager picks one. Перевозчик из search_transfers; можно не указывать — подберёт менеджер"
},
"comment": {
"type": "string",
"description": "Wishes for all partners of the trip. Пожелания ко всей поездке"
},
"consent": {
"type": "boolean",
"examples": [
true
],
"description": "Explicit consent to process name and phone and pass them to every partner of the trip; pass true, otherwise refused. Человек согласен на обработку имени и телефона и их передачу партнёрам поездки (оператор, владелец жилья, перевозчик). Спроси прямо и передай true."
},
"check_in": {
"type": "string",
"examples": [
"2026-11-15"
],
"description": "Check-in date, YYYY-MM-DD. Заезд, YYYY-MM-DD"
},
"check_out": {
"type": "string",
"examples": [
"2026-11-18"
],
"description": "Check-out date, YYYY-MM-DD. Выезд, YYYY-MM-DD"
},
"tour_date": {
"type": "string",
"examples": [
"2026-11-15"
],
"description": "Tour date, YYYY-MM-DD. Дата тура, YYYY-MM-DD"
},
"notify_url": {
"type": "string",
"description": "Optional HTTPS URL of your receiver (host name, port 443): a signed POST (Standard Webhooks) arrives when the request state, date, operator-offered date, tour or group size changes; the signing key is in the reply once. Not for stays. Leave empty if you have no receiver; do not invent one. Необязательно. HTTPS-адрес вашего приёмника (только имя хоста, порт 443): когда изменятся состояние заявки, дата, предложенная оператором дата, тур или число человек, на него придёт подписанный POST (Standard Webhooks); ключ подписи — в ответе один раз. Нет своего приёмника — не передавайте и не придумывайте адрес."
},
"participants": {
"type": "string",
"examples": [
"5"
],
"description": "Number of people in the trip; aliases guests, passengers, participants_count, guest_count are accepted. Сколько человек в поездке (1–30). Принимаются и guests, passengers, participants_count"
},
"transfer_date": {
"type": "string",
"examples": [
"2026-11-15"
],
"description": "Transfer date, YYYY-MM-DD. Дата поездки на машине, YYYY-MM-DD"
},
"transfer_date_to": {
"type": "string",
"description": "Last day of the charter, YYYY-MM-DD, if several days. Дата возвращения машины, YYYY-MM-DD, если нужна"
},
"transfer_destination": {
"type": "string",
"examples": [
"Yelizovo airport - Paratunka"
],
"description": "Transfer route or destination. Машина под заказ: куда/откуда («аэропорт Елизово → база»)"
}
}
}{
"title": "Trip request",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1073 ms
- 95th percentile latency
- 1073 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1073 ms · metadata changed · 24 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http vedar-mcp https://vedarai.ru/api/mcpCodex
codex mcp add vedar-mcp --url https://vedarai.ru/api/mcpCursor
{
"mcpServers": {
"vedar-mcp": {
"url": "https://vedarai.ru/api/mcp"
}
}
}Cline
{
"mcpServers": {
"vedar-mcp": {
"type": "streamableHttp",
"url": "https://vedarai.ru/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"vedar-mcp": {
"type": "http",
"url": "https://vedarai.ru/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http vedar-mcp https://vedarai.ru/api/mcpClaude Desktop
https://vedarai.ru/api/mcpWindsurf
{
"mcpServers": {
"vedar-mcp": {
"serverUrl": "https://vedarai.ru/api/mcp"
}
}
}Let your agent find its tools
Find servers like Vedar MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other crm, sales, and marketing servers
Do you run Vedar MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.