Skip to main content
Glama
navifare
by navifare

MoltTravel

Un servidor MCP. Todas las herramientas de viaje.

Busca vuelos, compara precios, consulta visados, busca aeropuertos, recibe avisos de viaje — a través de un único endpoint.

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)

¿Por qué?

Los datos de viaje están dispersos entre decenas de APIs, cada una con su propio método de autenticación, formato y peculiaridades. MoltTravel los agrega detrás de un único endpoint de Model Context Protocol:

  • 21+ herramientas de 4 proveedores MCP upstream y 6 conjuntos de datos integrados

  • Cero configuración para los datos estáticos: los aeropuertos, las aerolíneas y los visados se cargan de forma diferida, sin claves de API

  • Proxy de esquema transparente — los clientes ven el JSON Schema real de upstream; los servidores upstream validan sus propios argumentos

  • Una sola línea para conectarse desde Claude Desktop, Claude Code, Cursor, o Cualquier cliente MCP

Related MCP server: orizn-visa-mcp

Inicio rápido

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

El servidor arranca en http://localhost:8000/mcp. Eso es todo.

Conecta tu cliente

Añade los siguiente a claude_desktop_config.json:

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

Añade lo siguiente a .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"})

Herramientas

Vuelos y precios

Tool

Provider

¿Qué hace?

kiwi_search-flight

Kiwi.com

Busca vuelos por ruta, fecha, pasajeros y clase de cabina

navifare_format_flight_pricecheck_request

Navifare

Convierte los detalles del vuelo de lenguaje natural a datos estructurados

navifare_flight_pricecheck

Navifare

Compara el precio de un vuelo entre varias webs de reserva

Experiencias y actividades

Tool

Proveedor

¿Qué hace

reak_search_experiences

Peek.com

Busca más de 300.000 experiencias verificadas en todo el mundo

peek_experience_details

Peek.com

Información completa, reseñas y fotos de una experiencia

peek_experience_availability

Peek.com

Consulta la disponibilidad y los precios para fechas concretas

peek_search_regions

Peek.com

Encuentra los ID de región por nombre

peek_list_tags

Peek.com

Explora categorías y etiquetas de actividades

peek_render_activity_tiles

Peek.com

Genera widgets de actividades integrables

Datos de referencia (integrados, no requieren claves de API)

Tool

Dataset

¿Qué hace

airports_lookup

Nuestros propios

(no) aeropuertos.

| airports_lookup | OurAirports | Busca por código IATA o OACI | | airports_search | OurAirports | Busca por nombre, filtra por país o tipo | | airports_near | OurAirports | Encuentra aeropuertos a una distancia de cualquier coordenada | | airlines_uplookup | OpenFlights | Busca por código IATA o OACI | | airlines_search | OpenFlights | Busca por nombre, filtracion by país o estado de actividad | | visa_check | Passport Index | Muestra entre dos países el |}{} (consulta requisito de visado entre dos países) | | visa_summary | Passport Index | Desglose completo de visado libre de /VOA/e-visa 一 pasaporte | |restcountries_country_info| REST Countries| Tenencia, monedas, idiomas, zonas horarios,tiempo | |fcdo_travel_advice | Reino Unido | Reino Unido – FCDO | Consejos de seguridad, requisitos de entrada, alertas | |fcdo_list_countries | Reino Unido | Reino Unido – FCDO | Lista de todos los países con recomendaciones de viaje | |data_status` | — | Comprueba los datos cargados y su número de registros |

Lenguaje natural (opcional)

Tool

¿Qué hace

travel_agent

Formula cualquier consulta de viaje + __________________ (n)

Requiere GEMINI_API_KEY. Ejemplo: "Billetes fáciles de Zúrich a Roma para las próximas semanas, ¿necesito visado?"

Cómo funciona

1. Descubrimos de herramientas

Al arrancar, MoltTravel se conecta a cada servidor MCP superior, llama a tools/list y registra cada herramienta descubierta con el prefijo plano {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)

Las herramientas nativas (airport, airlines, visados, países, FCDO) se registran directamente.

2. Proxy transparente de esquemas

Cada cliente ve el JSON Schema original de tipo upstream de cada herramienta — enumerados, objetos anidados, $ref, todo. Internamente, MoltTravel utiliza un modelo Pydantic permisivo (Any para todos los campos), de forma que los argumentos pasan sin una validación que produzca pérdida de información. El servidor MCP upstream valida sus propios argumentos.

# 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. Carga perezosa de datos

Losdatos estáticos (aeropuertos, aerolíneas, visados) se descargan en el primer uso bloqueos asíncronos. Sin penalización de inicio ni ancho de banda desperdiciado si solo retirar las herramientas de vuelo.

Configurar

Variable

Por defecto

Descripción

PORT

8000

Puerto del servidor

GEMINI_ENT_API_KEY

Activa la herramienta de routing a lenguaje natural travel_agent

Despliegue

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

El servidor lee PORT del entorno y enlaza con 0.0.0.0 — {{ #caption-header }}.

Añadir una versión en español

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

Ampliación

Añadir un proveedor MCP

Añade una línea a providers/init.py y reinicia:

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
}

Las herramientas se descubren y se registran de forma automática como your_provider_{tool_name}.

Añadir una herramienta nativa

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

Fuentes de datos y licencias

Dataset

Fuente

Licencia

Aeronavers

OurAirports

Dominio público

s

OpenFlights

ODbL 1.0

Requisitos del visado

Passport Index

MIT

Información de países

REST Countries

MPL 2.0

Consejo de viaje

UK FCDO

OGL v3.0

Contribucionesn

  1. Haz un fork del repositorio

  2. Crea una rama (git checkout -b my-feature)

  3. Haz los cambios y prueba (python molttravel_server.py)

  4. Abre una sala de combinación

Licencia

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