← 返回
未分类 Key

航班管家-伙力专车接送服务

专车预订助手 - 通过 curl 调用 MCP 实现专车搜索、运力查询、订单创建与管理。适用于用户询问专车、查询专车价格或提交专车订单时使用。
专车预订助手 - 通过 curl 调用 MCP 实现专车搜索、运力查询、订单创建与管理。适用于用户询问专车、查询专车价格或提交专车订单时使用。
user_594f630b
未分类 community v1.0.0 1 版本 95000 Key: 需要
★ 0
Stars
📥 19
下载
💾 0
安装
1
版本
#latest

概述

专车预订助手

当用户询问专车搜索、运力查询或专车预订时,使用此 skill 通过 curl 调用专车 MCP 服务。

运行环境要求

本 skill 通过 MCP 客户端调用专车 MCP 服务,使用 JSON-RPC 2.0 / tools/call 协议。

会话管理说明

  • MCP 客户端会自动管理 Session,无需手动初始化
  • 如果遇到 "Session not found or expired" 错误,说明 MCP 客户端的 Session 已过期
  • 此时应该等待 MCP 客户端自动重新连接,然后重试操作
  • 不要尝试手动调用 initialize 方法,这由 MCP 客户端自动处理

隐私与个人信息(PII)说明

预订功能会将用户提供的个人信息(乘车人姓名、手机号等)通过 HTTP POST 发送至专车 MCP 远端服务,以完成专车预订。使用本 skill 即表示用户知晓并同意上述 PII 被发送到外部服务。请勿在终端日志或大模型回复中暴露用户的完整个人信息。

适用场景

  • 调用业务工具 (tools/call),如城市站点查询、POI 搜索、运力搜索、订单创建、订单查询与取消等

配置要求

必需配置

  • MCP 客户端:已配置好的 MCP 客户端连接(mcp-gateway-test)
  • SERVER_CODE:MCP Server 代码,默认 local_test(由业务方创建)

可选配置

  • MCP_URL:MCP 服务地址,默认 https://t.rsscc.com/mcp/local_test

功能概述

该工具提供专车预订相关功能,包括:

  1. 获取城市站点信息:查询开通服务的城市及其机场/火车站信息(包含航站楼信息)。该数据建议定时全量拉取保存在本地,可以每天一次。
  2. POI 搜索:通过城市 ID + 位置关键词模糊匹配,返回地址列表(最多 3 个)。用于帮助用户选择出发地或目的地。
  3. 运力搜索:输入的一端必须为机场/火车站(depCode/arrCode),另一端为 POI 地址坐标,返回可用车型和价格信息。
  4. 创建订单:提交专车预订订单,需要从运力搜索结果中选择车型和价格,并收集乘车人信息。
  5. 支付订单:获取订单支付链接。
  6. 查询订单:模糊查询订单列表或通过订单号精确查询订单详情。
  7. 取消订单:取消专车订单,取消前可先查询取消费。
  8. 查询取消费:查询订单是否能免费取消及取消费金额。

重要流程

  1. 基础数据准备:首次使用或定期(每天)调用 getAllCities 获取城市站点信息,保存在本地供后续使用。
  2. POI搜索流程
    • 先询问用户出发地和目的地
    • 如果用户提供的是地标名称(如"XX广场"、"XX酒店"),使用 getPoiListByKey 搜索具体地址
    • 如果搜索结果有多个,必须从 structuredContent.data.pois 数组中提取并展示列表,让用户选择
    • 确认出发地和目的地后,必须询问用户期望的服务时间(格式:yyyy-MM-dd HH:mm:ss)
    • 不要自动假设或生成服务时间,必须由用户明确提供
  3. 运力查询流程
    • 调用 getEstimate 查询可用车型和价格
    • 输入的一端必须为机场/火车站ID(需要问询出结果),另一端为POI搜索结果中的一个地址
    • phoneid 参数说明:网关会从 Session 中自动解析用户身份,无需询问用户输入用户ID
    • 时间验证规则
    • 服务时间必须晚于当前时间
    • 如果用户未提供服务时间,必须先询问用户:"请问您希望什么时候用车?(格式:yyyy-MM-dd HH:mm:ss)"
    • 如果 getEstimate 返回 "服务时间不能早于当前时间" 错误(code: 704):
    • 不要自动重试或猜测新时间
    • 向用户说明:"您提供的服务时间早于当前时间,无法预订"
    • 询问用户:"请重新输入服务时间(必须晚于当前时间)"
    • 等待用户提供新的时间后再重新调用 getEstimate
    • 必须从 structuredContent.data.products 数组中提取车型和价格信息,展示车型列表(车型名称、预估时长、预估里程、价格)
    • 用户选择后,记录 productIdpTicketdirectId 等参数
  4. 创建订单流程
    • 询问乘车人姓名和电话
    • 确认订单信息(出发地、目的地、服务时间、车型、价格、乘车人)
    • 调用 createOrder 创建订单(phoneid 由网关自动处理,无需询问用户)
    • 创建成功后,structuredContent.data.orderId 提取订单号,立即调用 orderDetail 查询订单详情展示给用户
    • 如果订单未支付,询问用户是否支付,确认后调用 pay 获取支付链接
  5. 订单管理流程
    • 用户可以查询订单列表或通过订单号查询订单详情
    • 所有订单信息必须从 structuredContent.data 中提取并展示,不要只显示 "success"
    • 取消订单前,先调用 getCancelFee 查询取消费,告知用户后再确认是否取消
  6. Session 过期自动处理
    • 任何接口调用时,如果收到 "Session not found or expired" 错误
    • 等待片刻(约 2-3 秒)让 MCP 客户端自动重新连接
    • 然后自动重试刚才的操作
    • 如果重试仍然失败,向用户说明:"MCP 服务连接暂时中断,请稍后重试"

数据提取原则

  • 所有工具调用后,必须从 result.structuredContent.data 中提取业务数据
  • 不要只显示 result.content[0].text 的简单文本(如 "success")
  • 根据不同接口的数据结构,提取相应字段并格式化展示给用户

调用方式与示例

MCP 工具调用

通过 MCP 客户端调用工具,格式如下:

mcp-gateway-test/工具名称
参数: { "参数名": "参数值" }

例如:

mcp-gateway-test/getAllCities
参数: {}

mcp-gateway-test/getPoiListByKey
参数: { "cityId": 5, "key": "中南路地铁站" }

注意

  • 工具名称前缀为 mcp-gateway-test/(MCP 客户端配置名称)
  • 参数使用 JSON 格式
  • MCP 客户端会自动处理 Session 管理,无需手动初始化

可用工具 (业务接口)

重要:下方示例中的参数均为占位,调用时需根据用户当前需求填入实际值(城市、日期、坐标等),勿直接照抄示例值。

1. 获取城市站点信息 (getAllCities)

功能:获取开通服务的城市及其机场/火车站信息

触发词:城市列表、站点信息、机场信息、火车站信息

使用建议:该数据建议定时全量拉取保存在本地,可以每天一次

关键参数 (arguments)

{} // 无参数

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: [{
    cityId: number;        // 城市ID
    cityName: string;      // 城市名称
    depots: [{
      depotName: string;   // 站点名称,如"北京首都机场"
      depotCode: string;   // 站点编码(三字码),如"PEK"
      depotType: number;   // 站点类型:0-机场,1-火车站/高铁站
      terminals: [{
        code: string;      // 航站楼code,如"T1"
        name: string;      // 航站楼名称,如"北京首都机场T1航站楼"
      }]
    }]
  }];
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "getAllCities",
      "arguments": {}
    }
  }'

2. POI 搜索 (getPoiListByKey)

功能:通过城市 ID + 位置关键词模糊匹配,返回地址列表(最多 3 个)

触发词:搜索地址、查找位置、POI 搜索

关键参数 (arguments)

  • cityId (必填): 城市ID(从 getAllCities 获取)
  • key (必填): 位置关键词,用来模糊匹配(如"知音广场"、"武汉站")

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: {
    pois: [{
      address: string;   // 详细地址
      city: string;      // 城市名
      cityId: string;    // 城市ID
      lat: number;       // 坐标纬度
      lng: number;       // 坐标经度
      name: string;      // 地址名称
    }]
  };
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "getPoiListByKey",
      "arguments": {
        "cityId": 5,
        "key": "知音广场"
      }
    }
  }'

3. 运力搜索 (getEstimate)

功能:查询可用车型和价格,输入的一端必须为机场/火车站,另一端为 POI 地址

触发词:查询车型、查询价格、运力搜索

关键参数 (arguments)

  • timestamp (必填): 当前时间戳(毫秒)
  • serveTime (必填): 服务时间,格式 yyyy-MM-dd HH:mm:ss
  • 必须由用户明确提供,不要自动生成或假设
  • 必须晚于当前时间,否则会返回错误码 704
  • 如果返回 704 错误,提示用户重新输入时间,不要自动重试
  • startLon (条件必填): 预订开始坐标经度,最多6位小数(如果起点是场站则不需要)
  • startLat (条件必填): 预订开始坐标纬度,最多6位小数(如果起点是场站则不需要)
  • endLon (条件必填): 预订结束坐标经度,最多6位小数(如果终点是场站则不需要)
  • endLat (条件必填): 预订结束坐标纬度,最多6位小数(如果终点是场站则不需要)
  • startAddress (必填): 出发地名称
  • startAddressDetail (必填): 出发地详细地址
  • endAddress (必填): 到达地名称
  • endAddressDetail (必填): 到达地详细地址
  • depCode (可选): 出发地三字码(如果起点是场站则必填)
  • depPortCode (可选): 出发地机场航站楼code(如"T2")
  • arrCode (可选): 目的地三字码(如果终点是场站则必填)
  • arrPortCode (可选): 到达地机场航站楼code(如"T2")

phoneid 参数说明

  • 网关会从 Session 中自动解析用户身份,无需手动传递
  • 不要询问用户输入用户ID,这是系统内部参数,由网关自动处理

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: {
    duration: number;    // 预估时长(分钟)
    distance: number;    // 预估里程(Km),精确到米
    products: [{
      carLevel: number;      // 车型ID
      carLevelName: string;  // 车型名称
      products: [{
        productId: string;     // 产品ID(创建订单时需要)
        pTicket: string;       // 价格码(创建订单时需要)
        directId: number;      // 规则ID(创建订单时需要)
        price: number;         // 卖价
        originPrice: number;   // 原价
        couponId: string;      // 优惠券ID
        directAmount: string;  // 直减优惠价
      }]
    }]
  };
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "getEstimate",
      "arguments": {
        "phoneid": "123456",
        "timestamp": 1715760000000,
        "serveTime": "2026-05-15 14:00:00",
        "startLon": 114.341142,
        "startLat": 30.5548,
        "endLon": 0,
        "endLat": 0,
        "startAddress": "知音广场停车场",
        "startAddressDetail": "武汉市武昌区中北路31号省工行大楼1层附近",
        "endAddress": "武汉天河机场",
        "endAddressDetail": "武汉天河机场T3航站楼",
        "arrCode": "WUH",
        "arrPortCode": "T3"
      }
    }
  }'

4. 创建订单 (createOrder)

功能:提交专车预订订单

触发词:创建订单、下订单、预订专车

关键参数 (arguments)

  • timestamp (必填): 当前时间戳(毫秒)
  • productId (必填): 产品ID(从 getEstimate 返回的结果中获得)
  • pTicket (必填): 价格码(从 getEstimate 返回的结果中获得)
  • directId (必填): 规则ID(从 getEstimate 返回的结果中获得)
  • passengerPhone (必填): 乘车人电话
  • passengerName (必填): 乘车人姓名
  • couponId (可选): 优惠券ID(从 getEstimate 返回的结果中获得)
  • directAmount (可选): 直减优惠价(从 getEstimate 返回的结果中获得)

phoneid 参数说明

  • 网关会从 Session 中自动解析用户身份,无需手动传递
  • 不要询问用户输入用户ID,这是系统内部参数

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: {
    orderId: string;  // 伙力专车订单号
  };
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "createOrder",
      "arguments": {
        "phoneid": "123456",
        "timestamp": 1715760000000,
        "productId": "1",
        "pTicket": "29B6630B215F49A2A84CC26A08530041",
        "directId": 1,
        "passengerPhone": "13800138000",
        "passengerName": "张三",
        "couponId": "",
        "directAmount": ""
      }
    }
  }'

5. 支付订单 (pay)

功能:获取订单支付链接

触发词:支付、支付订单、获取支付链接

关键参数 (arguments)

  • orderId (必填): 订单号

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: {
    url: string;  // 支付链接
  };
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 5,
    "method": "tools/call",
    "params": {
      "name": "pay",
      "arguments": {
        "orderId": "2603101813148416"
      }
    }
  }'

6. 查询订单列表 (orderList)

功能:模糊查询订单列表

触发词:订单列表、查询订单、我的订单

关键参数 (arguments)

  • startIndex (可选): 分页起始位置,默认 0(第一页)
  • pageSize (可选): 每页数量,默认 10

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: [{
    orderId: string;           // 订单号
    customerName: string;      // 乘车人
    prodTypeShow: string;      // 服务类型展示文案
    serviceTimeShow: string;   // 服务时间展示文案
    startPositionShow: string; // 出发地
    endPositionShow: string;   // 到达地
    orderStatusShow: string;   // 订单状态展示文案
    payPriceShow: string;      // 支付价格
  }];
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 6,
    "method": "tools/call",
    "params": {
      "name": "orderList",
      "arguments": {
        "startIndex": 0,
        "pageSize": 10
      }
    }
  }'

7. 查询订单详情 (orderDetail)

功能:通过订单号查询订单详细信息

触发词:订单详情、查询订单、订单信息

关键参数 (arguments)

  • orderId (必填): 订单号

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: {
    orderId: string;         // 订单号
    orderStatusDesc: string; // 订单状态
    serviceTime: string;     // 服务时间,如"03月23日 周一 20:00"
    prodTypeName: string;    // 服务类型
    productName: string;     // 产品类型
    depPosition: string;     // 出发地址
    arrPosition: string;     // 到达地址
    customName: string;      // 乘车人名称
    customPhone: string;     // 乘车人电话
    price: number;           // 订单金额
    driverPhone: string;     // 司机电话
    driverName: string;      // 司机名称
    carName: string;         // 车辆型号
    carNumber: string;       // 车牌号
    carColor: string;        // 车辆颜色
  };
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 7,
    "method": "tools/call",
    "params": {
      "name": "orderDetail",
      "arguments": {
        "orderId": "2603101813148416"
      }
    }
  }'

8. 查询取消费 (getCancelFee)

功能:查询订单是否能免费取消及取消费金额

触发词:取消费、查询取消费、能否免费取消

关键参数 (arguments)

  • orderId (必填): 订单号

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: {
    orderId: string;         // 订单号
    cancelFeeAmount: number; // 取消费金额
  };
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 8,
    "method": "tools/call",
    "params": {
      "name": "getCancelFee",
      "arguments": {
        "orderId": "2603101813148416"
      }
    }
  }'

9. 取消订单 (cancel)

功能:取消专车订单

触发词:取消订单、退订

关键参数 (arguments)

  • orderId (必填): 订单号

响应字段 (structuredContent.data)

{
  code: number;
  msg: string;
  data: {};
  ok: boolean;
  success: boolean;
  traceId: string;
}

调用示例

curl -s -X POST "${MCP_URL:-https://t.rsscc.com/mcp/local_test}" \
  -H "Content-Type: application/json" \
  -H "MCP-Session-Id: $MCP_SESSION_ID" \
  -d '{
    "jsonrpc": "2.0",
    "id": 9,
    "method": "tools/call",
    "params": {
      "name": "cancel",
      "arguments": {
        "orderId": "2603101813148416"
      }
    }
  }'

响应处理与输出建议

响应解析

网关返回标准 JSON-RPC 2.0 格式:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "isError": false,
    "content": [
      {
        "type": "text",
        "text": "调用成功"
      }
    ],
    "structuredContent": {
      "code": 0,
      "msg": "success",
      "data": { /* 业务数据 */ }
    }
  }
}

字段说明

  • isError: 工具执行是否失败(布尔标识)
  • false: 业务执行成功
  • true: 业务执行失败(但协议层正常)
  • content: 模型/人类可读文本
  • 成功时:优先使用 data 字段,若 data 为空则使用 msg
  • 失败时:固定使用 msg
  • structuredContent: 业务方返回的实际消息体
  • code: 业务状态码,0 为成功,非 0 为业务失败
  • msg: 业务描述信息
  • data: 业务数据体

协议错误(顶层 error):

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32602,
    "message": "Invalid params: name is required"
  }
}

协议错误表示 MCP 调用本身失败(如参数错误、鉴权失败、Session 过期等),而非业务失败。

输出建议

重要:所有工具调用后,必须从 structuredContent.data 中提取业务数据并展示给用户,不要只显示 content[0].text 的简单文本。

1. 城市站点信息(getAllCities)

structuredContent.data 数组中提取城市和站点信息,按城市分组展示:

数据路径result.structuredContent.data[]

展示格式

🌍 已开通服务的城市:

【北京】(cityId: 1)
  🛫 北京首都机场 (PEK)
     - T1航站楼
     - T2航站楼
     - T3航站楼
  🛫 北京大兴国际机场 (PKX)
  🚄 北京站 (BJP)
  🚄 北京西站 (BXP)

【上海】(cityId: 2)
  🛫 上海浦东机场 (PVG)
     - T1航站楼
     - T2航站楼
  🛫 上海虹桥机场 (SHA)
     - T1航站楼
     - T2航站楼
  🚄 上海站 (SHH)
  🚄 上海虹桥站 (AOH)

... (其他城市)

处理逻辑

  • 遍历 data 数组中的每个城市对象
  • 对于每个城市,显示 cityNamecityId
  • 遍历该城市的 depots 数组,根据 depotType 显示不同图标(0-机场🛫,1-火车站🚄)
  • 如果站点有 terminals 数组,缩进显示航站楼信息

2. POI 搜索结果(getPoiListByKey)

structuredContent.data.pois 数组中提取地址信息并展示。

数据路径result.structuredContent.data.pois[]

展示格式

如果搜索结果有多个,展示列表让用户选择:

📍 找到以下地址,请选择:

1. 知音广场停车场
   地址:武汉市武昌区中北路31号省工行大楼1层附近
   坐标:30.5548, 114.341142

2. 知音广场
   地址:武汉市武昌区中北路88号
   坐标:30.5550, 114.341200

如果只有一个结果,直接展示并询问用户确认:

📍 找到地址:

知音广场停车场
地址:武汉市武昌区中北路31号省工行大楼1层附近
坐标:30.5548, 114.341142

是否使用这个地址?

处理逻辑

  • 检查 pois 数组长度
  • 提取每个 POI 的 nameaddresslatlng 字段
  • 保存坐标信息供后续运力搜索使用

3. 运力搜索结果(getEstimate)

structuredContent.data 中提取车型和价格信息。

数据路径

  • 预估信息:result.structuredContent.data.durationresult.structuredContent.data.distance
  • 车型列表:result.structuredContent.data.products[]
  • 价格详情:result.structuredContent.data.products[].products[]

展示格式

🚗 可用车型:

预估行程:约 45 分钟 | 35.0 公里

【经济型】
  价格:¥89  原价:¥99
  产品ID: prod_001
  
【舒适型】
  价格:¥129  原价:¥139
  产品ID: prod_002
  
【商务型】
  价格:¥189  原价:¥199
  产品ID: prod_003

请选择您需要的车型。

处理逻辑

  • 显示 duration(分钟)和 distance(公里)
  • 遍历 products 数组,显示每个车型的 carLevelName
  • 对于每个车型,从其 products 数组中选择第一个报价(通常是最优价格)
  • 重要:保存用户选择的 productIdpTicketdirectId,创建订单时需要使用

4. 创建订单结果(createOrder)

structuredContent.data 中提取订单号。

数据路径result.structuredContent.data.orderId

展示格式

✅ 订单创建成功!

订单号:2603101813148416

正在查询订单详情...

处理逻辑

  • 提取 orderId
  • 立即调用 orderDetail 查询订单详情展示给用户
  • 如果订单未支付,询问用户是否支付

5. 订单列表(orderList)

structuredContent.data 数组中提取订单列表。

数据路径result.structuredContent.data[]

展示格式(表格形式):

📋 订单列表:

| 序号 | 订单号 | 乘车人 | 服务时间 | 出发地 | 目的地 | 价格 | 订单状态 |
|------|--------|--------|----------|--------|--------|------|----------|
| 1 | 2603101813148416 | 张三 | 05月15日 14:00 | 知音广场 | 天河机场 | ¥129 | 待服务 |
| 2 | 2603101813148417 | 李四 | 05月16日 10:00 | 汉口站 | 光谷广场 | ¥89 | 已完成 |

处理逻辑

  • 遍历 data 数组
  • 提取每个订单的关键字段展示
  • 如果用户想查看某个订单详情,使用 orderDetail 接口

6. 订单详情(orderDetail)

structuredContent.data 中提取订单详细信息。

数据路径result.structuredContent.data

展示格式

📋 订单详情

订单号:2603101813148416
订单状态:待服务

服务时间:03月23日 周一 20:00
服务类型:接机
车型:舒适型

出发地:知音广场停车场
目的地:武汉天河机场T3航站楼

乘车人:张三
联系电话:138****8000

订单金额:¥129

司机信息:
- 姓名:李师傅
- 电话:139****5678
- 车辆:别克GL8 鄂A·12345(白色)

处理逻辑

  • 提取 data 对象中的所有字段
  • 手机号使用脱敏格式(138**8000)
  • 如果有司机信息(driverNamedriverPhone 不为空),显示司机信息
  • 如果订单未支付,提示用户是否支付

7. 支付订单(pay)

structuredContent.data 中提取支付链接。

数据路径result.structuredContent.data.url

展示格式

💳 支付信息

支付链接:https://pay.example.com/order/2603101813148416

请点击链接完成支付。

处理逻辑

  • 提取 url 字段
  • 提示用户点击链接或在浏览器中打开

8. 查询取消费(getCancelFee)

structuredContent.data 中提取取消费信息。

数据路径result.structuredContent.data.cancelFeeAmount

展示格式

取消前先查询取消费,告知用户:

⚠️ 取消提示

该订单取消需收取取消费:¥50

是否确认取消订单?

如果取消费为 0:

✅ 该订单可免费取消

是否确认取消订单?

处理逻辑

  • 提取 cancelFeeAmount 字段
  • 根据金额是否为 0 显示不同提示
  • 用户确认后再调用 cancel 接口

9. 取消订单(cancel)

structuredContent 中判断取消结果。

数据路径result.structuredContent.code

展示格式

✅ 订单取消成功

订单号:2603101813148416

或者失败时:

❌ 订单取消失败

原因:订单已派单,无法取消

处理逻辑

  • 检查 code 是否为 200(成功)
  • 根据 msg 显示相应提示

错误处理

如果接口调用失败,返回的 isErrortrue,需根据 content 中的错误信息向用户反馈。

常见错误码

  • -32001: 缺少 MCP-Session-Id 请求头(需要重新初始化会话)
  • -32002: Session 不存在或已过期(需要重新初始化会话)
  • -32003: 鉴权失败(API Key 无效、已禁用、已过期、IP 不在白名单等)
  • -32602: 参数错误(必填参数缺失、格式不符等)
  • -32603: 内部错误(上游服务异常、超时、限流等)
  • 704: 服务时间不能早于当前时间(时间参数无效)
  • 处理方式:向用户说明时间无效的原因,要求用户重新输入服务时间
  • 禁止行为:不要自动选择新时间并重试

Session 过期自动处理

  • 当收到错误信息包含 "Session not found or expired" 或 "list tools failed" 时,说明 MCP 客户端的 Session 已过期
  • 等待 2-3 秒让 MCP 客户端自动重新连接
  • 然后自动重试刚才失败的操作(最多重试 1 次)
  • 如果重试仍然失败,向用户说明:"MCP 服务连接暂时中断,请稍后重试"
  • 不要尝试手动调用 initialize 方法,Session 管理由 MCP 客户端自动处理

注意事项

  1. 会话管理
    • MCP 客户端会自动管理 Session,无需手动初始化
    • Session 默认 30 分钟无活动后自动过期
    • 当收到 "Session not found or expired" 错误时,等待 2-3 秒让 MCP 客户端自动重新连接,然后重试操作
    • 如果重试仍然失败,向用户说明:"MCP 服务连接暂时中断,请稍后重试"
  2. 场站信息必填规则:运力搜索时,起点或终点至少有一端必须是机场/火车站(填写 depCode/arrCode)
  3. 坐标系统:POI 搜索返回的坐标为 GCJ-02(高德坐标系),可直接用于运力搜索
  4. 参数传递:从运力搜索到创建订单,需要保留 productIdpTicketdirectId 等参数
  5. 时间格式:服务时间格式为 yyyy-MM-dd HH:mm:ss,时间戳为毫秒级
  6. 隐私保护:展示手机号时使用脱敏格式(如 138**8000)
  7. 订单状态:创建订单后,需调用 orderDetail 查询订单详情,确认订单状态
  8. 支付流程:如果订单未支付,需调用 pay 获取支付链接,引导用户完成支付
  9. 取消流程:取消订单前,建议先调用 getCancelFee 查询取消费,告知用户后再确认取消
  10. 用户身份
    • 个人 Key(2C):用户身份由 API Key 绑定的 phoneid 决定,无需额外传递
    • 企业 Key(2B):需要通过 X-User-Authorization 请求头传递用户凭证

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-06-03 11:30 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

航班管家-机票预定服务

user_594f630b
智程机票出行 MCP 工具调用指南 — 教 Agent 通过 curl + JSON-RPC 调用航班搜索、预订、退改签、发票等 14 个工具。当用户提到机票、航班、退票、改签、发票、订票时使用此技能。
★ 0 📥 117

航班管家-酒店预订服务

user_594f630b
酒店管家预订助手 - 通过 curl 调用 MCP 实现国内酒店搜索、详情查询、预订下单。适用于用户询问酒店、查询酒店价格或提交酒店订单时使用。
★ 0 📥 81

航班管家-航班动态服务

user_594f630b
通过 MCP Streamable HTTP 调用航班动态工具,支持机场/城市搜索、航班查询(前序、调时、拥挤度、准点率、日历)、机型舱位、天气、行程值机及增值服务。当用户询问航班动态、机场信息、天气、值机退改签相关场景时自动激活。
★ 0 📥 81