MoltTravel
MoltTravel
1つの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に散らばっており、それぞれが独自の認証、フォーマット、癖を持っています。MoltTravelはそれらを単一のModel Context Protocolエンドポイントの背後に集約します:
21以上のツール——4つの上流MCPプロバイダー + 6つの組み込みデータセット
静的データはゼロ設定——空港、航空会社、ビザはAPIキー不要で遅延読み込み
スキーマ透過プロキシ——クライアントは実際の上流JSON Schemaをそのまま参照し、上流サーバーが自身の引数を検証
1行で接続——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 | 2国間のビザ要件を確認 |
| Passport Index | パスポートに対するビザ免除/VOA/eビザの完全な内訳 |
| 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. スキーマ透過プロキシ
クライアントは各ツールの 元の上流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 に1行追加して再起動:
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 |
コントリビューション
リポジトリをフォーク
ブランチを作成(
git checkout -b feature/my-feature)変更を加えてテスト(
python molttravel_server.py)プルリクエストを開く
ライセンス
This server cannot be deployed
Maintenance
Related MCP Connectors
Your personal AI travel concierge — flights, hotels, 116M+ POIs, visas, weather & more
Search and explore a global travel points-of-interest catalog (cities, countries, POIs).
Search ~300 airlines and book flights with a checkout link. OAuth sign-in by email code.
AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.
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.567 npm1MIT
- AlicenseAqualityAmaintenanceEnables travel search workflows including airport lookup, route comparison, travel timing guidance, and external booking links with commission-eligible links.5582 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides real-time flight status, airport weather, delays, cheap flight deals, and TSA wait times without requiring an API key.8 npmMIT