Token导航 LogoToken导航TokenDH.com
Go Home logo
地图位置stdio官方级别未说明来源级核验

Go Home

MCP Server

Go-home是一款整合机票和火车票查询的智能出行规划软件,通过AI与MCP协议实现跨模式交通组合查询,帮助用户找到最优的回家路线方案。

工具数

0

提示词数

0

GitHub Stars

14

资源数

0
PythonClaude位置天气Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

huanchong-99

提供方

huanchong-99

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Go-home - 回家最优路线查询系统

](https://github.com/huanchong-99/Go-Home)

一款整合机票和火车票查询的智能出行规划软件,通过 AI + MCP 协议实现跨模式交通组合查询,帮助你找到回家的最优路线方案。

项目地址

推荐 API 服务:SiliconFlow API(注册链接,邀请码:JoeKp6UF

  • API Base URL:https://api.siliconflow.cn/v1
  • 提供多种高性价比模型选择
  • 国内访问速度快,稳定性好

功能特性

  • 国际航班查询:支持查询全球 152个 国际机场的航班信息
  • 智能中转推荐:自动通过 39个国内枢纽 + 152个国际机场 计算最优中转组合
  • 灵活查询策略:快速/推荐/全面 三档可选,根据国际节点开关自动调整枢纽数量(8-73个)
  • 国际节点智能开关

- 默认关闭:中国大陆往返其他地区仅使用国内枢纽中转,适合亚洲区域内旅行(如东南亚、东亚、港澳台) - 开启后:启用全球枢纽网络(含中东、欧洲等国际枢纽),适合跨洲际旅行(如去欧美、非洲) - 智能建议:亚洲区域内旅行保持关闭即可,避免不必要的绕路;远程洲际旅行才需开启

  • 跨模式组合:支持 飞机→飞机、飞机→高铁、高铁→飞机、高铁→高铁 等多种组合
  • 14种出行场景:2种直达 + 4种两段中转 + 8种三段中转,每种场景支持2小时/3小时换乘时间
  • 程序化路线计算:所有价格、时长、换乘可行性由程序精确计算,AI 只负责自然语言总结
  • 智能路线检测:自动识别国内/国际路线类型,选择合适的中转枢纽
  • 多策略优化:省钱优先、省时优先、均衡推荐
  • 住宿费用计算:自动识别需要过夜的中转方案,计算真实成本(¥200/次)
  • 现代化 UI:基于 CustomTkinter 的深色/浅色主题界面
  • 便携版发布:打包成独立 exe,无需安装 Python 环境即可使用

核心设计理念

数据计算 vs AI 总结

本系统采用 "程序计算数据,AI 总结结果" 的架构设计:

┌─────────────────────────────────────────────────────────────────┐
│                        传统方案(已弃用)                         │
│  原始数据 ──────────────────────────────────▶ AI 计算+总结       │
│            (大量航班/车次信息)                 (容易产生幻觉)   │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                        Go-home 方案                              │
│  原始数据 ──▶ 程序精确计算 ──▶ 结构化结果 ──▶ AI 自然语言总结    │
│              route_calculator    价格/时长      (无幻觉风险)    │
│                                  均已计算好                       │
└─────────────────────────────────────────────────────────────────┘

优势

  • 价格、时长、换乘时间等关键数据 100% 准确
  • AI 只负责将结构化数据转为用户友好的自然语言描述
  • 避免 AI 在复杂计算场景下产生幻觉

核心功能

国际航班查询

支持查询全球 152个 国际机场,覆盖六大洲主要城市:

地区机场数量主要城市
东南亚16个曼谷、新加坡、吉隆坡、雅加达、马尼拉、普吉岛、巴厘岛
东亚10个东京、大阪、首尔、釜山、福冈、札幌
南亚11个新德里、孟买、科伦坡、马尔代夫、加德满都
中东14个迪拜、多哈、阿布扎比、利雅得、伊斯坦布尔
欧洲34个伦敦、巴黎、法兰克福、阿姆斯特丹、莫斯科、罗马
北美洲26个纽约、洛杉矶、旧金山、芝加哥、温哥华、多伦多
中南美洲10个墨西哥城、圣保罗、布宜诺斯艾利斯
大洋洲12个悉尼、墨尔本、奥克兰、斐济
非洲9个开罗、约翰内斯堡、内罗毕、毛里求斯
港澳台10个香港、澳门、台北、高雄
完整机场列表请查看 中转枢纽.md

智能路线检测

系统自动识别 4 种路线类型,选择最合适的中转枢纽:

路线类型示例自动选择的枢纽
国内路线北京→南京39个国内枢纽
国内→东南亚北京→曼谷华南门户(广州、深圳、昆明)+ 东南亚枢纽
国内→远程国际北京→纽约全球枢纽(含中东、欧洲转机点)
国际→国内曼谷→南京国际枢纽 + 国内门户城市

中转航班解析

正确解析携程的中转航班信息:

  • 多航班号提取(如 CX337/CX872)
  • 中转城市识别(如"经中国香港")
  • 中转等待时间(如"1h35m")
  • 总飞行时长(考虑跨天)

结果导出功能

导出完整的查询数据,便于离线分析和对比:

  • 全量数据:所有单段查询结果(包括成功和失败的查询)+ 所有组合路线方案
  • 详细信息:每个查询的ID、路线、交通方式、查询状态、耗时
  • 智能分组:按段数分组(直达、中转),按中转城市分类
  • 文件命名:自动命名为"Go-home_完整数据_出发地到目的地_日期_时间戳.txt"
  • 数据完整性:包含查询参数、枢纽列表、所有原始查询响应

AI 推荐详情

AI 为所有推荐方案输出完整详情:

  • 具体的航班号或车次号
  • 出发时间、到达时间
  • 价格详情
  • 中转等待时间(如有)
  • 统一格式输出,便于对比选择

便携版发布

完整的便携版发布包(约 351MB),无需安装任何依赖:

dist/
├── Go-home.exe          (45MB) - 主程序
├── config.json          - 配置文件(需填写API Key)
├── 启动说明.txt          - 使用说明
├── node/                (86MB) - Node.js 运行时
├── 12306-mcp/           (158MB) - 火车票服务
└── FlightTicketMCP/     (64MB) - 机票服务

与官方查询的区别

官方平台算法:图搜索与启发式剪枝

携程、12306 等平台在计算中转方案时,面临的是一个海量数据的图论问题。为了在毫秒级返回结果,它们并非进行全量穷举,而是采用 "基于图论的启发式搜索 + 预计算" 的混合策略。

1. 核心逻辑:有向加权图搜索

官方平台构建了一个包含所有站点(节点)和航线/车次(边)的巨大网络。算法通过综合成本函数(Cost = 票价 + 耗时 + 舒适度)来寻找最优路径。

2. 剪枝策略(决定谁是中转点)

为了效率,官方算法会通过以下手段大幅缩小搜索范围:

  • 枢纽优先(Hub-and-Spoke):优先检索航空公司基地和铁路局所在城市。如果 A 和 B 很近,算法可能忽略大枢纽;如果很远,则只看核心枢纽。
  • 地理围栏(Geo-Pruning):以起终点为焦点划定"椭圆区域",地理上严重偏离方向的城市(如北京去广州,经停哈尔滨)会被直接剔除。
  • 连通度过滤:优先考虑线路密集的站点,小站往往在第一轮筛选中就被忽略。

3. 业务规则与预计算

  • 预计算缓存:热门路线(如北京-上海)的 Top N 方案是提前算好存入缓存的,而非实时计算。
  • 商业规则:优先推荐同联盟航空组合(便于行李直挂),并极力避免"异站换乘"(如虹桥转浦东),除非用户强制指定。

Go-home 的差异化价值

Go-home 并非要替代官方的高性能算法,而是为了填补官方算法因"剪枝"和"商业规则"而遗漏的盲区,特别是跨交通模式的组合。

维度官方平台 (携程/12306)Go-home
核心策略图搜索 + 启发式剪枝
为了速度和商业合理性,过滤掉大量"非典型"路线。指定枢纽 + 跨模态组合
在用户/系统指定的枢纽范围内,进行全量跨模式计算。
中转点选择依赖热度与地理位置
可能因"地理围栏"算法而忽略掉便宜但稍绕路的方案。覆盖全量枢纽
即使地理上绕路(如为了省钱),只要在指定枢纽列表中,都会被计算。
跨模式能力较弱 (空铁联运少)
通常仅支持同一平台内的组合,极少主动推荐"廉航+高铁"的极致方案。极强 (无缝拼接)
打破平台壁垒,挖掘"春秋航空+绿皮车"这类官方算法不会推荐的组合。
异站换乘尽量避免
视为糟糕的用户体验,权重极低。完全支持
只要时间允许,诚实展示异站换乘的成本优势,由用户决定是否接受。
透明度黑盒 (受商业影响)
优先展示高利润或合作航司方案。白盒 (纯数学计算)
无商业偏见,纯粹基于价格和时间的数学最优解。

总结

Go-home 不受"地理围栏"和"商业惯例"的束缚,它通过计算力的堆叠,挖掘出那些被官方算法判定为"不合理"但对特定用户(如学生党、时间充裕者)极具性价比的"隐形路线"。

数据来源说明

机票数据 - 携程 (Ctrip)

重要提示

机票数据来源于携程网站,存在以下限制:

  1. 验证码处理:首次查询可能触发验证码,程序会弹出浏览器窗口,需要手动完成验证
  2. Cookie 复用:验证完成后 Cookie 会保存在 browser_data/ 目录,后续查询无需重复验证
  3. 价格差异:携程存在"杀熟"现象,不同账号看到的价格可能不同
  4. 活动限制:携程的优惠活动、会员折扣等无法体现在查询结果中
  5. 平台限制:仅能获取携程平台的机票数据,其他平台(飞猪、去哪儿等)的价格和活动无法查询
  6. 反爬限制:携程反爬较严格,机票查询采用串行方式执行,速度较慢

建议:查询结果仅供参考,实际购票时请多平台比价。

火车票数据 - 12306 官方

火车票数据直接来自 12306 官方 API:

  • 数据准确:价格、余票信息与官方一致
  • 查询限制:12306 仅支持查询 15 天内的车票
  • 无需登录:火车票查询不需要登录验证

快速开始

方式一:使用安装版(推荐)

前置要求

安装 Chrome 或 Edge 浏览器(与源码运行要求相同)

安装步骤

  1. Releases 下载 Go-Home.exe 安装包
  2. 运行安装程序,按照向导完成安装
  3. 启动 "Go-home" 软件
  4. 在设置界面填写:

- API Key - API 链接 URL(如使用 OpenAI 则保持默认)

  1. 点击"保存"按钮
  2. 点击"一键启动服务"
  3. 填写行程信息,开始查询

方式二:从源码运行

0. 前置要求:安装 Chrome 或 Edge 浏览器

重要:机票查询功能依赖 Chromium 内核浏览器进行网页自动化操作。

程序会自动检测并使用以下浏览器(按优先级顺序):

浏览器检测路径
Chrome (优先)C:\Program Files\Google\Chrome\Application\chrome.exe
EdgeC:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe

1. 环境准备

推荐使用 Conda 创建独立环境:

# 创建环境
conda create -n Go-home python=3.13

# 激活环境
conda activate Go-home

# 安装 Node.js (用于火车票服务)
conda install -c conda-forge nodejs

2. 安装依赖

# 克隆项目
git clone https://github.com/huanchong-99/Go-Home.git
cd Go-home

# 安装 Python 依赖
pip install -r requirements.txt

# 安装机票 MCP 服务
pip install -e ./FlightTicketMCP

# 安装火车票 MCP 服务
cd 12306-mcp
npm install
npm run build
cd ..

3. 配置 API

复制配置文件并填入你的 API 信息:

cp config.example.json config.json

编辑 config.json

{
  "api_base_url": "https://api.openai.com/v1",
  "api_key": "your-api-key-here",
  "model": "gpt-4",
  "theme": "dark",
  "window_size": "1200x800",
  "accommodation_enabled": true,
  "accommodation_threshold": 6
}

支持任何 OpenAI 兼容的 API 服务(如 Azure OpenAI、Claude API 代理等)。

推荐使用 SiliconFlow API(注册链接,邀请码:JoeKp6UF):

  • API Base URL:https://api.siliconflow.cn/v1
  • 提供多种高性价比模型选择
  • 国内访问速度快,稳定性好

4. 运行程序

python main.py

项目架构

┌─────────────────────────────────────────────────────────────┐
│                      Go-home 主程序                          │
│              main.py (CustomTkinter UI + AI API)            │
│                                                             │
│  ┌─────────────────┐  ┌──────────────────────────────────┐  │
│  │  分段查询引擎    │  │         中转枢纽管理器            │  │
│  │ segment_query.py│  │       transfer_hubs.py           │  │
│  └────────┬────────┘  └──────────────────────────────────┘  │
│           │                                                 │
│  ┌────────▼────────┐                                        │
│  │  路线计算引擎    │  ← 程序化价格/时长计算                 │
│  │route_calculator │     (避免 AI 幻觉)                   │
│  └────────┬────────┘                                        │
└───────────┼─────────────────────────────────────────────────┘
            │
            │ MCP Protocol (stdio)
            │
    ┌───────┴───────┐
    │               │
    ▼               ▼
┌─────────────┐ ┌─────────────────┐
│ FlightMCP   │ │   12306-mcp     │
│  (Python)   │ │  (TypeScript)   │
│             │ │                 │
│ 航班路线查询 │ │ 火车票余票查询   │
│ 152个国际   │ │ 中转票查询      │
│ 机场支持    │ │                 │
└──────┬──────┘ └────────┬────────┘
       │                 │
       ▼                 ▼
   携程网站           12306 官方

中转枢纽策略

系统内置完善的中转枢纽网络,支持智能中转推荐:

类型数量说明
国内航空枢纽39个10个国际航空枢纽 + 29个区域航空枢纽
国际机场152个覆盖全球六大洲
空铁联运节点11个支持飞机-高铁零换乘/快速换乘
详细文档:完整的枢纽列表、空铁联运节点、区域中转策略等信息请查看 中转枢纽.md

枢纽等级

等级城市
一级北京、上海、广州
二级深圳、成都、重庆、西安、武汉、郑州
三级南京、杭州、长沙、昆明、沈阳、哈尔滨
四级其他省会及重要城市

空铁联运枢纽

支持飞机转高铁零换乘或快速换乘的城市:

  • 一体化换乘(60-90分钟):上海虹桥、北京大兴、郑州新郑、成都双流/天府、海口美兰、贵阳龙洞堡、青岛胶东、武汉天河、三亚凤凰、兰州中川
  • 轨道交通连接(120分钟):长沙黄花、深圳宝安

项目结构

Go-home/
├── main.py                      # 主程序入口
├── segment_query.py             # 分段查询引擎
├── transfer_hubs.py             # 中转枢纽配置
├── route_calculator.py          # 路线计算引擎
├── config.json                  # 用户配置 (不要提交到 Git)
├── config.example.json          # 配置示例
├── requirements.txt             # Python 依赖
├── Go-home.spec                 # PyInstaller 打包配置
│
├── FlightTicketMCP/             # 机票查询 MCP 服务
│   ├── flight_ticket_mcp_server/
│   │   ├── tools/               # 查询工具实现
│   │   └── utils/               # 城市字典(152个国际机场)
│   └── browser_data/            # 浏览器 Cookie 缓存
│
├── 12306-mcp/                   # 火车票查询 MCP 服务
│   ├── src/                     # TypeScript 源码
│   └── build/                   # 编译输出
│
├── dist/                        # 便携版发布目录
│   ├── Go-home.exe
│   ├── config.json
│   ├── node/
│   ├── 12306-mcp/
│   └── FlightTicketMCP/
│
├── 中转枢纽.md                   # 枢纽配置文档(39+152个枢纽详情)
└── 比较.md                       # 智能中转模式效果对比

MCP 工具列表

机票服务 (FlightTicketMCP)

工具名功能
searchFlightRoutes航班路线查询(支持152个国际机场)
getTransferFlightsByThreePlace中转航班查询
getFlightInfo航班详情查询
getWeatherByCity城市天气查询

火车票服务 (12306-mcp)

工具名功能
get-tickets火车票余票查询
get-interline-tickets中转票查询
get-train-route-stations车次经停站查询
get-station-code-of-citys城市站点代码查询

常见问题

Q: 机票查询弹出浏览器窗口怎么办?

A: 这是验证码检测机制。请在弹出的浏览器中完成验证(滑块/点选),完成后程序会自动继续。验证通过后 Cookie 会保存,后续查询不需要再验证。

Q: 为什么机票价格和我看到的不一样?

A: 携程对不同用户展示不同价格(俗称"杀熟")。程序获取的是未登录状态的价格,可能与你登录后看到的价格不同。此外,会员折扣、平台活动等也不会体现在查询结果中。

Q: 火车票查询显示"日期调整"是什么意思?

A: 12306 只能查询 15 天内的车票。如果你查询的日期超出范围,系统会自动调整到最远可查日期,并在结果中提示。

Q: 查询很慢怎么办?

A:

  • 机票查询采用串行方式(避免触发反爬),每个查询约需 10-30 秒
  • 火车票查询采用并行方式(5并发),速度较快
  • 选择更快的查询策略可以加快速度
  • 查询策略与预计时间

- 快速(8-15个枢纽):≈8-23分钟 - 推荐(15-30个枢纽):≈15-45分钟 - 全面(39-73个枢纽):≈39-110分钟 - *具体数量取决于"国际节点查询"开关和路线类型*

Q: 便携版提示"12306-MCP 连接失败"?

A: 确保 dist/12306-mcp/ 目录包含完整的 node_modulesbuild 文件夹。

Q: 国际航班查询支持哪些城市?

A: 支持全球 152 个国际机场,覆盖东南亚、东亚、南亚、中东、欧洲、北美、中南美、大洋洲、非洲及港澳台地区。完整列表请查看 中转枢纽.md

Q: 什么时候需要开启"国际节点查询"开关?

A: 国际节点开关默认关闭,适合大多数亚洲区域内旅行场景。只有在特定情况下才需要开启:

❌ 不需要开启的场景(保持默认关闭)

  • 中国大陆↔东南亚(如北京→曼谷、上海→新加坡)
  • 中国大陆↔东亚(如北京→东京、上海→首尔)
  • 中国大陆↔港澳台地区(如广州→香港、上海→台北)
  • 亚洲区域内短距离航线(飞行时间 8小时)
  • 需要考虑中东枢纽中转的路线(如迪拜、多哈转机)
  • 需要考虑欧洲枢纽中转的路线(如法兰克福、阿姆斯特丹转机)

为什么默认关闭?

  • 亚洲区域内使用国内枢纽(如广州、昆明)直飞或中转即可,效率最高
  • 开启国际节点会增加大量远程中转枢纽(如迪拜、多哈),对于短途反而绕路
  • 查询时间会显著增加(多查询 30+ 个国际枢纽)
  • 价格可能反而更贵(国际中转成本高于直飞)

示例

  • ❌ 北京→曼谷(4小时航程):关闭开关,使用昆明/广州中转即可
  • ✅ 北京→纽约(13小时航程):开启开关,可以考虑迪拜、多哈、东京等国际枢纽中转

技术栈

  • 前端:CustomTkinter (现代化 Tkinter)
  • AI:OpenAI API (支持任何兼容接口)
  • 路线计算:Python dataclasses + 组合算法(程序化计算,避免 AI 幻觉)
  • 机票服务:Python + FastMCP + DrissionPage (浏览器自动化)
  • 火车票服务:TypeScript + MCP SDK
  • 打包:PyInstaller (Python) + 便携 Node.js
  • 协议:Model Context Protocol (MCP)

致谢

License

MIT

目录标签

目录标签

PythonClaude位置天气智能出行本地部署路线规划跨模式交通AI推荐中转优化

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP