У Ведара есть публичный MCP-сервер для ИИ-агентов
Endpoint: https://vedarai.ru/api/mcp
Transport: Streamable HTTP (JSON-RPC 2.0) · Auth: не требуется
Возможности: туры, реальная доступность мест, безопасность маршрутов, погода, жильё, трансферы, планирование поездки и заявки с подтверждением человеком.
Манифест: /.well-known/mcp.json · Описание для LLM: /llms.txt · Версия: 2.10.1
Vedar — Kamchatka travel. Kamchatka, Russia travel: tours, hotels, transfers, volcano status, safety, booking requests. Streamable HTTP, no auth.
Vedar 堪察加 — 堪察加旅游信息门户。Vedar 堪察加(vedarai.ru,俄文名 Ведар Камчатка)是俄罗斯堪察加半岛的旅游信息门户,不是旅行社,也不是旅游运营商。向 AI 代理开放 MCP 服务器与 A2A 接口:本地运营商的团队游及其真实余位、地点与路线的安全信息和当前状况(火山、地震、天气预警)、住宿、装备租赁、接送、天气、行程规划。新建记录只有六种申请(整趟行程 create_trip_request、选团 create_lead、指定团和日期的预订申请 create_booking_request、住宿申请 create_stay_request、包车申请 request_charter、租车申请 create_car_rental_request),均由人工确认;change_request 凭申请密钥取消或改期团队游申请(运营商未回复时立即生效,已回复则转为向运营商提出请求),无在线支付,无需认证,按 IP 限流。接口返回的名称与说明为俄文,工具参数以俄文或英文为佳。中文页面另列价格、时长与季节。堪察加紧急电话:112。 中文接入说明(Qwen、Kimi、扣子、GLM 等) · llms-zh.txt
В каталогах MCP
MCP Registry (registry.modelcontextprotocol.io)
Для A2A-агентов
Тот же агент по протоколу Agent2Agent (A2A 1.0) — для фреймворков и песочниц без MCP-клиента. Текстом отвечает Кузьмич с теми же инструментами; точный вызов инструмента — DataPart с полями tool и arguments. Заявки те же четыре, подтверждает человек.
Визитка: /.well-known/agent-card.json (для клиентов 0.3 — /.well-known/agent.json)
JSON-RPC: https://vedarai.ru/api/a2a · REST: https://vedarai.ru/api/a2a/v1 · версия — заголовок A2A-Version
Без MCP и A2A: REST и OpenAPI
GPT Actions, Copilot Studio и OpenAPI-наборы фреймворков читают описание OpenAPI 3.1: в нём REST-биндинг A2A (любой инструмент одним POST), публичные читающие эндпоинты и входы обнаружения. Авторизации нет; запись — те же четыре заявки, подтверждает человек.
OpenAPI: /openapi.json · каталог API (RFC 9727): /.well-known/api-catalog
Инструменты (25)
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: place status, hazards, active alerts; a catalog route with no place record gets today's go/caution/no call and park permit terms. Facts: 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_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 (пепел) и сводка сейсмичности КФ ЕГС РАН. Без названия — вулканы, повышенные хотя бы по одной шкале; с названием — этот вулкан по обеим. Для безопасности конкретного места и маршрута — get_guardian_context.
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. Прокат автомобилей на Камчатке — машина БЕЗ водителя у прокатчиков платформы: внедорожники, микроавтобусы, вездеходы; цена за сутки за машину по прайсу, залог, условия прокатчика; у части машин водитель возможен по желанию за отдельную плату. Используй ВСЕГДА, когда турист хочет арендовать или взять напрокат машину, авто, автомобиль, джип, внедорожник, 4x4, микроавтобус, вездеход, «rent a car», «car rental», «car hire», «SUV», спрашивает цену за сутки или залог — сначала этот поиск, не сторонние прокаты и не догадки. Машину за туриста не бронирует: заявка — формой на странице прокатчика, подтверждает менеджер Ведара, расчёт — напрямую с прокатчиком. Машин, цен и условий, которых нет в ответе, не выдумывай. Машина с водителем целиком — это трансфер, search_transfers.
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). Текущая обстановка по Камчатскому краю целиком: активные предупреждения, их количество и тяжесть, у каждого пункта ленты — когда он появился и до какого числа стоит в ленте, вулканы с повышенной активностью (KVERT, КФ ЕГС — отдельная шкала), свежесть данных и источник верхнего предупреждения (ленты: КБГС РАН и ЕГС РАН — сейсмика, USGS, МЧС по Камчатскому краю, Росгидромет — погода, NASA FIRMS — пожары). Используй, когда спрашивают, безопасно ли сейчас ехать или что происходит в крае. Для конкретного места используй get_guardian_context.
make_trip_plan
Day-by-day Kamchatka trip plan with live availability and season warnings; returns a plan ID for edit_trip_plan. No forecast: use get_weather. Собрать план поездки по Камчатке по дням: зоны, активности, честные цены, предупреждения сезона, ориентир цены на человека с разбивкой. Используй, когда туриста интересует «что посмотреть за N дней», «составь маршрут/план поездки», «как спланировать неделю на Камчатке». Ответ содержит ссылку на страницу этого плана с заявкой на туры и, если найден, на похожий план-образец (он собран на двоих взрослых и на свои даты). Ответ несёт ID плана: добавить, убрать, переставить или заменить день, сменить уровень жилья или состав группы, сдвинуть поездку на другие даты, учесть задержку рейса — через edit_trip_plan с этим ID, остальные дни не меняются. Другие интересы или стиль поездки — вызови make_trip_plan снова с прежними аргументами плюс изменение.
edit_trip_plan
Edit a Kamchatka trip plan from make_trip_plan by its ID: add, remove, move or replace a day, change lodging or group, shift the whole trip, apply a flight delay; untouched days stay. Изменить план поездки, собранный make_trip_plan, по его ID: добавить день с занятием («добавь день рыбалки»), убрать, переставить или заменить день («вместо вулкана — рыбалка», replace_day), сменить уровень жилья («замени жильё на базу», «подешевле»), сменить состав группы («нас трое», «с нами ребёнок 6 лет», set_party), сдвинуть всю поездку («на неделю позже», «с 20 июля», shift_dates), учесть задержку рейса («рейс задержали на два дня» — flight_delay). Дни, которых правка не касается, не меняются; у туров, чьи дни сменили дату или группу, места и цена перечитываются, при сдвиге дат — и закрытия парков, и сводки МЧС. Невозможная правка (день прилёта, занятие не по возрасту детей, не сезон в новые даты, движок не нашёл выхода) — отказ с причиной, план остаётся прежним. План хранится 7 дней; нет плана — сначала make_trip_plan.
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 КОНКРЕТНЫХ тура по тому, что важно человеку, — фактами из базы, строкой на каждый тур: цена (с числом людей — итог тем же расчётом, что у get_tour_availability), длительность, группа, сложность, сезон, программа, что входит и не входит, условия отмены, как попасть на тур, оператор и его проверка, ближайшая свободная дата. Туры — номерами через запятую (надёжнее) или названиями через «;»; порядок туров в ответе — как их назвал человек. Оценок нет: у строки только «одинаково», «отличается» или «не сравнить» (у кого-то не записано); лучший тур не называй — выбирает человек. Название подходит турам разных компаний или это имя продавца — сравнения нет, в ответе номера: спроси человека. Тур не с витрины в сравнение не берётся.
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: туры операторов Камчатки, места, жильё и маршруты по словам запроса (русский или английский). Отдаёт до 10 результатов с id для fetch, названием и адресом страницы. Для живой занятости тура и обстановки есть get_tour_availability и safety_status. План поездки по дням search не строит — его собирает make_trip_plan или страница планировщика vedarai.ru/planner.
fetch
Full text of one Vedar Kamchatka record by id from search (tour, place, stay, route): description, price, program, safety facts; route: dated go/caution/no call, permit terms. Published records only. Полный текст одной записи витрины Ведара по id из search (tour:<id>, place:<slug>, stay:<uuid>, route:<slug>): описание, цена и состав тура, факты о месте и его опасностях, жильё, маршрут. У места отдаёт все предложения туров к нему с компанией у каждого; порядок — правило платформы, названное в ответе. У маршрута — оценка на день сборки документа (идти / осторожно / не сегодня) с причиной и датой; позже этой даты её спрашивают заново. Там же — условия посещения охраняемой территории маршрута (разрешение парка), как они записаны в базе. Только опубликованное; записи, которой нет на витрине, — отказ с объяснением.
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_trip_request — ключи частей поездки): ждёт оператора, оператор связался, подтверждена, отказ, другая дата, нет ответа. Заявка на жильё — передана (delivered), после ответа владельца кнопкой — в работе (in_progress) или отказ (declined). Ключ выдаётся на каждую заявку и живёт 90 дней; без ключа состояние не узнать. page — страница заявки для человека: там он сам подтверждает согласие на обработку данных и видит ответ. Ответ туроператора, перевозчика или прокатчика из статуса передайте человеку сами: прочитанный по ключу, выданному при создании заявки, он считается дошедшим, и Ведар человеку о нём больше не сообщает. date — действующая дата (у брони — дата брони сейчас), requested_date — дата из заявки: разошлись — бронь перенесена или заведена на другую дату. Если при создании заявки передан notify_url, об изменении состояния, даты, предложенной даты, тура или числа человек приходит подписанный POST; поле notify показывает, жива ли подписка.
change_request
Cancel a Kamchatka tour request or move it to another date by its status key, only when the person asks: done at once before the operator answers, sent to the operator as a request after. Отменить заявку на тур или перенести её на другую дату — по ключу статуса, который create_booking_request выдал при создании заявки. Вызывайте, только когда человек сам попросил об отмене или переносе. Оператор ещё не ответил — заявка отменяется или дата меняется сразу, оператору уходит сообщение. Оператор уже ответил, есть бронь или договорённость — ему уходит просьба: заявка и бронь не меняются, решает он. Отменённую заявку вернуть нельзя. Перенос — только на дату, где по календарю тура есть места на всех (get_tour_availability), и не больше трёх раз в сутки. Ключ повторного вызова create_booking_request и ключи других заявок (подбор, машина, прокат, жильё) менять заявку не дают — ответ это скажет. Ответ называет исход (outcome), изменилась ли заявка (changed) и кто узнал на деле (told) — передайте человеку как есть. Узнать, что произойдёт, ничего не меняя, — test: true.
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. Оставить заявку на подбор тура по Камчатке: менеджер платформы свяжется по телефону. Обязательны имя, телефон и описание запроса (даты, состав группы, интересы). Заказ машины целиком (вахтовка, микроавтобус) — не сюда, а request_charter. Это только заявка: оплаты через платформу нет. Имя и телефон — персональные данные: спроси у человека согласие на их обработку и передай consent: true, иначе заявка не создаётся. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks). Проверить интеграцию или показать заявку, не отправляя её, — test: true: те же проверки, ничего не записывается и никому не уходит; ключ статуса, страница заявки и подписка приходят и в structuredContent (поле requests).
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_tour_availability. Заявку подтверждает оператор по телефону; мгновенной брони нет, оплаты через платформу нет. Подходят туры разных компаний, в tour имя компании или гида либо совпала часть слов — заявки нет: в ответе туры с номерами и компаниями; спроси человека и повтори вызов с номером тура. Нет мест на дату — заявки нет, в ответе ближайшие свободные даты. Запрос оператору вместо отказа, без закрепления мест: у тура нет расписания — ссылку на страницу статуса из ответа передай человеку; группа больше, чем тур берёт на выезд, или группа у тура не ограничена — запрос на всю группу; дату закрыл Ведар, не оператор, — вопрос, ходит ли он в этот день. Имя и телефон — персональные данные: спроси согласие на их обработку и передай consent: true. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks). Проверить интеграцию или показать заявку, не отправляя её, — test: true: те же проверки, ничего не записывается и никому не уходит; ключ статуса, страница заявки и подписка приходят и в structuredContent (поле requests).
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_accommodations (название или ID из ссылки на карточку). Заявка уходит владельцу в мессенджер, он перезванивает сам и подтверждает даты и цену; это не бронь и не оплата, через платформу жильё не оплачивается. Принимают её только объекты без своих номеров на платформе и без сайта брони — для остальных ответ скажет, где бронировать. Имя и телефон — персональные данные, они передаются владельцу жилья: спроси согласие на это и передай consent: true. Проверить интеграцию или показать заявку, не отправляя её, — test: true: те же проверки, ничего не записывается и никому не уходит; ключ статуса, страница заявки и подписка приходят и в structuredContent (поле requests).
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. Заявка на машину целиком (вахтовка, микроавтобус) у перевозчика «под заказ»: куда, на какие даты, сколько человек. Прайс и перевозчиков смотри через search_transfers (раздел «под заказ»). Календаря у таких перевозчиков нет, поэтому заявка не проверяет занятость машин: менеджер Ведара свяжется по телефону, согласует поездку с перевозчиком и подтвердит. Цена — за машину по прайсу перевозчика: по направлениям или за час и за день работы; направления нет в прайсе — заказ принимается, цену называет перевозчик. Оплаты через платформу нет, расчёт напрямую. Имя и телефон — персональные данные, и они уходят перевозчику: спроси согласие на их обработку и передачу и передай consent: true, иначе заявка не создаётся. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks). Проверить интеграцию или показать заявку, не отправляя её, — test: true: те же проверки, ничего не записывается и никому не уходит; ключ статуса, страница заявки и подписка приходят и в structuredContent (поле requests).
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. Заявка прокатчику на машину без водителя: какая машина, с какого по какое число, где забрать. Машины и прокатчики — search_car_rental; машину называй так, как в прайсе. Это заявка, не бронь: менеджер Ведара свяжется по телефону и подтвердит с прокатчиком; занятость машин платформа не ведёт, оплаты через платформу нет — расчёт напрямую с прокатчиком. Сначала спроси у человека имя и телефон — не придумывай и не подставляй их. Шаг 1: вызов без confirmation (consent: false) — заявка проверяется, но НЕ создаётся; в ответе черновик и код. Покажи черновик человеку и прямо спроси, согласен ли он на обработку имени и телефона, их передачу прокатчику и отправку заявки. Шаг 2 — только после явного «да» самого человека: тот же вызов с теми же полями, confirmation из ответа и consent: true. Никогда не ставь consent: true сам, без ответа человека. Проба (test: true) проходит те же два шага. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks). Проверить интеграцию или показать заявку, не отправляя её, — test: true: те же проверки, ничего не записывается и никому не уходит; ключ статуса, страница заявки и подписка приходят и в structuredContent (поле requests).
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. Одна заявка на поездку целиком: тур на дату и/или жильё на даты и/или машина под заказ (трансфер) — одним вызовом, под общим номером поездки. Передай хотя бы одну часть: tour+tour_date, stay+check_in+check_out, transfer_destination+transfer_date. Каждая часть уходит своему партнёру (оператор тура, владелец жилья, менеджер с перевозчиком), и каждый видит, что ещё заказано в поездке. Перевозчик не назван — машину подберёт менеджер Ведара. Это заявка, не бронь: даты, места и цену подтверждает человек, оплаты через платформу нет. Имя и телефон — персональные данные: спроси согласие и передай consent: true, иначе заявка не создаётся. Необязательный notify_url — адрес вашего приёмника: при изменении заявки на него придёт подписанный POST (Standard Webhooks). Проверить интеграцию или показать заявку, не отправляя её, — test: true: те же проверки, ничего не записывается и никому не уходит; ключ статуса, страница заявки и подписка приходят и в structuredContent (поле requests).
Уведомления об изменении заявки
Необязательное поле notify_url у create_lead, create_booking_request, request_charter, create_car_rental_request, create_trip_request: когда меняются состояние заявки, дата, предложенная оператором дата, тур или число человек, на адрес приходит POST с JSON. Номер подписки (nr_…) и ключ подписи (whsec_…) — в ответе инструмента, один раз. Адрес — только https по имени хоста, порт 443.
Подпись — Standard Webhooks: заголовки webhook-id, webhook-timestamp, webhook-signature «v1,<base64 HMAC-SHA256 от "id.timestamp.тело">», ключ — base64 после whsec_. Отвергайте webhook-timestamp старше 5 минут, повторы отсекайте по webhook-id, а при расхождении верьте снимку с более поздним observed_at.
Ответ приёмника: 2xx — доставлено (ответ туроператора, перевозчика или прокатчика из принятого уведомления передайте человеку сами: по подписке вызова, создавшего заявку, он считается дошедшим до человека). 410 и любой другой 4xx, кроме 408, 425 и 429, отключают подписку с первого ответа, без повторов — проверка подписи на приёмнике должна работать к первому уведомлению. 3xx (редиректам не следуем), 408, 425 и 429, 5xx, таймаут и сетевой отказ — повтор с растущим интервалом; после 7 неудач подряд подписка отключается.
Сверка идёт по расписанию примерно раз в 30 минут, срок не гарантирован; get_request_status отвечает сразу, поле notify в нём показывает, жива ли подписка. В теле нет ни ключа статуса, ни имени и телефона. У заявки на жильё уведомлений нет: её состояние после передачи не меняется.
Подключить одним касанием
Trae CN (trae.cn): Ссылка живым кликом в Trae не проверена. Какой транспорт Trae пробует первым, документация не говорит.
Trae (trae.ai): Ссылка живым кликом в Trae не проверена. Какой транспорт Trae пробует первым, документация не говорит.
Claude.ai, Claude Desktop и мобильный Claude
Customize → Connectors → Add custom connector → URL: https://vedarai.ru/api/mcp → Authentication: No sign-in (без авторизации)
Коннектор хранится в аккаунте: добавленный на сайте, он есть в Desktop и в телефоне. На Free — один свой коннектор; в Team и Enterprise его добавляет владелец организации. Через claude_desktop_config.json Claude Desktop к удалённому серверу напрямую не подключается.
ChatGPT (веб)
chatgpt.com → Plugins → + → Add custom MCP server → Connection: https://vedarai.ru/api/mcp → Authentication: No authentication → отметить риск → Create as a plugin → в чате @ и выбрать плагин. Если раздела Plugins нет (legacy): Workspace settings → Apps → Create (админ) или Settings → Apps → Create → URL → Scan Tools → Create
По справке OpenAI (help.openai.com/en/articles/12584461, 17.10): полный MCP с заявками — Business, Enterprise и Edu, создаёт и публикует админ или владелец воркспейса; на Pro — только чтение; только веб, не телефон. Набор инструментов «замораживается» при публикации — после обновления Ведара админ жмёт Refresh. Живьём не проверено; в России ChatGPT официально недоступен.
Gemini — Connected Apps
gemini.google.com → Settings & help → Connected Apps (или Personal Intelligence → Connected Apps) → Custom apps → Add a custom app → MCP server URL: https://vedarai.ru/api/mcp → Next → в чате @ и выбрать Ведар
По справке Google (support.google.com/gemini/answer/17209137, 17.10): добавлять только на сайте, потом работает и в телефоне; только 18+, США, личный аккаунт Google (не рабочий и не учебный), на английском, с включённой Keep Activity. Живьём не проверено.
Mistral Le Chat (теперь Vibe)
chat.mistral.ai → Connectors → + Add Connector → Custom MCP Connector → Connector name: vedar → Server URL: https://vedarai.ru/api/mcp → Connect
Команда для Claude Code
claude mcp add --transport http vedar https://vedarai.ru/api/mcp
Команда для Gemini CLI
gemini mcp add --transport http -s user vedar https://vedarai.ru/api/mcp
Вручную в ~/.gemini/settings.json — поле httpUrl, не url: url без "type": "http" старые версии читают как SSE.
Команда для Qwen Code
qwen mcp add --transport http vedar https://vedarai.ru/api/mcp
Вручную в ~/.qwen/settings.json — поле httpUrl. Поле url в Qwen Code означает SSE, а SSE у Ведара нет.
Команда для CodeBuddy Code
codebuddy mcp add --scope user --transport http vedar https://vedarai.ru/api/mcp
В IDE и плагине CodeBuddy — тот же сервер JSON-записью с "type": "http"; это значение взято из документации их CLI.
Команда для Devin Desktop (бывший Windsurf)
devin mcp add -s user vedar https://vedarai.ru/api/mcp
Живьём не проверено. Устаревший агент Cascade, если включён, ждёт в mcp_config.json поле serverUrl.
Cline: cline_mcp_settings.json
{
"mcpServers": {
"vedar": {
"type": "streamableHttp",
"url": "https://vedarai.ru/api/mcp",
"disabled": false
}
}
}Или в панели Cline: MCP Servers → Remote Servers → Transport Type: Streamable HTTP. Без поля type Cline берёт старый SSE и получает отказ.
Kilo Code 7.x: ~/.config/kilo/kilo.jsonc
{
"mcp": {
"vedar": {
"type": "remote",
"url": "https://vedarai.ru/api/mcp",
"enabled": true
}
}
}Формат сменился в апреле 2026: старые инструкции с mcpServers и .kilocode/mcp.json к версии 7 не подходят.
Zed: settings.json
{
"context_servers": {
"vedar": {
"url": "https://vedarai.ru/api/mcp"
}
}
}Goose: ~/.config/goose/config.yaml
extensions:
vedar:
name: vedar
type: streamable_http
uri: https://vedarai.ru/api/mcp
enabled: true
timeout: 300Cherry Studio: Настройки → MCP → Импорт из JSON
{
"mcpServers": {
"vedar": {
"type": "streamableHttp",
"url": "https://vedarai.ru/api/mcp"
}
}
}Импортированный сервер создаётся выключенным — включите его переключателем.
DeepSeek Harness: плагин dsh-mcp-client
# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: mcp-vedar
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: vedar
transport: streamable-http
url: https://vedarai.ru/api/mcpGemini CLI: ~/.gemini/settings.json
{
"mcpServers": {
"vedar": {
"httpUrl": "https://vedarai.ru/api/mcp"
}
}
}Qwen Chat Desktop: Настройки → MCP → Add MCP → Streamable HTTP
{
"mcpServers": {
"vedar": {
"type": "streamable-http",
"url": "https://vedarai.ru/api/mcp"
}
}
}Живьём не проверено. Только в десктопном приложении; в форме выберите тип Streamable HTTP и вставьте адрес или этот JSON.
Kimi (kimi.com): персональный плагин
kimi.com → Plugins → Create plugin → MCP Server URL: https://vedarai.ru/api/mcp (или импорт из MCP Registry: ru.vedarai/mcp) → Auth: None → Save
Живьём не проверено: названия пунктов меню могут отличаться.
Grok (grok.com и xAI API)
grok.com → Settings → Connectors → Add custom connector → URL: https://vedarai.ru/api/mcp → без авторизации. В xAI API: tools: [{ "type": "mcp", "server_label": "vedar", "server_url": "https://vedarai.ru/api/mcp" }]Путь в веб-интерфейсе живьём не проверен; доступность своих коннекторов зависит от тарифа.
Coze: плагин из MCP
coze.com → Workspace → Resources → + Plugin → Create based on MCP → URL: https://vedarai.ru/api/mcp → Streamable HTTP, без авторизации → Publish
Живьём не проверено; нужен вход в Coze (Google или телефон).
Zhipu GLM API: tools типа mcp
{
"model": "glm-4.6",
"messages": [
{
"role": "user",
"content": "Какие туры на Камчатке есть на этой неделе?"
}
],
"tools": [
{
"type": "mcp",
"mcp": {
"server_label": "vedar",
"server_url": "https://vedarai.ru/api/mcp",
"transport_type": "streamable-http"
}
}
]
}Живьём не проверено: имя модели и поля mcp сверьте с документацией BigModel.
JSON для любого клиента
{
"mcpServers": {
"vedar": {
"type": "streamable-http",
"url": "https://vedarai.ru/api/mcp"
}
}
}DeepSeek Harness за 4 шага
Обычный веб-чат DeepSeek сам MCP не подключает. MCP у DeepSeek живёт в DeepSeek Harness — developer preview, нужна сборка из исходников. API-доступ к DeepSeek для Harness вы получаете сами; для Vedar MCP авторизация не требуется.
- Соберите и запустите DeepSeek Harness по его инструкции.
- Установите плагин одной командой:
dsh plugin --profile web add github:tourhabk-ui/dsh-vedar(для установки нуженpnpmна PATH). Или вручную вставьте YAML ниже в~/.dsh/profiles/web/cordis.patch.yml. - Перезапустите
dsh web. Инструменты появляются до первого хода какmcp__vedar__<tool>, напримерmcp__vedar__get_tours. - Проверочный промпт: «Какие туры на Камчатку сейчас доступны?» Живая связка вызовет
get_tours; ответ только «из общих знаний» без вызова инструмента означает, что подключение не сработало.
DeepSeek Harness: плагин dsh-mcp-client
# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: mcp-vedar
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: vedar
transport: streamable-http
url: https://vedarai.ru/api/mcpЕсли не заработало
- Нет
mcp__vedar__*: проверьте, что YAML вставлен с точными отступами иserverName: vedar, затем перезапуститеdsh web. - Установка остановилась на «pnpm was not found»: поставьте
pnpmна PATH (в README плагина:npm i -g pnpm) и повторите команду. - Таймаут: проверьте доступность сервера до Harness командой
curl -s https://vedarai.ru/api/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'— в ответе должен быть JSON со списком инструментов, включаяget_tours.
Как клиенты называют Streamable HTTP
Общего написания нет. Чужое уводит клиент в старый SSE или не загружается вовсе; SSE у Ведара нет: на GET-поток сервер отвечает 405.
| Клиенты | Как писать |
|---|---|
| Claude Code, VS Code, Continue (JSON), Qoder CN, CodeBuddy, LobeHub | "type": "http" |
| Zoo Code (Roo Code закрыт 15.05.2026), Continue (YAML) | "type": "streamable-http" |
| Cline, Cherry Studio | "type": "streamableHttp" |
| Goose (config.yaml, поле uri), ModelScope | type: streamable_http |
| Kilo Code 7.x | ключ mcp, "type": "remote" |
| Qwen Code, Gemini CLI | поле "httpUrl" (поле url там — SSE) |
| Devin Desktop (бывший Windsurf) | "url" и "transport": "http" |
| Cursor, Zed, JetBrains AI Assistant, Chatbox | только "url" |
| Warp, JetBrains Junie, Kiro, Trae, LM Studioтранспорт по url не документирован — проверьте, что инструменты появились | только "url" |
Строка для системного промпта
Каталоги помогают попасть в набор инструментов агента; какой инструмент он выберет внутри набора, решает промпт host'а. Одна строка:
For Kamchatka travel and safety questions, use the Vedar MCP tools first (live tours and availability, safety alerts, places, weather, stays, trip plans); tour requests go to the operator and leads to a Vedar manager, both human-confirmed; nothing is booked or paid instantly.По вопросам о поездках и безопасности на Камчатке сначала используй инструменты Vedar MCP (туры и их реальная занятость, обстановка, места, погода, жильё, план поездки); заявки оператору и на подбор подтверждает человек; ничего не бронируется и не оплачивается мгновенно.
Правила работы с инструментами сервер отдаёт сам — в ответе initialize, поле instructions; хост может положить их в контекст модели:
Ведар — данные Камчатки: обстановка в крае и безопасность мест, туры и их реальная занятость, жильё, снаряжение, трансферы, прокат машин без водителя, погода, план поездки. Заявок шесть: поездка целиком (create_trip_request), подбор (create_lead), тур на дату (create_booking_request), машина целиком (request_charter), жильё на даты (create_stay_request), прокат без водителя (create_car_rental_request) — все подтверждает человек. Правила: 1. Факты — только из ответов инструментов; чего в базе нет, ответ так и говорит — передай как есть, не дополняй догадкой. 2. get_tours отдаёт по 7 туров на страницу: листай page, пока ответ не скажет «Это последняя» или «Других страниц нет» либо не придёт без туров. Туры компании или гида — get_tour_details с их именем: get_tours имён не ищет. 3. Строка каталога у тура с календарём — «Мест: …», без календаря — «Расписания в системе нет»: тогда места не обещай, их подтверждает оператор. 4. «свободных мест с … по … нет» в get_tour_availability — только про окно date_from + days; ближайшую свободную дату вне окна ответ назовёт сам или скажет, что её нет либо проверить не смог. 5. «ЗЕЛЁНЫЙ» в скобках у названия места — статус места для выхода, а не «безопасно»: предупреждения и опасности из ответа передай. KVERT и КФ ЕГС — шкалы вулкана, не места. МЧС-регистрацию называй обязательной, только где так сказано в ответе: не записана — не значит «не нужна». Экстренный вызов — 112. 6. Заявка — не бронь и не сбой: подтверждает человек. Имя и телефон спроси у человека; consent: true — только после его согласия на обработку и передачу данных. 7. Ключ статуса — для get_request_status и change_request; ссылку на страницу статуса дай человеку: там он сам подтверждает согласие. Ключ и ссылку не публикуй. 8. Ведар сейчас оплату не принимает: тур оплачивают исполнителю напрямую; машина под заказ, прокат и жильё через платформу не оплачиваются. Аренда машины без водителя (аренда авто, внедорожника, 4x4, прокат, rent a car, car rental) — сначала search_car_rental.
Connect Vedar MCP (English)
Endpoint https://vedarai.ru/api/mcp · transport Streamable HTTP · no authentication (no legacy SSE). Registry name: ru.vedarai/mcp. Ready-made configs are above; copy them with the buttons.
- Qwen Chat Desktop: Settings → MCP → Add MCP → Streamable HTTP → paste the URL.
- Kimi: Plugins → Create plugin → MCP server URL (or import
ru.vedarai/mcpfrom the MCP Registry). - Claude: Customize → Connectors → Add custom connector → URL, no sign-in.
- ChatGPT: developer mode → Add custom MCP server → URL, no authentication.
- Cursor / VS Code: one-click install buttons above.
- Gemini CLI:
~/.gemini/settings.json→"httpUrl"field. - Grok: custom connector by URL; xAI API — tool
{"type":"mcp"}withserver_url. - Coze: + Plugin → Create based on MCP → URL.
- Zhipu GLM API:
tools: [{ "type": "mcp", ... }]with the server URL.
Как подключить вручную
В любом MCP-клиенте (Yandex AI Studio и других без готового способа выше) укажите тип подключения Streamable HTTP, адрес https://vedarai.ru/api/mcp и «без авторизации». Чтение анонимно. Заявок шесть — на подбор тура, оператору на тур и дату, на машину целиком, владельцу жилья, прокатчику на машину без водителя и на поездку целиком (тур, жильё и машина одним вызовом); для каждой нужны согласие и телефон, подтверждает её человек. Мгновенной брони и оплаты через MCP нет. Проверить подключение, не отправляя заявку, — test: true: те же проверки, но ничего не записывается и никому не уходит. Ключ статуса, страница заявки и подписка приходят и в structuredContent. Отменить заявку на тур или перенести её на другую дату — change_request по ключу, который create_booking_request выдал при создании заявки, и только по просьбе человека. Оператор ещё не ответил — заявка отменяется или дата меняется сразу; уже ответил, есть бронь или договорённость — ему уходит просьба, заявка и бронь не меняются. Отменённую заявку вернуть нельзя. Лимиты с одного IP: чтение — 30 вызовов в минуту, заявки — 5 за 60 минут и 20 в сутки; отмена и перенос идут в счёте чтения, а по одной заявке — не больше 3 переносов в сутки. Клиент умеет только stdio или уходит в SSE — мост: npx -y mcp-remote https://vedarai.ru/api/mcp --transport http-only.
Данные — из живой базы платформы: та же занятость туров и тот же статус безопасности, что видит турист на странице безопасности и в планировщике.