Skip to main content

🚄 12306 MCP Server

screenshot FastAPI License: MIT


✨ 项目简介

12306 MCP Server 是一款基于 Model Context Protocol (MCP) 的高性能火车票查询后端,支持官方 12306 余票、车站、经停、换乘查询以及智能时间工具,适配 AI/自动化/智能助手等场景。界面友好,易于集成,开箱即用。


🚀 功能亮点

  • 实时余票/车次/座席/时刻/换乘一站式查询
  • 全国车站信息管理与模糊搜索
  • 官方经停站、一次中转方案全支持
  • 智能时间工具,支持相对日期计算,避免日期输入错误
  • Streamable HTTP传输协议,支持MCP 2025-03-26标准
  • FastAPI异步高性能,秒级响应
  • MCP标准,AI/自动化场景即插即用

🛠️ 快速上手

环境要求

  • Python 3.10+
  • uv(推荐包管理器)

本地一键部署

# 克隆项目
git clone https://github.com/drfccv/mcp-server-12306.git
cd mcp-server-12306

# 安装依赖
uv sync

# 更新车站信息(必须先执行)
uv run python scripts/update_stations.py

# 启动服务器
uv run python scripts/start_server.py

Docker 部署

# 直接拉取已构建镜像
 docker pull drfccv/mcp-server-12306:latest

# 运行容器(映射8000端口)
 docker run -d -p 8000:8000 --name mcp-server-12306 drfccv/mcp-server-12306:latest

如需自定义开发或本地修改后再打包,可用如下命令自行构建镜像:

docker build -t drfccv/mcp-server-12306:latest .

配置

复制 .env.example.env 并按需修改:

cp .env.example .env

🤖 API & 工具一览

MCP 客户端配置示例

{
  "mcpServers": {
    "12306": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

支持的主流程工具

工具名 典型场景/功能描述
query_tickets 余票/车次/座席/时刻一站式查询
search_stations 车站模糊搜索,支持中文/拼音/简拼
get_station_info 获取车站详情(名称、代码、地理等)
query_transfer 一次中转换乘方案,自动拼接最优中转
get_train_route_stations 查询指定列车经停站及时刻表
get_current_time 获取当前时间与相对日期,帮助用户准确选择出行日期

📚 工具文档

本项目所有主流程工具的详细功能、实现与使用方法,均已收录于 /docs 目录下:

每个文档包含:

  • 工具功能说明
  • 实现方法
  • 请求参数与返回示例
  • 典型调用方式

如需二次开发或集成,建议先阅读对应工具的文档。


🧩 目录结构

src/mcp_12306/    # 主源代码
  ├─ server.py    # FastAPI主入口
  ├─ services/    # 业务逻辑(车票/车站/HTTP)
  ├─ models/      # 数据模型
  ├─ utils/       # 工具与配置
scripts/          # 启动与数据脚本

🧪 测试

uv run pytest

📦 镜像发布与拉取

  • 镜像仓库:drfccv/mcp-server-12306
  • 拉取镜像:
    docker pull drfccv/mcp-server-12306:latest
    
  • 运行镜像:
    docker run -d -p 8000:8000 --name 12306-mcp-server drfccv/mcp-server-12306:latest
    

📄 License

MIT License


⚠️ 免责声明

  • 本项目仅供学习、研究与技术交流,严禁用于任何商业用途。
  • 本项目不存储、不篡改、不传播任何 12306 官方数据,仅作为官方公开接口的智能聚合与转发。
  • 使用本项目造成的任何后果(包括但不限于账号封禁、数据异常、法律风险等)均由使用者本人承担,项目作者不承担任何责任。
  • 请遵守中国法律法规及 12306 官方相关规定,合理合规使用。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_mcp_server_12306-0.1.0.tar.gz (190.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_mcp_server_12306-0.1.0-py3-none-any.whl (101.1 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_mcp_server_12306-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_mcp_server_12306-0.1.0.tar.gz
  • Upload date:
  • Size: 190.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_mcp_server_12306-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d9d7e85bef345cea7f3103767dd7eac4a915ecd90132b0543c1a65f9ae8d1e17
MD5 b888b9d36e1e67f88100f0c5e214ccd4
BLAKE2b-256 2dd14ad2b5c19c2e442bdb16581a9e78c5c444d1e44d1f85ed809d551c22d16e

See more details on using hashes here.

File details

Details for the file iflow_mcp_mcp_server_12306-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_mcp_server_12306-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 101.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_mcp_server_12306-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 905ac59dd1f9261a055f0d0802b2ab55fe2aa197885cd6f39d9c2fc1b3f96ef3
MD5 693f23c9c6a51421cc7108a8aa9f8a44
BLAKE2b-256 a45ac30eebe82c274bf8984891f26f5d6ec46e519928bf528cce9d3013f47b84

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page