Skip to main content
Glama
navifare
by navifare

MoltTravel

Один MCP-сервер. Все инструменты для путешествий.

Поиск авиабилетов, сравнение цен, проверка виз, поиск аэропортов, получение предупреждений о поездках — через единую конечную точку.

MCP Protocol Python 3.12+ License: MIT

  Kiwi.com    Navifare     Peek.com    LastMinute
  (flights)   (prices)   (experiences)  (flights)
      \          |           |          /
       \         |           |         /
        +--------+-----------+--------+
        |                             |
        |    MoltTravel MCP Server    |
        |                             |
        |  Airports  Airlines  Visas  |
        |  Countries  FCDO  Gemini AI |
        |                             |
        +-------------|---------------+
                      |
               MCP over HTTP
                      |
              Any MCP Client
        (Claude, Cursor, your app)

Зачем?

Данные о путешествиях разбросаны по десяткам API, у каждого из которых свои методы аутентификации, форматы и особенности. MoltTravel объединяет их за единой конечной точкой Model Context Protocol:

  • 21+ инструмент от 4 внешних MCP-провайдеров + 6 встроенных наборов данных

  • Ноль настройки для статических данных — аэропорты, авиакомпании и визы загружаются лениво, без API-ключей

  • Прозрачный для схем прокси — клиенты видят реальную JSON Schema внешнего сервера; внешние серверы сами проверяют свои аргументы

  • Одна строка для подключения из Claude Desktop, Claude Code, Cursor или любого MCP-клиента

Related MCP server: orizn-visa-mcp

Быстрый старт

git clone https://github.com/navifare/moltravel-mcp.git
cd moltravel-mcp
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python molttravel_server.py

Сервер запускается по адресу http://localhost:8000/mcp. Вот и всё.

Подключение клиента

Добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "molttravel": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Добавьте в .claude/settings.json:

{
  "mcpServers": {
    "molttravel": {
      "url": "http://localhost:8000/mcp"
    }
  }
}
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async with streamablehttp_client("http://localhost:8000/mcp") as (r, w, _):
    async with ClientSession(r, w) as session:
        await session.initialize()
        tools = await session.list_tools()
        result = await session.call_tool("airports_lookup", {"code": "ZRH"})

Инструменты

Авиабилеты и цены

Инструмент

Провайдер

Что делает

kiwi_search-flight

Kiwi.com

Поиск авиабилетов по маршруту, дате, пассажирам, классу обслуживания

navifare_format_flight_pricecheck_request

Navifare

Разбор деталей перелёта из естественного языка в структурированные данные

navifare_flight_pricecheck

Navifare

Сравнение цены перелёта на нескольких сайтах бронирования

Впечатления и активности

Инструмент

Провайдер

Что делает

peek_search_experiences

Peek.com

Поиск 300K+ проверенных активностей по всему миру

peek_experience_details

Peek.com

Полные детали, отзывы и фото для впечатления

peek_experience_availability

Peek.com

Проверка наличия и цен на конкретные даты

peek_search_regions

Peek.com

Поиск ID регионов по названию

peek_list_tags

Peek.com

Просмотр категорий активностей и тегов

peek_render_activity_tiles

Peek.com

Рендеринг встраиваемых виджетов активностей

Справочные данные (встроенные, API-ключи не нужны)

Инструмент

Набор данных

Что делает

airports_lookup

OurAirports

Поиск по коду IATA или ICAO

airports_search

OurAirports

Поиск по названию, фильтр по стране или типу

airports_near

OurAirports

Поиск аэропортов в радиусе от любых координат

airlines_lookup

OpenFlights

Поиск по коду IATA или ICAO

airlines_search

OpenFlights

Поиск по названию, фильтр по стране или статусу активности

visa_check

Passport Index

Проверка визовых требований между двумя странами

visa_summary

Passport Index

Полная разбивка безвизовых/VOA/электронных виз для паспорта

restcountries_country_info

REST Countries

Столица, валюты, языки, часовые пояса, население

fcdo_travel_advice

UK FCDO

Предупреждения о безопасности, требования въезда, предупреждения о здоровье

fcdo_list_countries

UK FCDO

Список всех стран с предупреждениями о поездках

data_status

Проверка, какие наборы данных загружены, и количество записей

Естественный язык (опционально)

Инструмент

Что делает

travel_agent

Задайте любой вопрос о путешествиях — Gemini направляет к нужным инструментам и возвращает объединённый ответ

Требуется GEMINI_API_KEY. Пример: «Самые дешёвые авиабилеты из Цюриха в Рим на следующую неделю, и нужна ли мне виза?»

Как это работает

1. Обнаружение инструментов

При запуске MoltTravel подключается к каждому внешнему MCP-серверу, вызывает tools/list и регистрирует каждый обнаруженный инструмент с префиксом {provider}_{tool_name}:

kiwi       → kiwi_search-flight, kiwi_feedback-to-devs
navifare   → navifare_flight_pricecheck, navifare_format_flight_pricecheck_request
peek       → peek_search_experiences, peek_experience_details, ...
lastminute → (discovered at runtime)

Собственные инструменты (аэропорты, авиакомпании, визы, страны, FCDO) регистрируются напрямую.

2. Прозрачный для схем прокси

Клиенты видят оригинальную JSON Schema внешнего сервера для каждого инструмента — перечисления, вложенные объекты, $ref и всё остальное. Внутри MoltTravel использует разрешающую модель Pydantic (Any для всех полей), чтобы аргументы проходили без потерь при валидации. Внешний MCP-сервер сам проверяет свои аргументы.

# Client sees the real schema
parameters = input_schema          # original from upstream

# Server doesn't re-validate types — just passes through
fields[prop_name] = (Any, Field(default=None))

3. Ленивая загрузка данных

Статические наборы данных (аэропорты, авиакомпании, визы) загружаются при первом использовании за асинхронными блокировками. Нет затрат при запуске, нет лишнего трафика, если вы используете только инструменты для авиабилетов.

Конфигурация

Переменная

По умолчанию

Описание

PORT

8000

Порт сервера

GEMINI_API_KEY

Включает инструмент маршрутизации на естественном языке travel_agent

Развёртывание

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "molttravel_server.py"]
docker build -t molttravel .
docker run -p 8000:8000 molttravel

Сервер читает PORT из переменных окружения и привязывается к 0.0.0.0 — он работает из коробки на любой контейнерной платформе. Просто укажите команду запуска python molttravel_server.py.

Структура проекта

moltravel-mcp/
├── molttravel_server.py        # Server core — proxy logic, native tools, routing
├── requirements.txt            # mcp[cli], httpx
├── test_search.py              # Integration test client
└── providers/
    ├── __init__.py             # MCP_PROVIDERS registry + exports
    ├── mcp_client.py           # Generic HTTP client for upstream MCP servers
    ├── data_loader.py          # CSV downloader + haversine distance
    ├── airports.py             # 45K airports from OurAirports
    ├── airlines.py             # 7K airlines from OpenFlights
    ├── visas.py                # Visa requirements from Passport Index
    ├── restcountries.py        # REST Countries API
    ├── fcdo.py                 # UK FCDO travel advisories
    └── gemini.py               # Gemini Flash tool router

Расширение

Добавление MCP-провайдера

Добавьте одну строку в providers/__init__.py и перезапустите:

MCP_PROVIDERS = {
    "kiwi": McpClient("https://mcp.kiwi.com/mcp"),
    "navifare": McpClient("https://mcp.navifare.com/mcp"),
    "peek": McpClient("https://mcp.peek.com/mcp"),
    "your_provider": McpClient("https://mcp.example.com/mcp"),  # new
}

Инструменты обнаруживаются и регистрируются автоматически как your_provider_{tool_name}.

Добавление собственного инструмента

@server.tool(name="my_tool")
async def my_tool(query: str) -> str:
    """Description shown to MCP clients."""
    return "result"

Источники данных и лицензии

Набор данных

Источник

Лицензия

Аэропорты

OurAirports

Общественное достояние

Авиакомпании

OpenFlights

ODbL 1.0

Визовые требования

Passport Index

MIT

Информация о странах

REST Countries

MPL 2.0

Предупреждения о поездках

UK FCDO

OGL v3.0

Участие в разработке

  1. Сделайте форк репозитория

  2. Создайте ветку (git checkout -b feature/my-feature)

  3. Внесите изменения и протестируйте (python molttravel_server.py)

  4. Откройте pull request

Лицензия

MIT

F
license - not found
Not graded
quality - not tested
F
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

  • Flight search & booking for AI agents. 400+ airlines, $20-50 cheaper than OTAs.

  • Live flight prices and working booking links for AI agents and travel apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/navifare/moltravel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server