Qt AFSim雷达态势显控终端-MCP服务功能

Qt AFSim雷达态势显控终端-MCP服务功能介绍

概述

Qt AFSim雷达态势显控终端MCP 服务是内置的 Model Context Protocol 服务层,面向 AI 大模型客户端,提供结构化的态势感知、决策辅助与受控执行能力。

服务基于标准 MCP 协议(JSON-RPC 2.0),通过 HTTP POST /message 端口暴露工具(Tools),AI 模型可通过自然语言驱动工具调用,完成从态势感知到武器交战的完整业务闭环。



设计原则

  • 只读优先:态势查询、分析类接口均为只读,不影响仿真状态
  • 权限分级 :所有工具按 read-only / operator / dangerous 三级管控
  • 高风险两阶段确认 :危险操作必须先 prepareAction 获取 token,再 confirmAction 执行
  • 结构化输出:所有返回值为结构化 JSON,便于 AI 解析
  • 审计可追溯:所有工具调用均记录审计日志,支持事后查询

权限模型

权限级别 说明 典型操作
read-only 只读查询,不影响系统状态 态势查询、威胁分析、交战建议
operator 操作级,可影响显示和仿真控制 地图控制、焦点切换、仿真暂停/恢复
dangerous 高风险,需二次确认 武器交战、停止仿真

高风险操作两阶段流程

复制代码
1. dangerous.prepareAction(action, arguments)
   → 服务器生成 UUID token,记录操作参数,设置 60 秒过期时间
   → 返回 token、摘要、过期时间

2. 客户端展示摘要,用户确认

3. dangerous.confirmAction(token)
   → 服务器验证 token 有效性(未过期、未使用)
   → 取出绑定的参数执行操作(参数不可被客户端篡改)
   → token 消费后立即删除(一次性)

token 保护机制:

  • UUID 随机生成,不可预测
  • 60 秒 TTL,过期自动清除
  • 一次性消费,不可重放
  • 参数服务器侧绑定,客户端无法在 confirm 时替换目标

工具分组与功能说明

1. 推演状态查询

工具 权限 说明
simulation.getStatus read-only 获取仿真运行状态(运行中/暂停/停止)、当前时间、倍率
simulation.health read-only 健康诊断,返回 DDS 连接、数据流、实体数等系统状态

2. 推演控制

工具 权限 说明
simulation.pause operator 暂停仿真
simulation.resume operator 恢复仿真
simulation.setRate operator 设置仿真倍率(1--100)
simulation.setFps operator 设置仿真帧率
simulation.start operator 启动仿真任务
simulation.stop dangerous 停止仿真(需二次确认)

3. 实体查询

工具 权限 说明
entity.list read-only 返回所有实体摘要列表(位置、类型、IFF、速度等)
entity.ids read-only 返回所有实体名称列表
entity.get read-only 按名称查询单个实体完整详情,含传感器、武器、航迹
entity.self read-only 返回当前自平台完整详情,含己方雷达航迹列表

entity.self 返回的航迹列表(tracks)包含:

  • trackNumber:整数航迹号(武器交战所需)
  • targetName:目标实体名称
  • iff:敌我识别(foe / friend / unknown / neutral
  • 位置、速度、距离变化率等

4. 焦点目标与航迹

工具 权限 说明
target.focus read-only 获取当前焦点目标详情
target.setFocus operator 设置焦点目标(切换当前关注实体)
track.focus read-only 获取当前焦点航迹详情
track.listSelf read-only 返回自平台雷达探测到的所有航迹列表

5. 态势感知

工具 权限 说明
situation.snapshot read-only 返回当前完整战场态势快照(所有实体、航迹、告警)
situation.delta read-only 返回指定序列号之后的增量态势变化,减少数据量
get_battlefield_status read-only 返回敌我友中立四类实体列表及自平台信息(简化格式)

situation.delta 使用方式:

复制代码
首次调用 → sinceSequence: 0 → 获取 nextSequence
后续调用 → sinceSequence: <上次 nextSequence> → 仅返回变化部分

6. 事件与告警

工具 权限 说明
event.listRecent read-only 查询最近 N 条事件(可按时间、类型过滤)
alert.active read-only 返回当前所有活动告警
alert.acknowledge operator 确认/清除指定告警

7. 威胁分析

工具 权限 说明
threat.rank read-only 对当前战场所有敌方目标按威胁程度排序,返回优先级列表
threat.summary read-only 返回指定目标的威胁详情(距离、速度、接触时间估算、IFF)

8. 交战决策辅助

工具 权限 说明
engagement.precheck read-only 检查对指定目标开火的前提条件(武器就绪、弹药、射程)
engagement.recommend read-only 为指定航迹推荐最优武器及交战参数
engagement.compareOptions read-only 对比多种交战方案的效费比
weapon.capability read-only 查询指定武器的性能参数(射程、弹速、类型)
sensor.coverage read-only 查询指定传感器的探测覆盖范围

9. 武器交战执行

工具 权限 说明
weapon.engage dangerous 高风险武器交战,必须经过二次确认流程
fire_weapon operator 直接开火指令(需要 entity_name、weapon、track_number)
cease_fire operator 停止所有武器交战

weapon.engage 参数:

json 复制代码
{
  "entityId": "blue_1",
  "weaponId": "fox3",
  "trackNumber": 3
}

注意: trackNumber 为整数航迹号,需从 entity.selftrack.listSelf 获取,不能直接使用实体名称字符串。

10. 机动控制

工具 权限 说明
move_unit operator 移动单位到指定经纬度/高度
change_speed operator 改变单位速度(米/秒)
change_heading operator 改变单位航向(度)
change_altitude operator 改变单位高度(米)
retreat operator 撤退到安全位置
set_defensive_posture operator 进入防御姿态
scout_area operator 侦察指定区域
loiter operator 在指定位置盘旋
return_to_base operator 返回基地
evasive_maneuver operator 规避机动

11. 地图与视口控制

工具 权限 说明
map.getViewState read-only 获取当前地图视口状态(中心坐标、缩放级别、雷达环半径)
map.getDisplayState read-only 获取各图层显示开关状态
map.zoomToEntity operator 将地图视口聚焦到指定实体
map.setEntityNameVisible operator 切换实体名称显示
map.setSpeedLineVisible operator 切换速度线显示
map.setHistoryTrackVisible operator 切换历史航迹显示
map.setWeaponRangeVisible operator 切换武器射程圈显示
map.setSensorCoverageVisible operator 切换传感器覆盖显示
map.setEffectCoverageVisible operator 切换效果覆盖显示
map.setRelationshipEdgesVisible operator 切换关系线显示
viewport.getState read-only 获取视口跟随状态
viewport.followTarget operator 设置视口跟随指定目标

12. 高风险操作管理

工具 权限 说明
dangerous.prepareAction operator 为高风险操作生成确认 token,绑定操作参数
dangerous.previewAction read-only 预览操作内容(不执行,用于 AI 展示操作摘要)
dangerous.confirmAction operator 凭 token 确认并执行已准备的高风险操作

13. 审计日志

工具 权限 说明
audit.query read-only 查询工具调用审计日志,支持按工具名、时间、阶段过滤

审计日志记录所有工具调用的完整信息,包括 prepare/confirm/execute 三个阶段,用于训练评估和事后复盘。


典型业务流程

AI 自动决策开火流程

复制代码
1. get_battlefield_status / situation.snapshot
   → 获取当前战场态势,识别威胁目标

2. threat.rank / engagement.precheck
   → 评估威胁优先级,检查开火条件

3. entity.self
   → 获取自平台航迹列表,匹配目标 trackNumber
   → 获取可用武器列表(quantityRemaining > 0)

4. engagement.recommend
   → 获取推荐武器和交战参数

5. dangerous.prepareAction("weapon.engage", {entityId, weaponId, trackNumber})
   → 服务器生成 token,返回操作摘要

6. 客户端展示摘要,等待用户确认(UI 弹窗)

7. dangerous.confirmAction(token)
   → 服务器验证 token,执行武器交战
   → 返回执行结果和时间戳

8. audit.query
   → 可查询本次交战的完整审计记录

态势监控流程

复制代码
1. situation.snapshot → 获取初始全量态势,记录 nextSequence
2. 定期调用 situation.delta(sinceSequence) → 仅获取变化部分
3. alert.active → 检查活动告警
4. threat.rank → 更新威胁排序

注意事项

  1. token 有效期 60 秒prepareAction 后必须在 60 秒内完成 confirmAction,否则 token 过期失效。

  2. token 一次性confirmAction 成功后 token 立即销毁,不可重复使用。

  3. 武器就绪状态isReady: false 时武器可能仍在装填,建议优先选择 isReady: true 的武器。


相关推荐
带娃的IT创业者6 小时前
WeClaw-TTS 语音合成实战:pyttsx3 本地引擎与 Edge-TTS 云服务的混合架构.md
前端·tts·ai智能体·openclaw·weclaw
OpenTiny社区20 小时前
WebMCP + WebSkills:企业级智能化页面操控方案,兼顾隐私安全与高效落地!
前端·ai编程·mcp
zhangshuang-peta1 天前
MCP vs Prompt 工程:从“写提示词”到“立协议”的范式迁移
人工智能·ai agent·mcp·peta
永恒星1 天前
MCP详解
mcp
zhangshuang-peta1 天前
什么是 MCP:模型上下文协议到底解决了什么问题
人工智能·ai agent·mcp
小手智联老徐2 天前
在 macOS 上使用 Lima 虚拟机安全部署 OpenClaw:构建你的 AI 隔离沙箱
人工智能·安全·macos·ai智能体·openclaw
馨谙2 天前
MCP 协议的两种核心通信方式:stdio 与 SSE
智能体·mcp
用户47949283569153 天前
MCP VS SKILLS:你以为你懂了,其实没有
agent·mcp
OpenTiny社区3 天前
AI-Extension:让 AI 真的「看得到、动得了」你的浏览器
前端·ai编程·mcp