easygroupflights について
easygroupflightsは、団体航空旅行の手配と少人数向け通常運賃の検索を行うMCPサーバーです。人間の担当者に送る団体見積もり依頼を準備し、9人以下のグループ向けには予約可能な運賃を検索できます。
主な機能
- 01団体見積もり依頼の準備と送信
- 02団体予約条件の確認
- 039人以下のリアルタイム運賃検索
- 04運賃詳細と予約リンクの取得
- 05旅行ガイドと行程別プロンプトの提供
活用シーン
- 0110人以上の団体で交渉運賃を依頼する場面
- 02少人数グループ向けの予約可能な便の検索
- 03学校旅行やスポーツチームの行程情報の整理
MCP 対応
Streamable HTTPを通じて、MCPクライアントに航空問い合わせ・運賃ツール、ガイド付きプロンプト、旅行リソースを提供します。団体依頼は準備と確認トークンの取得後に送信します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.easygroupflights.com/mcpclaude mcp add --transport http com-easygroupflights-easygroupflights https://mcp.easygroupflights.com/mcp{"mcpServers":{"com-easygroupflights-easygroupflights":{"type":"http","url":"https://mcp.easygroupflights.com/mcp"}}}Cursor で開く{"servers":{"com-easygroupflights-easygroupflights":{"type":"http","url":"https://mcp.easygroupflights.com/mcp"}}}VS Code で開く{"mcpServers":{"com-easygroupflights-easygroupflights":{"type":"http","url":"https://mcp.easygroupflights.com/mcp"}}}{"mcpServers":{"com-easygroupflights-easygroupflights":{"serverUrl":"https://mcp.easygroupflights.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
5| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| market | enum | いいえ | 説明する市場。デフォルトは en です。en | pl | at |
詳細
easygroupflights MCP
easygroupflights.com向けのModel Context Protocolサーバーです。IATA認定の団体航空旅行を提供し、500社以上の航空会社から交渉済み運賃を利用できます。
AI アシスタントがウェブサイトと同じことを行えるようにします。旅行が団体予約に該当するかを判断し、エージェントが料金を提示するために必要な情報を集め、人間の担当者に問い合わせを送信します。また、団体としては人数が少なすぎる場合は、通常の予約可能な運賃を検索します。
団体旅行に別のツールが必要な理由
団体運賃は航空会社と直接交渉して決めます。一般向けの予約エンジンでは販売されていないため、検索 API から料金を取得することはできません。このサーバーでは代わりに、必要事項をすべて記入した構造化問い合わせを送信し、次に何が起こるかを旅行者に正直に伝えます。専門スタッフからメールで約2時間以内に返信があります。複雑な経路の場合は、最大24時間かかります。
基準となる人数は座席を利用する旅行者10人です。2歳未満の膝上幼児は座席を利用しないため、人数に含めません。
ツール
| ツール | 説明 |
|---|---|
egf_get_service_info | 団体予約の仕組み、人数の基準、見積もり料金、所要時間を確認できます。何も送信しません。 |
egf_prepare_group_quote | 旅行者が10人以上の場合に使用します。依頼内容を確認し、確認トークンとともに送信予定の内容をそのまま返します。何も送信しません。 |
egf_request_group_quote | 準備済みの依頼内容を団体旅行の専門スタッフに送信します。トークンのみを受け取ります。料金ではなく確認結果を返します。 |
egf_search_flights | 旅行者が9人以下の場合に使用します。航空会社や乗り継ぎ回数を含む最新の運賃を検索し、それぞれに offer_id が付与されます。 |
egf_get_offer | offer_id で指定した運賃を取得します。料金、フライト、予約リンク、valid_until が含まれます。 |
PELIKAN_MCP_URL が設定されていない場合、2つの運賃ツールは tools/list から除外されます。実行できないツールを公開するより、公開しないほうが適切です。
egf_get_service_info は各市場のウェブサイト、メールアドレス、電話番号、WhatsApp など、人間の担当者への連絡先を返すため、エージェントはユーザーを担当者につなげられます。
すべてのツールは次のとおりです。
- 4つすべてのアノテーション(
readOnlyHint、destructiveHint、idempotentHint、openWorldHint)を明示的に設定します。書き込みを行うのはegf_request_group_quoteのみで、破壊的な操作はありません。 outputSchemaを宣言し、テキストとともにstructuredContentを返します。- 入力には snake_case を使用します。
書き込みを2段階に分けているのは、書き込み前にユーザーへ確認しないクライアントもあるためです。準備ツールは要約と confirmation_token を返します。このトークンには CONFIRM_SECRET で署名され、有効期限は15分です。書き込みツールが受け取るのはこのトークンのみなので、要約に表示されていない内容が送信されることはありません。
任意の idempotency_key を指定できます。指定しない場合は、トークン自体がキーとなるため、準備した書き込みは最大1回しか実行されません。キーは Cloudflare のデータセンターごとに24時間保持されます。
GATEWAY_TOKEN をベアラートークンとして提示する呼び出し元は、Tripdesk ゲートウェイとして扱われます。
- 独自のレート制限は1分あたり1,200件です。それ以外の呼び出し元は、アドレスごとに1分あたり60件です。
- 予約リンクにはタグが付与されません。直接呼び出す場合のリンクには
utm_source=mcpが付与されます。
すべてのツール呼び出しは28秒以内に応答します。
egf_search_flights は limit(デフォルトは10、最大20)と cursor を使ってページ分割します。各運賃には、不透明な offer_id が1つ付与され、有効期間は30分です。egf_get_offer に必要なのはこれだけです。検索結果には予約リンク、セッション ID、旅行 ID は含まれません。
2.1で削除
egf_prepare_flight_offer と egf_send_flight_offer(1.x の send_flight_offer)は削除されました。これらのツールは、運賃サービスのエージェント向けオファーメールを中継していました。この機能は、呼び出し元が指定したテキストを含むブランド付きメールを、任意のアドレスに送信するものでした。ディレクトリのレビューでこの点が指摘されたため、代わりに egf_get_offer が予約リンクを返します。
1.x からのアップグレード
2.0 では、ツール名に egf_ 接頭辞を付け、入力を snake_case に変更しました。
1.x で機能していたもののほとんどは、引き続き動作します。
- 旧名(
request_group_quoteなど)でも引き続き応答しますが、一覧には表示されなくなりました。 - camelCase の引数(
departureDate、fareIdなど)は、対応する snake_case 名として読み取られます。 - 1.x の 1 ステップでの書き込みは拒否され、先に呼び出す必要がある準備用ツールの名前を示すメッセージが返されます。
プライバシー
サーバーが受け取る情報、その送信先、保存期間については、easygroupflights.com/mcp-privacy/ をご覧ください。データ管理者は pelicantravel.com s.r.o. です。プライバシーに関するお問い合わせは [email protected] までお寄せください。
プロンプト
ガイド付きの依頼概要です。Claude Desktop と claude.ai では、「+」→「Connectors」→「Add from Easygroupflights」から利用できます。Claude Code では /mcp__easygroupflights__<name> です。それぞれ、窓口が必要とする情報と、その種類の旅行ならではの質問をユーザーに順に確認し、ユーザーの確認後にのみ送信します。
| プロンプト | 対象 |
|---|---|
school-trip | 学校・大学:生徒と職員を分けて確認し、引率比率の算定に必要な年齢や、提出待ちの同意書も確認します |
wedding-guests | リゾートウェディング:複数の出発都市からのゲスト、最も遅い到着時刻、支払い担当者を確認します |
sports-team | クラブ・チーム:初戦の時刻、用具、試合日程のリスクを確認します |
company-offsite | 社外イベント、報奨旅行、会議:固定の週、座席クラスの構成、請求書 1 枚を確認します |
pilgrimage | 教区・信仰団体:参加者の支払い方法、アクセシビリティを確認します |
すべてのプロンプトでは、任意の market(en、pl、at)と、すでに判明している origin、destination、dates、travellers を指定できます。
リソース
エージェントが記憶から答えるのではなく、引用できる資料です。それぞれの公開 URL から Markdown として提供されるため、引用されたリソースは読者がそのままアクセスできるリンクになります。
- ガイド:3 つのマーケットサイトのすべてのコンテンツページ(各サイト 16 ページ。英語、ポーランド語、ドイツ語)。各サイトが公開している
/mcp-resources.jsonから読み込みます。 - 調査レポート:公開済みの EGF Data Desk の調査レポート(英語、ポーランド語)。各ブログの Ghost Content API から読み込みます。表は表のまま保持されます。
どちらも必要に応じて取得し、1 時間キャッシュします。そのため、サーバーを再デプロイしなくても、新しいコンテンツがエージェントに届きます。
使い方
claude mcp add --transport http easygroupflights https://mcp.easygroupflights.com/mcp
Claude Desktop または claude.ai では、「Settings」→「Connectors」→「Add custom connector」を選択し、https://mcp.easygroupflights.com/mcp を貼り付けます。
その他の MCP クライアントでは、設定に次の内容を追加します。
{
"mcpServers": {
"easygroupflights": {
"type": "http",
"url": "https://mcp.easygroupflights.com/mcp"
}
}
}
トランスポートはストリーミング可能な HTTP です。サーバーはステートレスです。セッション ID を発行せず、各ツール呼び出しが自己完結しているため、Durable Objects は必要ありません。
設定
公開値は wrangler.toml に記述します。
| 変数 | 意味 |
|---|---|
SITE_URL | ツールの出力とランディングページに表示される、ユーザー向けサイト |
GROUP_MIN_PASSENGERS | 予約が団体扱いになる最小人数。デフォルトは 10 |
FARE_CURRENCY | 運賃サービスが見積もりに使用する通貨。デフォルトは EUR |
次の 3 つのシークレットは、wrangler secret put を使って設定します。
| シークレット | 意味 |
|---|---|
AUTOPILOT_URL | 団体旅行の問い合わせ受付先。認証情報ではなくインフラストラクチャですが、このリポジトリが公開されているためシークレットとして扱います |
AUTOPILOT_API_KEY | 受付先に X-API-Key として送信されます。いずれかが設定されていない場合、egf_request_group_quote はエラーを無言で無視せず、処理を拒否します |
PELIKAN_MCP_URL | 小規模グループの料金を見積もる Pelikan MCP サーバーのストリーミング可能な HTTP エンドポイント。任意項目です。設定されていない間は、そのツールは非表示になります |
ライセンス
MIT。詳しくは LICENSE をご覧ください。
問い合わせはマーケットのドメイン名のみで識別されます。Autopilot が処理するのは認識済みのソースだけなので、ドメインに何も追加してはいけません。
開発
npm install
npm run dev # wrangler dev on :8787
npm test # unit tests, no network
npm run typecheck
npm run deploy # wrangler deploy
ローカルのシークレットは .dev.vars(Git で無視されます)に保存します。AUTOPILOT_API_KEY を設定しないのが、egf_request_group_quote を最初から最後まで安全に試す方法です。すべての項目を検証し、実際のリードを作成せずに受付の境界で停止します。
手動で試すには、次のように操作します。
curl -s localhost:8787/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
GET / は人が読めるページを、/health はステータス確認用エンドポイントを、/.well-known/mcp.json はディレクトリ用のマニフェストを返します。
市場
市場ごとにサイトが1つあります。市場によって、問い合わせをどのブランドが処理するか、またリードにどのドメインが紐付けられるかが決まります。
market | サイト | 言語 |
|---|---|---|
en | easygroupflights.com | 英語 |
pl | grupoweloty.pl | ポーランド語 |
at | gruppenfluege.at | ドイツ語 |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。