Поиск туров через AI с использованием Model Context Protocol.
Streamable HTTP транспорт для любых LLM-ассистентов.
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "search_tours",
"arguments": {
"to_country": "Turkey",
"from_city": "Moscow",
"date_from": "2025-06-01",
"nights_min": 7,
"adults": 2,
"budget_max": 150000
}
}
}
{
"tours": [{
"hotel": "KEMER STAR HOTEL",
"stars": 5,
"country": "Турция",
"resort": "Кемер",
"price": 65187,
"currency": "RUB",
"nights": 7,
"meal": "BB - Только завтрак",
"departure": "2026-07-07"
}],
"meta": {
"link": "https://eto.travel/search/?hotel=kemper-dinara-garden#tvtourid=...",
"source": "live-eto-web",
"total_found": 10,
"cached": false
}
}
Три шага от запроса ассистента до структурированных результатов
Ассистент отправляет JSON-RPC запрос tools/call с LLM-friendly параметрами
Сервер валидирует параметры, проверяет кэш, применяет rate limit и circuit breaker
Нормализованные результаты с метаданными: source, cached, total_found
Всё необходимое для стабильного MCP-сервера в продакшене
Современный транспорт MCP через HTTP с поддержкой SSE для real-time стриминга результатов
Человекочитаемые параметры: названия стран и городов вместо числовых ID, даты в YYYY-MM-DD
Основной режим — live web-search; при сетевых сбоях включается fallback для отказоустойчивости.
Встроенный кэш с дедупликацией in-flight запросов. Rate limit 30 запросов/мин на клиента
Защита от каскадных сбоев. Автоматическое восстановление после стабилизации upstream
78 unit-тестов на Vitest с mock'ами через nock. Без внешних сетевых вызовов
Откройте Playground и протестируйте MCP-сервер в браузере