MCP server & tools
Hard Fault ships a compiled local MCP server inside every native BYO release bundle. A project initialized with BYO configures both Codex and Claude to start that server as a subprocess through the stable launcher.
Configure and launch it
Section titled “Configure and launch it”cd /path/to/your/firmware-projectbyo initbyo codex firmware# Or:byo claude firmwarebyo init writes the managed project configuration and runs a health check.
The selected client starts the private compiled sidecar through byo mcp serve;
project configuration never points at Python or directly at the versioned
sidecar executable. You normally should not start byo mcp serve by hand.
Restart any Codex or Claude session that was already open when you initialized the project so it reloads the MCP configuration. See Getting started for the native installation commands and Uninstall BYO for removal scopes.
With a board id set, the server resolves that board’s facts — target, recover
policy, silicon id, baud — from boards/<board>.yaml, so connect needs no raw
target and get_board_info reports the loaded facts.
Tool surface
Section titled “Tool surface”The current tools, all live-validated on the scoped boards:
- Session —
connect,disconnect,get_board_info,get_state - Execution control —
halt,resume,step,reset - Registers & memory —
read_core_register,write_core_register,read_memory,read_memory_block,write_memory - Breakpoints —
set_breakpoint,remove_breakpoint - Firmware & serial —
flash_firmware,read_serial - Recovery —
unlock_recover
connect(...) creates a visible session_id, and each run writes
runs/<session_id>/logs/events.jsonl plus
runs/<session_id>/run-metadata/session.json for inspection.
Guardrails
Section titled “Guardrails”Mutating tools are gated. See Guardrails for how flash and recover gates and the mutation watchers behave.