MoltTravel
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MoltTravelCan you check if I need a visa to travel from the US to Japan?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MoltTravel
One MCP server. Every travel tool.
Search flights, compare prices, check visas, look up airports, get travel advisories — through a single endpoint.
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)Why?
Travel data is scattered across dozens of APIs, each with its own auth, format, and quirks. MoltTravel aggregates them behind a single Model Context Protocol endpoint:
21+ tools from 4 upstream MCP providers + 6 built-in datasets
Zero config for static data — airports, airlines, and visas load lazily with no API keys
Schema-transparent proxy — clients see the real upstream JSON Schema; upstream servers validate their own args
One line to connect from Claude Desktop, Claude Code, Cursor, or any MCP client
Related MCP server: orizn-visa-mcp
Quick Start
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.pyServer starts at http://localhost:8000/mcp. That's it.
Connect Your Client
Add to claude_desktop_config.json:
{
"mcpServers": {
"molttravel": {
"url": "http://localhost:8000/mcp"
}
}
}Add to .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"})Tools
Flights & Pricing
Tool | Provider | What it does |
| Kiwi.com | Search flights by route, date, passengers, cabin class |
| Navifare | Parse flight details from natural language into structured data |
| Navifare | Compare a flight's price across multiple booking sites |
Experiences & Activities
Tool | Provider | What it does |
| Peek.com | Search 300K+ verified activities worldwide |
| Peek.com | Full details, reviews, and photos for an experience |
| Peek.com | Check availability and pricing for specific dates |
| Peek.com | Find region IDs by name |
| Peek.com | Browse activity categories and tags |
| Peek.com | Render embeddable activity widgets |
Reference Data (built-in, no API keys needed)
Tool | Dataset | What it does |
| OurAirports | Look up by IATA or ICAO code |
| OurAirports | Search by name, filter by country or type |
| OurAirports | Find airports within a radius of any coordinates |
| OpenFlights | Look up by IATA or ICAO code |
| OpenFlights | Search by name, filter by country or active status |
| Passport Index | Check visa requirement between two countries |
| Passport Index | Full visa-free/VOA/e-visa breakdown for a passport |
| REST Countries | Capital, currencies, languages, timezones, population |
| UK FCDO | Safety advisories, entry requirements, health warnings |
| UK FCDO | List all countries with travel advisories |
| — | Check which datasets are loaded and record counts |
Natural Language (optional)
Tool | What it does |
| Ask any travel question — Gemini routes to the right tools and returns a combined answer |
Requires
GEMINI_API_KEY. Example: "Cheapest flights from Zurich to Rome next week, and do I need a visa?"
How It Works
1. Tool Discovery
On startup, MoltTravel connects to each upstream MCP server, calls tools/list, and registers every discovered tool with a {provider}_{tool_name} prefix:
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)Native tools (airports, airlines, visas, countries, FCDO) are registered directly.
2. Schema-Transparent Proxy
Clients see the original upstream JSON Schema for each tool — enums, nested objects, $ref, everything. Internally, MoltTravel uses a permissive Pydantic model (Any for all fields) so arguments pass through without lossy validation. The upstream MCP server validates its own args.
# 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. Lazy Data Loading
Static datasets (airports, airlines, visas) download on first use behind async locks. No startup penalty, no wasted bandwidth if you only use flight tools.
Configuration
Variable | Default | Description |
|
| Server port |
| — | Enables the |
Deployment
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 molttravelThe server reads PORT from the environment and binds to 0.0.0.0 — it works out of the box on any container platform. Just point the start command at python molttravel_server.py.
Project Structure
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 routerExtending
Add an MCP provider
Add one line to providers/__init__.py and restart:
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
}Tools are discovered and registered automatically as your_provider_{tool_name}.
Add a native tool
@server.tool(name="my_tool")
async def my_tool(query: str) -> str:
"""Description shown to MCP clients."""
return "result"Data Sources & Licenses
Dataset | Source | License |
Airports | Public Domain | |
Airlines | ODbL 1.0 | |
Visa Requirements | MIT | |
Country Info | MPL 2.0 | |
Travel Advisories | OGL v3.0 |
Contributing
Fork the repo
Create a branch (
git checkout -b feature/my-feature)Make changes and test (
python molttravel_server.py)Open a pull request
License
This server cannot be installed
Maintenance
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
- FlicenseCqualityCmaintenanceEnables searching for flights (one-way, round-trip, multi-city) and hotels using the Duffel API, with support for filtering by cabin class, passengers, dates, and viewing accommodation reviews.5
- AlicenseAqualityCmaintenanceCheck visa requirements for 39,585 passport-destination pairs in 15 languages. Returns visa type, required documents, application process, and travel tips from 136 official government sources. Free quick checks without API key.51301MIT
- AlicenseAqualityAmaintenanceEnables travel search workflows including airport lookup, route comparison, travel timing guidance, and external booking links with commission-eligible links.5281MIT
- AlicenseNot gradedqualityDmaintenanceProvides real-time flight status, airport weather, delays, cheap flight deals, and TSA wait times without requiring an API key.17MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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