Observed since 20 Oct, 18:08 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
一个为大型语言模型(LLM)设计的、高可用的12306余票查询工具服务,搭载智能会话管理引擎。支持 get-tickets、get-interline-tickets、get-train-route-stations、get-station-code 等查询工具。
一个为大型语言模型(LLM)设计的、高可用的12306余票查询工具服务,现已搭载智能会话管理引擎。
12306-MCP-Server 将复杂的12306余票查询接口封装为符合 Model Context Protocol (MCP) 规范的工具集,允许AI Agent通过自然语言无缝查询实时火车票、中转换乘和经停站信息。
从 v1.0.0 版本开始,项目引入了全新的智能会话管理系统,通过会话池、动态User-Agent轮换和自动错误恢复机制,将服务的稳定性与反屏蔽能力提升至全新高度。
get-tickets: 查询指定日期、区间的直达票余票信息get-interline-tickets: 查询中转换乘线路的余票信息get-train-route-stations: 查询特定车次的详细经停站点信息get-station-code: 多种方式查询车站代码(城市名、具体站名)text (默认)、csv 和 json 三种格式# 全局安装
npm install -g 12306-mcp-server
# 直接运行
12306-mcp
# 克隆仓库
git clone https://github.com/your-username/12306-mcp-server.git
cd 12306-mcp-server
# 安装依赖
npm install
# 构建项目
npm run build
# 运行服务
npm start
# 拉取镜像
docker pull your-username/12306-mcp-server:latest
# 运行容器
docker run -d -p 8080:8080 \
-e SESSION_POOL_MAX_SIZE=10 \
--name 12306-mcp \
your-username/12306-mcp-server:latest
# 启动服务
docker-compose up -d
# 启动包含监控
docker-compose --profile monitoring up -d
# 查看日志
docker-compose logs -f
复制 .env.example 为 .env 并根据需要修改:
cp .env.example .env
主要配置项:
# 会话池配置
SESSION_POOL_MIN_SIZE=3 # 最小会话数
SESSION_POOL_MAX_SIZE=8 # 最大会话数
SESSION_TTL=1800000 # 会话生存时间(30分钟)
# 性能配置
MAX_RETRIES=3 # 最大重试次数
RETRY_DELAY=1000 # 重试延迟(毫秒)
# 日志配置
LOG_LEVEL=info # 日志级别
完整配置说明请参考 .env.example
开发环境:
SESSION_POOL_MIN_SIZE=2
SESSION_POOL_MAX_SIZE=5
LOG_LEVEL=debug
生产环境(高流量):
SESSION_POOL_MIN_SIZE=5
SESSION_POOL_MAX_SIZE=15
SESSION_TTL=3600000
LOG_LEVEL=warn
ENABLE_METRICS=true
{
"name": "get-tickets",
"arguments": {
"date": "2025-11-01",
"fromStation": "BJP",
"toStation": "SHH",
"trainFilterFlags": "G",
"sortFlag": "startTime",
"limitedNum": 5
}
}
curl -X POST http://localhost:8080/tools/get-tickets \
-H "Content-Type: application/json" \
-d '{
"date": "2025-11-01",
"fromStation": "BJP",
"toStation": "SHH",
"trainFilterFlags": "G"
}'
curl http://localhost:8080/health
# 检查网络连接
ping kyfw.12306.cn
# 检查防火墙
sudo ufw status
# 增加重试次数
export MAX_RETRIES=5
# 增加会话生存时间
export SESSION_TTL=3600000
# 增加池大小
export SESSION_POOL_MAX_SIZE=10
更多故障排查请参考 故障排查手册
| 指标 | v0.3.x | v1.0.0 | 提升 |
|---|---|---|---|
| 响应时间 (P95) | 2.5s | 1.5s | +40% |
| 吞吐量 | 2.5 req/s | 8.2 req/s | +228% |
| 成功率 | 92% | 99.5% | +8.2% |
| 会话复用率 | 10% | 90%+ | +800% |
| IP封禁风险 | 高 | 极低 | -95% |
详细的性能测试报告请参考 benchmark.md
服务暴露以下 Prometheus 指标(需启用 ENABLE_METRICS=true):
http_requests_total: 总请求数http_request_duration_seconds: 请求耗时session_pool_total: 会话池大小session_pool_available: 可用会话数session_pending_requests: 排队请求数session_created_total: 会话创建总数session_invalidated_total: 会话失效总数# 基础健康检查
GET /health
# 详细健康状态(包含会话池信息)
GET /health/detailed
欢迎贡献!请查看 CONTRIBUTING.md 了解详情。
# Fork 项目
# Clone 到本地
git clone https://github.com/your-username/12306-mcp-server.git
# 创建特性分支
git checkout -b feature/your-feature
# 提交更改
git commit -am 'Add some feature'
# 推送到分支
git push origin feature/your-feature
# 创建 Pull Request
重大更新:
性能提升:
Bug 修复:
详细变更请查看 CHANGELOG.md
本项目采用 MIT 许可证。
如果这个项目对你有帮助,请给一个 ⭐️ Star!
Made with ❤️ by Algorithm Engineering Team
Download counts and popularity will appear here as the collector receives them.
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 18:08 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7191f38f18ad23a0a549dfead55926f7003ec374f5f14ec94261a97362369ab4