What to build
Add four read-only host-introspection tools to the hal0-admin MCP server. These centralise probing logic currently scattered (or absent) and unblock several downstream consumers: Hermes bootstrap env_probe phase, the dashboard's host panel, and future support-bundle exporters.
The tools mirror recipes already documented in docs/internal/hermes-env-probe-recipes-2026-05-23.md. They're explicitly LXC-aware: don't read /lib/firmware/amdnpu/ or modinfo amdxdna (both fail inside our LXC); use lsmod, /dev/accel/accel0, and PCI sysfs instead.
Tools:
gpu_target_version() → returns KFD gfx_target_version (e.g., "gfx1151" for Strix Halo).
npu_status() → {present, device_node, driver_loaded, pci_id}.
env_report() → consolidated host snapshot (container type, CPU, RAM, GPU, NPU, network basics).
model_store_probe(path) → {fstype, free_mb, total_mb, writable, is_uma_aware}.
All four classify as "autonomous read" per ADR-0004's MCP gating model.
Acceptance criteria
Blocked by
None — can start immediately.
References
docs/internal/hermes-env-probe-recipes-2026-05-23.md
docs/internal/hermes-bootstrap-plan-2026-05-23.md §6 (consumer context)
- ADR-0004 (admin MCP gating model)
What to build
Add four read-only host-introspection tools to the
hal0-adminMCP server. These centralise probing logic currently scattered (or absent) and unblock several downstream consumers: Hermes bootstrapenv_probephase, the dashboard's host panel, and future support-bundle exporters.The tools mirror recipes already documented in
docs/internal/hermes-env-probe-recipes-2026-05-23.md. They're explicitly LXC-aware: don't read/lib/firmware/amdnpu/ormodinfo amdxdna(both fail inside our LXC); uselsmod,/dev/accel/accel0, and PCI sysfs instead.Tools:
gpu_target_version()→ returns KFDgfx_target_version(e.g.,"gfx1151"for Strix Halo).npu_status()→{present, device_node, driver_loaded, pci_id}.env_report()→ consolidated host snapshot (container type, CPU, RAM, GPU, NPU, network basics).model_store_probe(path)→{fstype, free_mb, total_mb, writable, is_uma_aware}.All four classify as "autonomous read" per ADR-0004's MCP gating model.
Acceptance criteria
src/hal0/mcp/admin.pyand registered in the FastMCP server build.tests/mcp/test_admin.pyverifying schema + happy path.env_report()returns a dataclass with all fields documented in the env-probe recipes doc.gpu_target_version()returns"gfx1151"on the hal0 LXC (Strix Halo).tools/listMCP response.Blocked by
None — can start immediately.
References
docs/internal/hermes-env-probe-recipes-2026-05-23.mddocs/internal/hermes-bootstrap-plan-2026-05-23.md§6 (consumer context)