この記事ではMCPに特化して解説します。MCP(Model Context Protocol)全般は MCPサーバーの作り方2026完全ガイド をご覧ください。

概要

Fli(Flight Search MCP Server and Library)は、Google Flightsの航空券検索機能をプログラマティックに利用できるPythonライブラリです。MCP(Model Context Protocol)サーバーとして動作し、Claude等のLLMから航空券検索を実行できます。WebスクレイピングではなくGoogle Flightsを直接操作することで、高速かつ安定した検索体験を実現しています。

MCPエコシステムの広がりとともに、fliのような「特定ドメインの外部サービスをLLMから直接操作する」アプローチは注目を集めています。同様のMCP活用例として xmcp - X APIとClaudeを連携させるMCP実装ツール も参照してください。

主な機能

  • 直接API操作: Google Flightsとの直接通信により、HTML解析やブラウザ自動化を排除。スクレイピングに比べて高速かつ信頼性が高い
  • MCPサーバー対応: Claude Desktop等のMCPクライアントと直接統合。LLMから自然言語で航空券検索を指示できる
  • UI変動への耐性: APIベースのため、Google FlightsのUI更新に左右されない安定性を確保
  • モジュラー設計: 拡張性を重視した構成により、カスタマイズや統合が容易

fliのアーキテクチャとデータフロー

sequenceDiagram participant U as ユーザー participant C as Claude Desktop participant F as fli MCPサーバー participant G as Google Flights API U->>C: 「東京→ニューヨーク
最安値を探して」 C->>F: search_dates()
(MCP経由) F->>G: 日程範囲で一括クエリ G-->>F: 検索結果(JSON) F-->>C: 構造化レスポンス C-->>U: 最安値日程・価格を提示 U->>C: 「4月20日の便を詳しく」 C->>F: search_flights()
(詳細フィルタ付き) F->>G: 指定日クエリ G-->>F: 便一覧(JSON) F-->>C: フィルタ済みレスポンス C-->>U: 航空会社・時刻・価格を比較提示

利用可能なツール

MCPサーバーは以下の2つの主要ツールを提供します:

ツール 説明
search_flights 指定日の航空券を詳細なフィルタ付きで検索
search_dates 柔軟な日程範囲内で最安値の航空券を発見

search_flights パラメータ

パラメータ 説明
origin 文字列 出発空港のIATAコード(例:JFK
destination 文字列 到着空港のIATAコード(例:LAX

導入方法

pipxでのインストール:

pipx install flights

MCPサーバーの起動:

# STDIO経由で実行
fli-mcp

# HTTP経由で実行(ストリーミング対応)
fli-mcp-http  # http://127.0.0.1:8000/mcp/ でサービス提供

Claude Desktopとの連携設定(claude_desktop_config.json):

{
  "mcpServers": {
    "fli": {
      "command": "/Users/<user>/.local/bin/fli-mcp"
    }
  }
}

<user> は実際のユーザー名に置き換えてください。which fli-mcp コマンドで正確なパスを確認できます。

fliのMCPセットアップポイント fli-mcp の実行パスは環境によって異なります。pipx install flights でインストールした場合、バイナリは ~/.local/bin/ 以下に配置されることが多いですが、which fli-mcp で必ず確認してください。また、HTTP経由(fli-mcp-http)を使うとストリーミング対応になり、検索結果をリアルタイムで受け取れます。複数のMCPサーバーを同時に利用する場合、Claude Desktop設定ファイルの mcpServers オブジェクトに各サーバーのエントリを追加するだけで共存できます。

技術的な特徴

  • コア言語: Python
  • API統合: Google Flights直接操作(リバースエンジニアリングベース)
  • プロトコル: MCP(Model Context Protocol)
  • アーキテクチャ: WebスクレイピングレスのAPIファースト設計

こんなユースケース向け

ユースケース:LLMを使った旅行プランニング自動化 課題: 複数の出発日・経由地の組み合わせを手動で比較するのは時間がかかり、最安値を見逃しやすい。 解決: Claude DesktopにfliのMCPサーバーを接続し、自然言語でプランニングを依頼する。
  • 「来月中に東京発ニューヨーク行きで最安値の日程は?」→ search_dates() で日程範囲を一括スキャン
  • 「4月20日の便を航空会社別に比較して」→ search_flights() で詳細フィルタ検索
  • ClaudeがJSON結果を解釈し、自然言語で価格・時刻・乗り継ぎ情報を整理して提示
効果: 手動で複数日程をサイト検索する手間がなくなり、複雑な条件の比較も会話形式で完結します。エージェント型アプリケーションのバックエンドとして組み込む場合も、MCPインターフェースがそのまま利用できます。

エージェント型アプリケーションへの航空券検索機能の組み込みにも適しており、fliをバックエンドとして既存のLLMエージェントに旅行ドメインの能力を追加できます。

MCP連携の応用例をさらに探したい場合は、Colab MCP - Google ColabをMCPサーバー化してAIエージェントから操作する方法も参考になります。

スクレイピング vs 直接API操作の比較

項目 Webスクレイピング fli(直接API操作)
速度 UI描画待ちで低速 高速
安定性 UIの変更で壊れやすい UI変更に影響なし
実装複雑度 ブラウザ自動化が必要 Python関数呼び出しのみ
MCP統合 別途実装が必要 標準対応

参照ソース