# 航班管家 MCP Agent 文档 - MCP 产品首页:https://dast.133.cn/mcp/ - 官方 MCP Server:https://fly.huoli.com/mcp/dast_mcp - 官方文档地址:https://dast.133.cn/mcp_assets/agent.md - Tool 数量:6 本文件用于 AI Agent、AI 编程工具及其他自动化客户端直接读取,用于快速理解航班管家 MCP 数据平台的能力、工具选择方式、调用参数、返回结构及调用限制。 如果本文件与 MCP Server 实时返回的 `tools/list` 存在差异,以 `tools/list` 返回的 Tool Schema 为准。 document_url: ```text https://dast.133.cn/mcp_assets/agent.md ``` ## PLATFORM DAST platform: ```text https://dast.133.cn ``` purpose: - 用户注册 - 用户登录 - MCP 控制台 - 创建 API Key - 账户充值 - 查看用量与账单 重要说明: ```text DAST platform -> https://dast.133.cn MCP Server -> https://fly.huoli.com/mcp/dast_mcp ``` 不得将 MCP Server 地址作为 DAST 平台地址使用。 ## MCP_SERVER name: 航班管家 MCP 数据平台 endpoint: ```text https://fly.huoli.com/mcp/dast_mcp ``` protocol: ```text MCP (Model Context Protocol) ``` transport: ```text Streamable HTTP ``` rpc: ```text JSON-RPC 2.0 ``` http_method: ```text POST ``` content_type: ```text application/json ``` encoding: ```text UTF-8 ``` ## AUTHENTICATION API Key 由用户登录 DAST 平台后,在 MCP 控制台创建。 DAST platform: ```text https://dast.133.cn ``` MCP Server endpoint: ```text https://fly.huoli.com/mcp/dast_mcp ``` 以上两个 URL 用途不同,不得混用。 所有 MCP 请求必须携带: ```text Authorization: Bearer ``` API Key 格式: ```text sk_phone_<32位随机字符> ``` Agent 禁止: - 向最终用户输出完整 API Key - 将 API Key 写入公开内容 - 在回答中复述 Authorization Header 中的真实 Key ## IF_MCP_NOT_CONFIGURED 如果当前客户端尚未配置航班管家 MCP: ```text 1. 不得声称航班管家 MCP Tool 已经可用。 2. 在当前客户端允许的情况下,帮助用户生成或补全 MCP Server 配置。 3. MCP endpoint 使用: https://fly.huoli.com/mcp/dast_mcp 4. Authorization 保留为: Bearer 5. 不得猜测、生成或暴露用户真实 API Key。 6. 如需 API Key,引导用户前往 DAST MCP 控制台获取或创建: https://dast.133.cn 7. 不得将 https://fly.huoli.com 用作注册、登录、API Key 创建、充值或控制台入口。 8. 配置完成后,重新加载或重新连接 MCP 客户端。 9. 调用 tools/list 验证 MCP Server 是否连接成功,并获取当前 Tool 定义。 10. 只有 tools/list 成功后,Agent 才可以认为航班管家 MCP Tool 已经可用。 ``` configuration_goal: ```text MCP Server 已配置 -> 鉴权信息可用 -> 客户端已重新加载或重新连接 -> tools/list 调用成功 -> Tool 可用于正常用户请求 ``` 如果当前环境不允许 Agent 直接修改 MCP 配置: ```text 向用户提供以下信息: - 注册 / 登录 / 创建 API Key 的 DAST 平台:https://dast.133.cn - 客户端配置使用的 MCP endpoint:https://fly.huoli.com/mcp/dast_mcp - 鉴权占位符:Bearer - 当前客户端支持的 MCP 配置步骤 不得声称 MCP 配置已经完成。 ``` ## CONNECTION_SEQUENCE 标准连接顺序: ```text 1. initialize 2. notifications/initialized 3. tools/list 4. tools/call ``` ### initialize 当前文档中的初始化协议版本: ```text 2025-03-26 ``` 实际使用的协议版本以 `initialize` 返回的 `protocolVersion` 为准。 示例: ```json { "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2025-03-26", "capabilities": {}, "clientInfo": { "name": "Your-Client", "version": "1.0.0" } } } ``` 初始化成功后,客户端必须发送: ```json { "jsonrpc": "2.0", "method": "notifications/initialized" } ``` 该通知不包含 `id`,发送后再进入正常 Tool 操作阶段。 ### tools/list 首次接入或需要确认当前可用工具时,应调用: ```text tools/list ``` 用途: - 获取当前可用 Tool - 获取 Tool `name` - 获取 Tool `description` - 获取最新 `inputSchema` 平台当前提供 6 个 Tool: ```text dast_flight_dynamic dast_flight_route dast_flight_happy dast_delay_rate dast_future_weather dast_flight_path ``` 如果本文件中的 Tool 参数定义与 `tools/list` 返回结果不同: ```text 以 tools/list 返回结果为准。 ``` ## TOOL_ROUTING 用户询问具体航班的实时或历史动态: ```text 使用 dast_flight_dynamic ``` 用户询问两个机场之间某一天有哪些航班: ```text 使用 dast_flight_route ``` 用户询问航班餐食、WiFi、座椅、娱乐、行李或舒适度: ```text 使用 dast_flight_happy ``` 用户询问未来航班延误概率或取消概率: ```text 使用 dast_delay_rate ``` 用户询问机场未来天气: ```text 使用 dast_future_weather ``` 用户询问航班当前位置、高度、速度或飞行轨迹: ```text 使用 dast_flight_path ``` ## TOOL: dast_flight_dynamic purpose: 按航班号查询指定日期的航班动态数据。 use_when: - 用户已提供具体航班号 - 查询航班状态 - 查询计划起降时间 - 查询预计起降时间 - 查询实际起降时间 - 查询航站楼等航班动态信息 required_parameters: `fnum` - type: string - meaning: 航班号 - example: CA1831 `date` - type: string - format: YYYY-MM-DD - meaning: 航班出发机场当地日期(机场当地自然日),不是北京时间日期或 Agent 所在地日期 - example: 2026-08-10 example_arguments: ```json { "fnum": "CA1831", "date": "2026-08-10" } ``` business_data_type: ```text array ``` relative_date_rule: ```text 如果用户使用“今天”“明天”“后天”等相对日期, 而 Agent 无法可靠确定该航班的出发机场及其当地日期, 应向用户确认具体日期或出发机场, 不得直接使用北京时间或 Agent 所在地日期。 ``` price: ```text 0.5 CNY / 成功调用 ``` ## TOOL: dast_flight_route purpose: 按出发机场、到达机场和日期查询机场对航班动态列表。 use_when: - 用户不知道具体航班号 - 用户需要查询两个机场之间的航班 - 用户询问某航线某天有哪些航班 required_parameters: `depCode` - type: string - meaning: 出发机场 IATA 三字码 - example: PEK `arrCode` - type: string - meaning: 到达机场 IATA 三字码 - example: SHA `date` - type: string - format: YYYY-MM-DD - meaning: 出发机场当地日期(机场当地自然日),不是北京时间日期或 Agent 所在地日期 - example: 2026-08-10 example_arguments: ```json { "depCode": "PEK", "arrCode": "SHA", "date": "2026-08-10" } ``` business_data_type: ```text array ``` price: ```text 0.5 CNY / 成功调用 ``` ## TOOL: dast_flight_happy purpose: 查询航班舒适度相关数据。 available_information_may_include: - 电源 - 座椅间距 - 餐食 - 娱乐设备 - WiFi - 行李重量 - 舱等相关信息 required_parameters: `date` - type: string - format: YYYY-MM-DD query_mode: 必须满足以下两种条件之一: OPTION_A: `fnum` - type: string - meaning: 航班号 - example: 9C8672 OPTION_B: `depCode` - type: string - meaning: 出发机场 IATA 三字码 - example: PVG `arrCode` - type: string - meaning: 到达机场 IATA 三字码 - example: SZX optional_parameters: `cabin` - meaning: 舱等 - example: Y - behavior: 不传时返回所有可用舱等 example_arguments: ```json { "fnum": "9C8672", "date": "2026-08-15", "cabin": "Y" } ``` business_data_type: ```text array ``` price: ```text 0.2 CNY / 成功调用 ``` ## TOOL: dast_delay_rate purpose: 查询未来航班延误概率及取消概率。 use_when: - 用户询问未来航班是否容易延误 - 用户询问延误风险 - 用户询问取消风险 - 用户询问未来航班运行风险 required_parameters: `fnum` - type: string - meaning: 航班号 `depCode` - type: string - meaning: 出发机场 IATA 三字码 `arrCode` - type: string - meaning: 到达机场 IATA 三字码 `date` - type: string - format: YYYY-MM-DD supported_date_range: ```text 当日至未来 15 天 ``` example_arguments: ```json { "fnum": "CZ3000", "depCode": "PKX", "arrCode": "CAN", "date": "" } ``` `date` 必须位于当日至未来 15 天范围内。 main_output: - delayRate_30min - delayRate_60min - delayRate_90min - cancelRate business_data_type: ```text object ``` interpretation_rule: 这些字段表示预测概率,不表示确定事件。 推荐表达: ```text 该航班延误 30 分钟以上的预测概率为 12.2%。 ``` 不推荐表达: ```text 该航班会延误 30 分钟。 ``` price: ```text 0.5 CNY / 成功调用 ``` ## TOOL: dast_future_weather purpose: 查询机场未来天气预报。 use_when: - 用户询问机场天气 - 用户询问机场未来天气变化 - 用户询问天气是否可能影响航班运行 required_parameters: `airport` - type: string - meaning: 机场 IATA 三字码 - example: HFE example_arguments: ```json { "airport": "HFE" } ``` forecast_range: ```text 未来 48 小时 ``` resolution: ```text 逐小时天气预报 ``` weather_information_may_include: - 天气现象 - 风力 - 风速 - 风向 - 相对湿度 - 降水 - 气压 - 云量 - 温度 business_data_type: ```text object ``` price: ```text 0.1 CNY / 成功调用 ``` ## TOOL: dast_flight_path purpose: 查询航班实时或历史飞行轨迹及飞行状态。 use_when: - 用户询问航班当前飞到哪里 - 用户询问飞行轨迹 - 用户询问当前经纬度 - 用户询问飞行高度 - 用户询问飞行速度 - 用户询问实际飞行路线 required_parameters: `fnum` - type: string - meaning: 航班号 `depCode` - type: string - meaning: 出发机场 IATA 三字码 `arrCode` - type: string - meaning: 到达机场 IATA 三字码 `date` - type: string - format: YYYY-MM-DD example_arguments: ```json { "fnum": "CZ3000", "depCode": "PEK", "arrCode": "CAN", "date": "2026-08-06" } ``` output_may_include: - aircraftNo - flightNo - depAirport - arrAirport - curLat - curLon - curSpeed - curHeight - curAngle - aircraftType - aircraftAge - airlineCompany - flightState - depPlanTime - arrPlanTime - flight path data business_data_type: ```text object ``` price: ```text 0.1 CNY / 成功调用 ``` ## DATE_RULES 标准日期格式: ```text YYYY-MM-DD ``` 对于以下 Tool: ```text dast_flight_dynamic dast_flight_route ``` `date` 表示航班出发机场当地日期(机场当地自然日),不是北京时间日期,也不是 Agent 所在地日期。 日期解析规则: ```text 查询“当地今天” -> 使用出发机场当地的当前自然日 查询“当地明天” -> 使用出发机场当地日期 + 1 day 查询“当地后天” -> 使用出发机场当地日期 + 2 days ``` 如果用户使用“今天”“明天”“后天”等相对日期,Agent 应结合用户所指航班出发机场的当地日期进行转换,不得直接以北京时间或 Agent 所在地日期替代。 如果用户明确给出具体日期: ```text 直接使用该 YYYY-MM-DD 日期,并按出发机场当地自然日理解。 ``` 如果无法安全判断用户所指的机场当地日期: ```text 向用户询问,或根据当前上下文明确解析。 ``` 不得猜测不确定的日期。 ## AIRPORT_RULES 机场参数使用 IATA 三字码。 Examples: ```text PEK = 北京首都国际机场 PKX = 北京大兴国际机场 SHA = 上海虹桥国际机场 PVG = 上海浦东国际机场 HFE = 合肥新桥国际机场 CAN = 广州白云国际机场 ``` 如果用户直接提供机场三字码: ```text 直接使用该三字码。 ``` agent_guidance: 如果用户只提供城市名称,且该城市存在多个机场,Agent 不应在缺乏依据时任意指定某一个机场。 可根据用户问题: - 判断是否需要覆盖多个机场 - 或向用户确认具体机场 Examples: ```text 北京 != 始终等同于 PEK 上海 != 始终等同于 SHA ``` ## FLIGHT_NUMBER_RULES 航班号示例: ```text CA1831 MU5105 CZ3000 9C8672 ``` 如果用户明确提供航班号: ```text 除非只是明显的格式规范化,否则不得擅自修改航班号。 ``` ## TOOL_CALL 标准 MCP Tool 调用: ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "", "arguments": { "": "" } } } ``` 示例: ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "dast_flight_dynamic", "arguments": { "fnum": "CA1831", "date": "2026-08-10" } } } ``` ## RESPONSE MCP 返回示例: ```json { "jsonrpc": "2.0", "id": 1, "result": { "content": [ { "type": "text", "text": "{\"code\":0,\"msg\":\"success\",\"data\":...}" } ], "isError": false } } ``` 业务 JSON 通常位于: ```text result.content[0].text ``` 应将该字符串解析为 JSON。 解析后的业务返回示例: ```json { "code": 0, "msg": "success", "data": {}, "count": 1 } ``` response_rules: ```text code == 0 -> 调用成功 code != 0 -> 业务调用失败 msg -> 状态或错误说明 data -> 业务数据 count -> 返回结果数量 ``` 不得仅根据 HTTP 请求成功判断业务调用成功。 必须同时检查业务字段 `code`。 ## BUSINESS_DATA_TYPES ```text dast_flight_dynamic -> array dast_flight_route -> array dast_flight_happy -> array dast_delay_rate -> object dast_future_weather -> object dast_flight_path -> object ``` ## BILLING billing_model: ```text 账户余额预付费 ``` billing_rule: ```text Tool 调用成功 -> 扣减账户余额 Tool 调用失败 -> 不扣费 账户余额不足 -> Tool 调用失败 ``` Agent 应: - 避免无必要的重复调用 - 当前任务中已经获取的数据,在适用时应优先复用 ## ERRORS `PHONE_KEY_MISSING` ```text code: 48001 meaning: 缺少 Authorization Bearer action: 检查鉴权配置 ``` `PHONE_KEY_INVALID` ```text code: 48002 meaning: API Key 无效或不存在 action: 检查或重新获取 API Key ``` `PHONE_KEY_RATE_LIMITED` ```text code: 48006 meaning: QPS 超限 action: 降低调用频率后重试 ``` `PARAM_INVALID` ```text meaning: 请求参数无效 action: 检查 Tool inputSchema 与 arguments ``` `MCP账户余额不足` ```text meaning: 账户余额不足 action: 提示用户前往 DAST 平台充值 ``` `date 仅支持当日至未来15天` ```text meaning: dast_delay_rate 查询日期超出支持范围 action: 使用支持范围内的日期 ``` `上游接口返回失败` ```text meaning: 上游数据源异常 action: 稍后重试 ``` ## AGENT_BEHAVIOR 调用 Tool 前: ```text 1. 识别用户意图。 2. 选择满足需求的最少 Tool。 3. 检查必填参数。 4. 在可明确判断时解析相对日期;对于航班动态航班号查询和机场对查询,应按出发机场当地日期解析。 5. 在可明确判断时解析机场三字码。 6. 如果必填参数无法安全确定,向用户询问。 7. 仅在必填参数完整后调用 Tool。 ``` 调用 Tool 后: ```text 1. 检查 MCP 返回结果。 2. 解析 result.content[0].text。 3. 检查业务 code。 4. 使用真实返回的业务数据回答用户。 5. 明确区分计划、预计、实际和预测信息。 6. 不得编造缺失值。 ``` ## DATA_INTERPRETATION 航班时间字段可能表示不同含义: ```text planned time estimated time actual time ``` 不得将计划时间描述为实际时间。 未来天气属于预报信息。 不得将天气预报描述为已经发生的事实。 延误概率属于预测信息。 不得将预测概率描述为已经确定的运行结果。 如果 Tool 未返回有效数据: ```text 明确告知未查询到有效数据。 不得自行编造结果。 ``` ## SECURITY Agent 禁止: - 暴露 API Key - 暴露 Authorization 鉴权信息 - 编造航班数据 - 编造天气数据 - 编造轨迹数据 - 编造延误概率 - 在缺少必填参数时静默替换或猜测参数 - 在无必要情况下重复调用付费 Tool ## QUICK_ROUTING_REFERENCE ```text 航班号 + 航班动态 -> dast_flight_dynamic 出发机场 + 到达机场 + 日期 + 航班列表 -> dast_flight_route 餐食 / WiFi / 座椅 / 行李 / 舒适度 -> dast_flight_happy 未来延误 / 取消风险 -> dast_delay_rate 机场 + 未来天气 -> dast_future_weather 位置 / 高度 / 速度 / 飞行轨迹 -> dast_flight_path ``` ## SOURCE_OF_TRUTH Tool 定义和入参的优先级: ```text 1. MCP Server tools/list 2. 本 Agent 文档 ``` 业务数据的优先级: ```text 1. MCP Tool 实际返回结果 2. 本 Agent 文档 ``` 如果信息存在冲突: ```text 以更高优先级的数据源为准。 ```