12306火车票MCP搜索服务

7月18日发布在MCP服务

12306-mcp是基于Model Context Protocol (MCP) 的12306购票信息搜索服务器,通过简洁的API接口,为大模型或其他用户提供12306车票信息的查询服务,实现包括直接查询车票、过滤列车信息、过站查询以及中转查询等多项关键功能。

核心功能

功能描述 状态
查询12306购票信息 ✅ 已完成
过滤列车信息 ✅ 已完成
过站查询 ✅ 已完成
中转查询 ✅ 已完成
其余接口 🚧 计划内

API接口使用说明

1、get-tickets(查询12306余票信息)

参数

{
"date":"2025-04-15",
"from_station": "BJP",
"to_station":"SHH"
}

响应示例

G103 北京南->上海虹桥 06:20->11:58 历时:05:38
商务座:剩余20张 1998元
一等座:剩余有张 969元
二等座:剩余有张 576元

G1 北京南->上海 07:00->11:29 历时:04:29
商务座:剩余8张 2331元
一等座:剩余2张 1067元
二等座:剩余无张 667元
优选一等座:剩余2张 1467元

G105 北京南->上海虹桥 07:17->13:03 历时:05:46
商务座:剩余7张 1873元
一等座:剩余有张 930元
二等座:剩余无张 553元

G107 北京南->上海虹桥 07:25->13:12 历时:05:47
商务座:剩余5张 2158元
一等座:剩余无张 1006元

2、get-station-codes-by-city(通过城市名查询车站代码)

参数

{
"city":"上海"
}

响应示例

[
{"station_code":"LTU","station_name":"练塘"},
{"station_code":"SHH","station_name":"上海"},
{"station_code":"SNH","station_name":"上海南"},
{"station_code":"AOH","station_name":"上海虹桥"},
{"station_code":"SXH","station_name":"上海西"},
{"station_code":"ASH","station_name":"安亭北"},
{"station_code":"AXU","station_name":"安亨西"},
{"station_code":"RMH","station_name":"海湾"},
{"station_code":"EGH","station_name":"金山北"},
{"station_code":"UCH","station_name":"芦潮港"},
{"station_code":"NEH","station_name":"南翔北"},
{"station_code":"ImH","station_name":"上海松江"},
{"station_code":"SAH","station_name":"松江北"}
]

安装与启动

安装步骤

1、克隆项目:git clone https://github.com/Joooook/12306-mcp.git

2、安装依赖:npm i

快速启动

CLI方式npx -y 12306-mcp MCP服务器配置

{
"mcpServers": {
"12306-mcp": {
"command": "npx",
"args": [
"-y",
"12306-mcp"
]
}
}
}

服务架构

服务分为用户层、核心工具层、MCP Server和外部服务,用户和大语言模型可通过用户层的相关工具(如get-stationby-telecode、get-tickets等)与系统交互,核心工具层处理具体的查询逻辑,MCP Server作为中间层连接核心工具层和外部的12306 API。

参考与说明

• 参考资料:modelcontextprotocol/modelcontextprotocol、modelcontextprotocol/typescript-sdk • 项目说明:本项目仅用于学习,欢迎用户催更新功能。