Skip to main content
Glama
huoliAgi

tripnow-mcp

by huoliAgi

MCP Server 航班管家

版本: v1

产品描述

短描述(20字): 一站式航铁票务查询 实时动态智能追踪

长描述(50-100字): 覆盖机票、火车票实时查询,航铁动态精准追踪,内置铁路航空领域知识库,解答出行高频问题,为MCP广场用户提供一站式出行信息服务

分类: 出行服务

标签: 票务查询,实时动态,航铁问答,出行资讯

Related MCP server: 12306 Train Ticket Search MCP Server

功能特性

本 MCP Server 产品提供以下 Tools(工具/能力):

Tool1: 航铁票务实时查询

详细描述

支持机票、火车票实时查询,根据出发地、目的地、出行日期,快速返回对应航班/车次核心信息,高效满足出行票务查询需求

调试所需的输入参数

输入:

  • 出发地(字符串):出行的起始地点

  • 目的地(字符串):出行的目的地

  • 出行日期(字符串):计划出行的具体日期

  • 票务类型(字符串):机票/火车票

输出:

  • 对应航班/车次的实时信息,含编号、出发到达时间、坐席/舱位等相关内容

最容易被唤起的 Prompt 示例

帮我查询明天北京到上海的火车票

Tool2: 航铁动态精准追踪

详细描述

支持列车、航班动态实时查询,返回列车位置、检票口等信息及航班起降、登机口等状态,同步说明延误等异常原因

调试所需的输入参数

输入:

  • 航铁编号(字符串):列车车次/航班号

  • 查询类型(字符串):列车动态/航班动态

输出:

  • 对应航铁的实时动态信息,含位置/状态、配套设施、异常原因等

最容易被唤起的 Prompt 示例

帮我看看G123次列车现在到哪了

Tool3: 航铁知识智能问答

详细描述

内置铁路、航空领域知识库,针对票务政策、退改签、行李规定等高频问题,快速给出精准、规范的解答

调试所需的输入参数

输入:

  • 问题内容(字符串):铁路/航空领域的出行相关问题

输出:

  • 基于知识库的专业、准确的问题解答内容

最容易被唤起的 Prompt 示例

学生票每年能买几次,要什么证件核验

可适配平台

方舟,Python,Cursor

前置要求

  • Python >= 3.11

  • TripNow API Key(需要从产品服务开通链接提交申请获取)

鉴权方式

  1. TripNow 开放平台:通过产品服务开通链接申请,获取专属 API Key。

  2. 本 MCP 服务:不再从环境变量或 .env 读取密钥。客户端连接 MCP 时,必须在 HTTP 请求头 中携带标准鉴权头:

    Authorization: Bearer <YOUR_API_KEY>

    服务端解析该头中的 token,再以此调用 TripNow 上游接口(同样使用 Authorization: Bearer)。

服务开通链接(整体产品): [产品服务开通链接待补充]

安装部署

客户部署服务(情况一)

若客户采用此方式,需在调用 MCP 的 HTTP 请求上携带 Authorization: Bearer <API_KEY>,具体步骤如下:

  1. 从产品服务开通链接提交申请,获取专属 API Key;

  2. 查阅产品官方接口文档,按规范构造工具参数;

  3. 在 MCP 客户端或网关中为 连接 MCP 的请求 设置请求头 Authorization: Bearer <API_KEY>

  4. 接收接口返回的 JSON 格式数据,解析并展示。

安装步骤

1. 克隆或下载项目

cd tripnow-mcp

2. 安装依赖

pip install -r requirements.txt

或者使用 pip 直接安装:

pip install httpx>=0.25.0 mcp>=1.0.0 pydantic>=2.0.0

配置 API Key

仅在 支持为 MCP 连接配置 HTTP 请求头 的客户端中使用,例如:

请求头

示例值

Authorization

Bearer sk-live-xxxx(将 sk-live-xxxx 换为你的真实 API Key)

不支持再通过环境变量 tripnow_api_key 或自定义头 tripnow-api-key 传参。

使用方法

一、STDIO 方式(本地运行)

Python 方式:直接运行

python api_mcp.py

在 MCP 客户端中配置

当前实现 仅从入站 HTTP 请求的 Authorization: Bearer … 读取 API Key,不读取环境变量。纯 STDIO 本地子进程场景下,多数客户端不会为每次工具调用附带 MCP 的 HTTP 头,因此 无法完成鉴权。若需带 Key 使用本服务,请优先采用下面的 Streamable HTTP

若仍用 STDIO 做本地调试,需自行确认你的客户端是否能在该传输方式下注入等价鉴权信息(本仓库默认实现不提供 .env / 环境变量回退)。

二、Streamable HTTP 方式(推荐)

将 MCP 以 HTTP 服务部署后,在客户端为 连接 MCP 的 URL 请求 配置请求头 Authorization

{
  "mcpServers": {
    "tripnow": {
      "url": "https://your-mcp-host.example.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

YOUR_API_KEY 替换为从产品开通渠道获取的真实 Key(示例形态如 sk-live-xxxx)。

API 工具说明

chat_completions

调用 TripNow 旅行助手 API,可以查询火车票、机票、酒店等旅行相关信息。该工具支持以下三种主要功能:

  1. 航铁票务实时查询:根据出发地、目的地、出行日期查询机票或火车票信息

  2. 航铁动态精准追踪:根据航铁编号查询列车或航班的实时动态信息

  3. 航铁知识智能问答:回答铁路、航空领域的出行相关问题

参数说明

  • messages (List[dict]): 消息列表,支持多轮对话

    • 每个消息包含:

      • role (str): 消息角色,如 'user', 'assistant', 'system'

      • content (str): 消息内容

返回格式

返回标准的 ChatCompletion 响应,包含:

  • 模型回复内容

  • Token 使用统计

  • 响应元数据

使用示例

示例 1:航铁票务实时查询

# 查询火车票
messages = [
    {
        "role": "user",
        "content": "帮我查询明天北京到上海的火车票"
    }
]

# 调用 chat_completions 工具
result = await chat_completions(messages=messages)
# 查询机票
messages = [
    {
        "role": "user",
        "content": "帮我查一下北京到上海的机票,日期是2024年12月25日"
    }
]

示例 2:航铁动态精准追踪

# 查询列车动态
messages = [
    {
        "role": "user",
        "content": "帮我看看G123次列车现在到哪了"
    }
]
# 查询航班动态
messages = [
    {
        "role": "user",
        "content": "CA1234航班现在什么状态"
    }
]

示例 3:航铁知识智能问答

# 询问票务政策
messages = [
    {
        "role": "user",
        "content": "学生票每年能买几次,要什么证件核验"
    }
]
# 询问退改签政策
messages = [
    {
        "role": "user",
        "content": "火车票退票手续费怎么算"
    }
]

示例 4:多轮对话查询

# 第一轮:查询机票
messages = [
    {
        "role": "user",
        "content": "我想从北京飞往上海"
    }
]

# 第二轮:继续对话
messages.append({
    "role": "assistant",
    "content": "为您找到了以下航班..."
})

messages.append({
    "role": "user",
    "content": "帮我看看最早那班的状态"
})

响应格式示例

成功响应

## TripNow 旅行助手回复

- **模型**: tripnow-travel-pro
- **响应ID**: chatcmpl-xxx

### 回复内容

为您找到了以下从北京到长沙的火车班次:
1. G501 次,08:00-14:30,二等座 ¥553
2. G503 次,10:00-16:30,二等座 ¥553
...

### Token使用统计
- **提示词Token**: 25
- **完成Token**: 150
- **总Token**: 175

错误响应

如果未携带或格式错误的 Authorization,会返回错误信息,例如:

error: missing or invalid Authorization header; expected "Authorization: Bearer <API_KEY>"

项目结构

tripnow-mcp/
├── api_mcp.py          # MCP 服务器主文件
├── models.py           # 数据模型定义
├── markdown_utils.py   # Markdown 工具函数
├── requirements.txt    # Python 依赖
├── pyproject.toml      # 项目配置
└── README.md          # 本文件

开发说明

运行开发服务器

python api_mcp.py

默认以 STDIO 方式运行(与 api_mcp.pymcp.run() 一致)。若需 Streamable HTTP,请在代码中改用 mcp.run(transport="streamable-http") 并自行处理进程/端口部署。

代码结构说明

  • api_mcp.py:

    • 定义 MCP 服务器实例

    • 实现 chat_completions 工具

    • 从入站请求头 Authorization: Bearer … 解析 API Key,并转发调用 TripNow HTTP 接口

  • models.py:

    • Message: 消息模型

    • ChatCompletionResponse: API 响应模型

    • ErrorResponse: 错误响应模型

  • markdown_utils.py:

    • 提供 Markdown 格式化工具函数

常见问题

Q1: 如何获取 TripNow API Key?

A: 请访问 TripNow 官方网站或联系客服获取 API Key。

Q2: API Key 应该放在哪里?

A: 放在连接 MCP 时的 HTTP 请求头中:Authorization: Bearer <你的API_KEY>。不要依赖 .env 或环境变量 tripnow_api_key

Q3: 支持哪些传输方式?

A: 目前支持 STDIO 和 Streamable HTTP 两种方式。

Q4: 如何测试 MCP 服务器?

A: 可以使用 MCP 客户端(如 Cursor)连接服务器,然后通过 AI 助手调用 chat_completions 工具进行测试。

Q5: 响应格式是什么?

A: 返回文本格式

支持协议

遵循MCP广场平台服务协议,同时遵守铁路、航空领域相关信息服务规范

License

专有商业协议

相关链接

贡献

欢迎提交 Issue 和 Pull Request!

更新日志

v1.0.0

  • 正式版本发布

  • 支持航铁票务实时查询(机票、火车票)

  • 支持航铁动态精准追踪(列车、航班动态)

  • 支持航铁知识智能问答(票务政策、退改签、行李规定等)

  • 支持多轮对话

  • 支持 STDIO 和 Streamable HTTP 传输方式

鉴权调整(当前版本)

  • MCP 侧仅通过入站 HTTP 头 Authorization: Bearer <API_KEY> 鉴权,已移除对环境变量及 tripnow-api-key 自定义头的依赖

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time flight and train ticket queries, live status tracking, and a professional knowledge base for air and rail travel. It enables users to monitor departures, check ticketing policies, and manage travel information through a unified interface.
    -