MoltTravel
MoltTravel
一个 MCP 服务器。涵盖所有旅行工具。
搜索航班、比较价格、查询签证、查找机场、 获取旅行建议——全部通过一个端点完成。
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 中,每个 API 都有自己的认证方式、格式和怪癖。MoltTravel 将它们聚合到一个 Model Context Protocol 端点之后:
21+ 个工具,来自 4 个上游 MCP 提供商 + 6 个内置数据集
静态数据零配置——机场、航空公司和签证通过懒加载方式加载,无需 API 密钥
Schema 透明代理——客户端看到真实的上游 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.com | 按航线、日期、乘客数、舱位等级搜索航班 |
| Navifare | 将自然语言中的航班信息解析为结构化数据 |
| Navifare | 在多个预订网站之间比较航班价格 |
体验与活动
工具 | 提供商 | 功能 |
| Peek.com | 搜索全球 30 万+ 已验证活动 |
| Peek.com | 体验的完整详情、评价和照片 |
| Peek.com | 查看特定日期的可用性和价格 |
| Peek.com | 按名称查找地区 ID |
| Peek.com | 浏览活动分类和标签 |
| Peek.com | 渲染可嵌入的活动组件 |
参考数据 (内置,无需 API 密钥)
工具 | 数据集 | 功能 |
| OurAirports | 按 IATA 或 ICAO 代码查询 |
| OurAirports | 按名称搜索,可按国家或类型筛选 |
| OurAirports | 查找任意坐标半径内的机场 |
| OpenFlights | 按 IATA 或 ICAO 代码查询 |
| OpenFlights | 按名称搜索,可按国家或运营状态筛选 |
| Passport Index | 查询两国之间的签证要求 |
| Passport Index | 某本护照的完整免签/落地签/电子签明细 |
| REST Countries | 首都、货币、语言、时区、人口 |
| UK FCDO | 安全建议、入境要求、健康警告 |
| UK FCDO | 列出所有有旅行建议的国家 |
| — | 检查哪些数据集已加载及记录数量 |
自然语言 (可选)
工具 | 功能 |
| 提出任何旅行问题——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. Schema 透明代理
客户端看到每个工具的原始上游 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. 数据懒加载
静态数据集(机场、航空公司、签证)在首次使用时通过异步锁下载。无启动开销,如果只使用航班工具也不会浪费带宽。
配置
变量 | 默认值 | 说明 |
|
| 服务器端口 |
| — | 启用 |
部署
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"数据来源与许可证
数据集 | 来源 | 许可证 |
机场 | 公有领域 | |
航空公司 | ODbL 1.0 | |
签证要求 | MIT | |
国家信息 | MPL 2.0 | |
旅行建议 | OGL v3.0 |
贡献
Fork 本仓库
创建分支(
git checkout -b feature/my-feature)进行修改并测试(
python molttravel_server.py)提交 Pull Request
许可证
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