원클릭으로
oni-mcp-testing
当用户要求测试、验证或审计 ONI MCP 服务器功能、连接状态、工具可用性,或评估 MCP 操作体验和易用性时使用。指导 agent 执行系统化的功能测试流程,覆盖连接、查询、地图、建造、相机、订单等核心能力,并生成测试报告。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
当用户要求测试、验证或审计 ONI MCP 服务器功能、连接状态、工具可用性,或评估 MCP 操作体验和易用性时使用。指导 agent 执行系统化的功能测试流程,覆盖连接、查询、地图、建造、相机、订单等核心能力,并生成测试报告。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
MCP control skill for Oxygen Not Included. Defines the control loop (sense → analyze → decide → act → verify), tool calling strategies, parameter selection, batch patterns, and error recovery. Use when controlling ONI through MCP tools.
当开始新的 Oxygen Not Included 殖民地,或用户要求开局设置/bootstrap 配置时使用。涵盖思考前暂停、错峰日程、按属性重命名复制人并由用户确认命名风格、禁用自动消毒、侦察起始星体,以及规划早期双侧扩张和打印舱实验室。
当用户要求 agent 通过 MCP 循环游玩 Oxygen Not Included、自动玩一段时间、继续殖民地,或运行暂停-规划-恢复循环时使用。强制执行严格的 pause -> observe -> plan -> execute -> resume briefly -> pause -> verify 循环,读取 game_control domain=ui uiDomain=edit_mark action=list,限制运行窗口,并在风险或歧义决策前停下等待用户确认。
当用户要求检查 ONI 复制人状态、怀疑复制人卡住/被困/不可达、报告复制人在错误地点发呆或睡觉、要求救援分诊,或需要快速复制人健康/导航审计时使用。指导 agent 先用 dupes_control domain=info action=status_check,只检查被标记区域,除非用户明确授权,否则不要下达救援动作。
当用户要求快速总结 ONI 附近环境/资源、开局区域概览、周围资源、附近危险、扩张方向,或问“我周围有什么”时使用。指导 agent 使用低 token 的只读 MCP 工具,尤其是 read_control domain=world action=area_snapshot,并返回简洁、可执行的环境/资源摘要,不执行游戏动作。
当用户询问 ONI 游戏机制、建筑/资源/元素/动植物用途、策略建议,或在未授权控制游戏时问“我该做什么”时使用。事实性答案优先依据可验证的外部文档或静态仓库资料;仅当建议依赖当前存档时读取只读殖民地、世界和资源状态,不调用已禁用的游戏内 knowledge/database/guide 查询。
| name | oni-mcp-testing |
| description | 当用户要求测试、验证或审计 ONI MCP 服务器功能、连接状态、工具可用性,或评估 MCP 操作体验和易用性时使用。指导 agent 执行系统化的功能测试流程,覆盖连接、查询、地图、建造、相机、订单等核心能力,并生成测试报告。 |
验证服务器连接和游戏基本状态:
server_control domain=diagnostics action=status → 服务器加载状态、端口、工具数量
game_control domain=speed action=time → 游戏时间、周期、暂停状态
colony_control domain=snapshot action=get → 殖民地完整快照(替代 6 个独立调用)
检查项:
server_control domain=diagnostics action=status 返回的 loaded 为 truetoolCount 为核心公开工具数量,正常应为 8game_control domain=speed action=time 返回有效周期和时间colony_control domain=snapshot action=get 返回复制人、食物、建筑、研究、告警并行测试对规划决策最关键的信息工具,跳过非核心查询:
read_control domain=infrastructure action=power_summary includeDetails=true → 重点检测未接入电路的设备
dupes_control domain=info action=status_check → 复制人导航可达性、被困风险
building_control domain=planning action=search_defs query=厕所 → 中文查询 + 材料可用性
检查项:
read_control domain=infrastructure action=power_summary 发现未连接设备(如 circuitId=-1)为加分项dupes_control domain=info action=status_check 无被困风险,导航样本合理building_control domain=planning action=search_defs 中文关键词可用,返回 placement.anchor 规则这是测试核心。重点验证地图输出是否真正「可读、可规划、可决策」:
read_control domain=world action=text_map
view=base, includeBuildings=true, includeItems=true, format=markdown
→ 测试连续区段地图的可读性、图例完整性、对象标注精度
read_control domain=world action=text_map
view=temperature, format=markdown
→ 测试温度视图是否能快速识别 hot/mild/cold 区域
read_control domain=world action=area_snapshot
preset=utilities, overlays=[power,gas_conduits,liquid_conduits,logic]
compact=true
→ 测试多 overlay 信息密度、紧凑模式实用性、冲突诊断输出
检查项(地图可读性):
bld/dup/itm/tile/sol/bp/bp_a 等全部标记anchor/footprint/size,多格建筑边界明确hot/mild/cold,无大面积混淆compact=true 下对象表省略空字段,信息密度高但不丢失关键数据检查项(诊断价值):
unsupported 建筑(缺失支撑格坐标列出)overlap 冲突(列出具体冲突对象,如 tile@x,y 或 building:Door@x,y)w(电线) / p(电力设备) / .(空)测试 MCP 是否能有效降低殖民地规划的认知负担:
read_control domain=world action=layout_candidates purpose=barracks limit=5
→ 评分、分类、需挖掘/铺砖量、危险格、可达性
read_control domain=world action=layout_candidates purpose=bathroom limit=5
→ 不同用途的候选推荐是否差异化
building_control domain=planning action=preview prefabId=Outhouse x=... y=... dryRun=true
→ 应拒绝 raw coordinates,并提示使用 operation-file 路由
world_editor command=read path=/active/ops/tools.md
→ 只选择当前公开 typed files/tools,忽略 hidden coordinate_control 和 /active/ops/coordinate.md
world_editor command=read path=/active/map/viewport.md
→ 把目标空格 token 改为 `建筑名:优先级[#材料字]`,以外层 dryRun=true/confirm=false 预览
检查项(候选规划):
read_control domain=world action=layout_candidates 返回 score 和 scoreExplanation,扣分逻辑透明open_ready/mixed_platform 等)能帮助快速决策requiredDig/requiredTiles/existingSupportCells 量化改造工作量hazardCells 标注液体/危险元素坐标,避免盲目挖掘检查项(建造预检复杂度):
building_control 对 raw x/y 返回明确拒绝和 operation-file 引导allowPartial=true 允许且无法事务回滚material=auto 自动选择当前星球可用材料测试大范围规划的基础设施:
read_control domain=area action=define x1=... y1=... x2=... y2=... label=plan_zone
read_control domain=area action=blocks blockWidth=20 blockHeight=20 label=plan_blocks
read_control domain=area action=merge areaIds=[blk1,blk2]
→ 区域定义、切块、合并的连贯性
building_control domain=planning action=build_area prefabId=Tile anchors=[[x1,y1],[x2,y2],[x3,y3]] dryRun=true
→ 验证普通工具拒绝 raw anchors
world_editor command=read path=/active/ops/orders.md
→ 以 `挖 x1=... y1=... x2=... y2=... priority=7 dryRun=true` 验证精确矩形 dry-run 路由
orders_control domain=area action=dig areaId=... dryRun=true detail=true
orders_control domain=area action=sweep areaId=... dryRun=true detail=true
→ 区域级订单预览,检测风险与 previewToken 复用
检查项:
read_control domain=area action=define / read_control domain=area action=blocks / read_control domain=area action=merge 生成的 areaId 可在后续工具复用building_control 对 raw anchors 拒绝,不残留部分蓝图dryRun=true 且 confirm=false/省略;独立执行 edit 用 dryRun=false 且 confirm=true,内外标志不冲突orders_control domain=area action=dig 返回目标元素、质量、温度、风险列表previewToken 支持复用,避免重复扫描合并为少量调用,验证可用即可:
navigation_control action=get_view
navigation_control action=focus_cell x=... y=...
navigation_control action=switch_view view=power screenshot=false
navigation_control action=coordinate_screenshot areaId=... focusCamera=true
检查项:
server_control domain=batch action=call_many responseMode=summary
items:
- { t: navigation_control, a: { action: get_view } }
- { t: building_control, a: { domain: planning, action: search_defs, query: 梯子, limit: 3 } }
检查项:
requireAllValid=true 正确工作如果前 7 阶段全部通过,可选执行一次小规模建造验证:
world_editor command=read path=/active/map/viewport.md
# replace target empty tokens with Ladder:5 using outer dryRun=true and confirm=false/omitted
# after reviewing the preview, make a new edit with outer dryRun=false and confirm=true
read_control domain=world action=text_map x1=... y1=... x2=... y2=...
→ 验证直线建造后地图是否正确显示 bp 标记
规则:
bp / bp_a 标记每轮测试后返回简洁报告,重点评价「地图易于理解性」和「规划难度」:
## ONI MCP 测试报告
### 连接状态
| 项目 | 结果 |
|------|------|
| 服务器加载 | ✅/❌ |
| 工具数量 | N 个 |
| 游戏状态 | 第 X 周期,暂停/运行 |
### 功能测试结果
| 类别 | 状态 | 备注 |
|------|------|------|
| 基础查询 | ✅/❌ | |
| 地图可读性 | ✅/❌ | |
| 地图诊断价值 | ✅/❌ | unsupported/overlap/overlay |
| 规划候选质量 | ✅/❌ | read_control domain=world action=layout_candidates 评分与分类 |
| 建造预检复杂度 | ✅/❌ | 多格/支撑/阻碍检测 |
| 批量与区域 | ✅/❌ | 原子性、areaId 复用 |
| 相机/视图 | ✅/❌ | |
| 实际建造 | ✅/❌/跳过 | |
### 发现的问题
- (如有)
### 总体评价
| 维度 | 评分 | 说明 |
|------|------|------|
| 易用性 | ⭐x/5 | |
| 安全性 | ⭐x/5 | |
| 地图可读性 | ⭐x/5 | 连续区段、图例、overlay 清晰度 |
| 规划难度 | ⭐x/5 | 候选评分、预检诊断、批量原子性 |
| 现象 | 可能原因 | 排查步骤 |
|---|---|---|
server_control domain=diagnostics action=status 返回 loaded=false | 游戏未运行或模组未加载 | 确认游戏已启动,检查模组是否启用 |
工具调用返回 not found | 工具名拼写错误或不在核心列表 | 使用 server_control domain=catalog action=search 查找正确工具名 |
普通 building_control preview 传 raw x/y | 当前公开运行时拒绝 raw coordinates | 将返回拒绝视为预期成功,改测 /active/map/viewport.md token dry-run |
| 普通订单工具拒绝 raw coordinates | 当前公开运行时要求 operation-file 路由 | 读 /active/ops/tools.md,忽略 hidden coordinate 入口,使用 /active/ops/orders.md |
colony_control domain=snapshot action=get 告警未更新 | 建筑只是蓝图,未完工 | 蓝图不等于完工建筑;等复制人建造后重新读取 |
| 中文查询无结果 | 查询词不在本地化数据中 | 尝试英文关键词或 category 过滤 |
orders_control domain=area action=dig 风险提示不全 | 只检测明显风险,不保证全面 | 结合 read_control domain=world action=text_map 人工确认液体/高温/真空相邻 |
read_control domain=world action=layout_candidates 评分偏低 | 区域含大量危险格或需大量挖掘 | 检查 hazardCells 和 requiredDig,更换 purpose 或扩大区域 |
如果时间有限,只测核心链路:
server_control domain=diagnostics action=status
game_control domain=speed action=time
colony_control domain=snapshot action=get profile=brief
read_control domain=world action=text_map x1=... y1=... x2=... y2=... format=markdown
read_control domain=world action=layout_candidates purpose=barracks limit=3
building_control domain=planning action=preview prefabId=Outhouse x=... y=... dryRun=true # 应拒绝 raw coordinates
world_editor command=read path=/active/ops/tools.md
# only current public typed files/tools; ignore hidden coordinate_control and /active/ops/coordinate.md
world_editor command=read path=/active/map/viewport.md
8 个调用即可验证连接、查询、地图可读性、规划候选、raw-coordinate 拒绝和 map-edit 路由。