关于 easygroupflights
easygroupflights 是用于安排团体航空出行并查询小型团体普通票价的 MCP 服务。它会整理需人工处理的团体报价询问,也可为 9 人及以下的团体搜索可预订票价。
主要功能
- 01准备并提交团体报价询问
- 02核对团体预订要求
- 03搜索最多 9 人的实时票价
- 04获取票价详情和预订链接
- 05提供旅行指南和行程提示词
适用场景
- 01为 10 人及以上团体申请协商票价
- 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,两个票价工具才会出现在 tools/list 中——无法运行的已公布工具,还不如不提供。
egf_get_service_info 会列出各市场的人工联系方式,包括网站、电子邮件、电话和 WhatsApp,方便 Agent 将用户转接给工作人员。
每个工具都会:
- 明确设置全部四项注释(
readOnlyHint、destructiveHint、idempotentHint、openWorldHint)。只有egf_request_group_quote会写入数据,且不会执行任何破坏性操作。 - 声明
outputSchema,并在返回文本的同时返回structuredContent。 - 使用 snake_case 输入。
写入操作分为两步,因为并非每个客户端都会在写入前征求用户同意。准备工具会返回摘要和 confirmation_token,该令牌由 CONFIRM_SECRET 签名,有效期为 15 分钟。写入操作只接受该令牌,因此不会发送摘要中未显示的任何内容。
它接受可选的 idempotency_key。如果不提供,则令牌本身会用作键,因此每项准备好的写入最多只会执行一次。键会按 Cloudflare 数据中心保存 24 小时。
使用 bearer token GATEWAY_TOKEN 的调用方是 Tripdesk 网关:
- 它们有独立的速率限制,每分钟 1,200 次;其他调用方则按地址限制为每分钟 60 次。
- 它们的预订链接不会添加标记。直接调用方的链接会添加
utm_source=mcp。
每次工具调用都会在 28 秒内返回结果。
egf_search_flights 使用 limit(默认值为 10,最大值为 20)和 cursor 分页。每项票价都带有一个不透明的 offer_id,有效期为 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 中一步完成的写入操作会被拒绝,并提示先调用哪个准备工具。
隐私
服务器会接收哪些信息、信息会发送到哪里以及保留多久: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 | 团队外出活动、奖励旅游、会议:固定的周次、舱位组合、单张发票 |
pilgrimage | 教区和信仰团体:参与者的付款方式、无障碍需求 |
每个提示词都接受可选的 market(en、pl、at),以及已知的任何信息:origin、destination、dates、travellers。
资源
Agent 可以引用而非依赖回忆的资料;每项资料均以 Markdown 格式通过其公开 URL 提供,因此引用的资源本身就是读者可以访问的链接。
- 指南:三个市场网站上的所有内容页面(每个网站 16 页,分别提供英语、波兰语和德语版本),从各网站发布的
/mcp-resources.json读取。 - 研究报告:已发布的 EGF Data Desk 研究报告,提供英语和波兰语版本,从各博客的 Ghost Content API 读取。表格会保留为表格。
两类资料均按需获取并缓存一小时,因此无需重新部署服务器,新内容就能送达 Agent。
使用方法
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"
}
}
}
传输方式为 streamable HTTP。服务器无状态——不会发放会话 ID,也不需要 Durable Objects,因为每次工具调用都是独立完整的。
配置
公开值保存在 wrangler.toml 中:
| 变量 | 含义 |
|---|---|
SITE_URL | 面向用户的网站,显示在工具输出和落地页中 |
GROUP_MIN_PASSENGERS | 达到此人数的团体即视为团体预订。默认值为 10 |
FARE_CURRENCY | 票价服务报价所用的货币。默认值为 EUR |
使用 wrangler secret put 设置三个密钥:
| 密钥 | 含义 |
|---|---|
AUTOPILOT_URL | 团体询价受理地址。它属于基础设施,而非凭据;由于此仓库是公开的,因此将其设为密钥 |
AUTOPILOT_API_KEY | 作为 X-API-Key 发送至受理端点。如果两者任一未设置,egf_request_group_quote 会拒绝请求,而不会静默失败 |
PELIKAN_MCP_URL | Pelikan MCP 服务的 streamable 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 中(已加入 gitignore)。不设置
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 提供目录清单。
市场
每个市场对应一个站点;市场决定由哪个品牌处理咨询,以及将线索归属到哪个域名。
market | 站点 | 语言 |
|---|---|---|
en | easygroupflights.com | 英语 |
pl | grupoweloty.pl | 波兰语 |
at | gruppenfluege.at | 德语 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。