Skip to main content
Glama
CallwaterSword

train-mcp-server

火车票查询 MCP Server(FastMCP)

用 FastMCP 实现的火车票/高铁车次查询服务,可作为远程 MCP 工具被任意 Agent(如 deepagents、LangGraph、Claude 等)调用。

能力

一个工具函数:query_train_tickets(from_station, to_station, date)

  • 查询两个车站之间某天的车次、时刻、历时、可预订状态、余票情况

  • 数据源:12306 公开查询接口(真实数据);接口被风控时自动切换到模拟数据并明确标注来源,保证链路随时可演示

本地运行

pip install -r requirements.txt
python server.py        # 启动 streamable-http 服务,默认 http://127.0.0.1:8000

MCP 客户端配置(本地联调):

{
  "mcpServers": {
    "train": {
      "url": "http://127.0.0.1:8000/mcp/",
      "transport": "streamable_http"
    }
  }
}

部署到魔搭 MCP 广场(关键步骤)

  1. 把本仓库推到 GitHub

  2. 打开 modelscope.cn/mcp 登录 → 点 「创建 MCP」

  3. 创建类型选 「GitHub 快速创建」;托管类型选 「可托管部署」

  4. 填英文/中文名称、来源地址(GitHub 仓库 URL),按平台提示补全配置

  5. 提交后平台生成访问地址:https://mcp.api-inference.modelscope.net/<你的ID>/sse/mcp(可设置长期有效)

  6. 把该地址填回 Agent 项目的 MCP 配置中即可

提示:平台对托管项目有启动方式要求(通常要求 Python + 启动 HTTP 服务),如遇部署失败,按平台提示调整入口(如提供 run 脚本或环境变量)。

数据源说明

  • 12306 无官方开放 API,本项目使用其公开查询接口(kyfw.12306.cn/otn/leftTicket),免登录查询,仅限个人学习研究

  • 接口有风控(偶发 302),代码已做会话 cookie + 模拟数据兜底

  • 若需更稳定数据,可自行替换 _fetch_12306 为第三方数据源(可插拔)

目录

  • server.py — FastMCP 服务主程序

  • test_client.py — 本地联调脚本(直接调用工具函数 + 走 MCP 协议测试)

  • requirements.txt — 依赖

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CallwaterSword/train-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server