关于 MolTravel
MolTravel 是面向旅行者和旅行规划 Agent 的 MCP 服务,整合旅行搜索与参考数据。它代理旅行服务商的工具,并提供机场、签证和旅行提示数据集。
主要功能
- 01航班搜索与价格比较
- 02活动和体验搜索
- 03机场与航空公司查询
- 04签证与国家信息
- 05旅行安全提示
- 06可选自然语言路由
适用场景
- 01比较不同预订网站的航班价格
- 02查找活动并查看日期可用性
- 03查询机场信息和签证要求
- 04查看目的地旅行提示
MCP 相关
通过单一 MCP 端点提供上游旅行 MCP 服务商的工具及原生工具。客户端可见上游工具的 Schema,参数会传递给上游服务验证。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.moltravel.com/mcpclaude mcp add --transport http com-moltravel-travel https://mcp.moltravel.com/mcp{"mcpServers":{"com-moltravel-travel":{"type":"http","url":"https://mcp.moltravel.com/mcp"}}}在 Cursor 中打开{"servers":{"com-moltravel-travel":{"type":"http","url":"https://mcp.moltravel.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-moltravel-travel":{"type":"http","url":"https://mcp.moltravel.com/mcp"}}}{"mcpServers":{"com-moltravel-travel":{"serverUrl":"https://mcp.moltravel.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
56| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | |
| fields | any | 否 | |
| search_by | string | 否 |
详细介绍
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)
为什么选择 MoltTravel?
旅行数据分散在数十个 API 中,每个 API 都有自己的身份验证方式、格式和特性。MoltTravel 将它们整合到一个模型上下文协议端点后:
- 21+ 个工具,来自 4 个上游 MCP 提供方和 6 个内置数据集
- 静态数据无需配置——机场、航空公司和签证数据会在需要时加载,无需 API 密钥
- 架构透明的代理——客户端可以看到真实的上游 JSON Schema;上游服务会验证自己的参数
- 只需一行即可连接 Claude Desktop、Claude Code、Cursor 或任何 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
添加到 claude_desktop_config.json:
{
"mcpServers": {
"molttravel": {
"url": "http://localhost:8000/mcp"
}
}
}
Claude Code
添加到 .claude/settings.json:
{
"mcpServers": {
"molttravel": {
"url": "http://localhost:8000/mcp"
}
}
}
Python(编程方式)
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 | 查看护照免签、落地签和电子签证的完整分类 |
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 自然语言路由工具 |
部署
Docker
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
Render / Railway / Fly.io
服务会从环境中读取 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 |
贡献
- Fork 此仓库
- 创建分支(
git checkout -b feature/my-feature) - 修改并测试(
python molttravel_server.py) - 发起拉取请求
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。