Skip to content

MCP tools

crosspad-mcp (crosspad-mcp-server) groups its tools in toolsets. Only core is on at start. A tool marked Available in an upcoming update. is not in the npm release 10.3.0.

touse
Turn a toolset on from a tool callcrosspad_toolsets action=enable toolset=NAME
Start with more toolsets--toolsets device,hil or --toolsets all
Set toolsets from the environmentCROSSPAD_TOOLSETS=device,hil
Hide every tool that changes something--read-only
tagneeds
[PC]The crosspad-pc repo and host toolchain; no running simulator
[PC sim]A running PC simulator (start it with crosspad_run)
[ESP]The platform-idf checkout and ESP-IDF; no board
[ESP HW]A connected ESP32-S3 CrossPad
[STM HW]An ST-Link and the STM32 board
untagged (—)No hardware: code search, repo/git, app registry
[A | B]Either one, depending on a parameter, for example [ESP HW | PC sim]
[A + B]Both at once, for example [PC + ESP]
tooltagwhat it does
crosspad_devices[ESP HW]List connected CrossPads: device id, USB mode, every port role
crosspad_doctor—Environment checks (crosspad-hil, ESP-IDF, repos, build dirs, ports, permissions), each with a fix; can restart the crosspad-hil daemon
crosspad_snapshot[ESP HW | PC sim]One-call state: apps, UI focus, kit, LEDs, pads, memory, BLE, console counters
crosspad_build[PC | ESP | STM HW]Build the PC simulator, the ESP32-S3 firmware (for the resolved board revision) or the STM32 firmware
crosspad_flash[ESP HW | STM HW]Flash ESP (OTA or UART) or STM (SWD or DFU) after a preflight; needs confirmation
crosspad_repo_status—Git status across all CrossPad repos: branch, HEAD, dirty files, submodule sync
crosspad_toolsets—List, enable, disable or describe toolsets
crosspad_task—Poll, wait on, cancel or list long-running tasks (build, flash, HIL run, capture…)
crosspad_confirm—Run an action another tool answered with “confirmation required”, by its one-time token. Available in an upcoming update.
crosspad_bench_claim[ESP HW | STM HW]Reserve a shared board before using it, or join the queue. Available in an upcoming update.
crosspad_bench_release[ESP HW | STM HW]Give the board back, recording the firmware left on it. Available in an upcoming update.
crosspad_bench_status—Who holds the board, the queue and recent reservations. Available in an upcoming update.
tooltagwhat it does
crosspad_cdc[ESP HW]Typed CDC control verbs (app, kit, pad, encoder, LED, memory, audio, BLE, system) or a raw command
crosspad_console[ESP HW]STM bridge console: open, read, expect patterns, reset, snapshot, close
crosspad_ui[ESP HW]Drive the device UI by snapshot refs: focus, press, rotate, back, start or stop an app
crosspad_midi[PC sim | ESP HW]Send MIDI notes or SysEx, measure echo round-trip, query the audio route
crosspad_usb_mode[ESP HW]Read or switch the USB profile (default = MIDI + CDC, audio = MIDI + UAC2)
crosspad_audio_route[ESP HW]Query or set codec inputs, outputs, volume and mute over SysEx
crosspad_diagnose_crash[ESP HW]Diagnostic report after an unexpected reset: reset reason, registers, decoded backtrace, heap, console context
tooltagwhat it does
crosspad_hil_run[ESP HW]List or run HIL scenarios (smoke, app_churn, kit_churn…) as a task
crosspad_hil_triage—Advisory classification of a finished HIL report (sends it to an external API; needs an API key). Available in an upcoming update.
crosspad_capture[ESP HW]Record what the board plays through its own UAC2 endpoint to a WAV
crosspad_analyze—Offline WAV analysis: onset, click, silence, multitone, velocity, psd
crosspad_stimulus[ESP HW]Play the pads at a rate or a timed pattern; reports what the device registered
crosspad_ble[ESP HW]Use this computer’s Bluetooth to scan, connect, send to and listen to the board’s BLE MIDI
tooltagwhat it does
crosspad_run[PC]Launch the built simulator in the background
crosspad_kill[PC sim]Stop the running simulator
crosspad_check[PC]Build health check: stale binary, sources missing from the build, dirty submodules
crosspad_screenshot[PC sim]Capture a PNG of the simulator (saved to disk; inline only on request)
crosspad_input[PC sim]Send one input event: pad, encoder, click or key
crosspad_stats[PC sim]Runtime statistics: pad state, capabilities, heap, registered apps
crosspad_settings_get[PC sim]Read settings from the simulator
crosspad_settings_set[PC sim]Write one setting on the simulator
crosspad_test_run[PC]Build and run the crosspad-pc Catch2 tests (or the GUI harness)
crosspad_log[PC | ESP HW]Capture simulator output or the ESP32-S3 serial log
tooltagwhat it does
crosspad_docs_search—Search the docs, BSP guides and skill pages; returns matching sections
crosspad_architecture—crosspad-core interfaces, their implementations, and platform capabilities in one tool
crosspad_symbol—clangd-backed references, implementations, hover, call hierarchy, definition, outline
crosspad_search_symbols—Find symbol definitions across all repos
crosspad_list_interfaces—List crosspad-core I* interfaces
crosspad_interface_implementations—Find classes implementing an interface
crosspad_capabilities—Capability flags and which platform sets each
crosspad_list_apps_source—Apps registered with REGISTER_APP() in source
tooltagwhat it does
crosspad_repo_diff—Submodule drift in crosspad-pc or platform-idf: ahead/behind, changed files, local work
crosspad_submodule_update—Move a submodule to the tip of a tracking branch and stage it (discards unpushed submodule commits)
crosspad_commit—Commit staged changes in one repo; never pushes

crosspad_apps does the same as the five crosspad_apps_* tools in one call; use either.

tooltagwhat it does
crosspad_apps—App manager in one tool: list, install, remove, update, sync
crosspad_apps_list—List registry apps with install status across platform repos
crosspad_apps_install—Install a registry app as a git submodule
crosspad_apps_remove—Remove an installed app
crosspad_apps_update—Update one app or all installed apps
crosspad_apps_sync—Rebuild a platform’s app manifest from the submodules on disk
tooltagwhat it does
crosspad_trace[STM HW]SWD variable tracer for the STM32 firmware: doctor, symbols, start/stop, read, save to CSV, live dashboard

MCP resources are read-only data a client can load without a tool call. They are always available, whatever toolsets are on.

URIwhat it holds
crosspad://workspaceDetected repos with branch, HEAD and dirty count, and whether the simulator runs
crosspad://idf/statusBoard revision, build dirs and the age of each built binary
crosspad://devicesConnected devices from the crosspad-hil daemon (same as crosspad_devices)
crosspad://device/ID/stateFresh snapshot of one device: apps, UI, kit, LEDs, pads, memory, BLE, console
crosspad://device/ID/console/logLog of the last crosspad_console session for a device (last 1 MiB)
crosspad://traceLive SWD trace session: state, sample count, rate, signals, dashboard URL
crosspad://cdcCDC verb catalog with reply grammar and the USB profile each verb works in
crosspad://sysexSysEx catalog: manufacturer id, USB-mode ids, audio-route verbs, refused frames
crosspad://hil/catalogHIL scenarios the daemon can run, with parameters and defaults
crosspad://eventsEventType and EventSource enums from crosspad-core
crosspad://settings/schemaCrosspadSettings fields by group
crosspad://featuresFeature-flag catalog and the values this checkout changes
crosspad://apps/registered/idfApps the firmware will register, including installed components
crosspad://apps/registry/PLATFORMRaw app-registry.json of a platform repo (idf, pc, esp32-s3)
crosspad://apps/installed/PLATFORMRaw apps.json (installed manifest) of a platform repo
crosspad://symbols/REPO/SYMBOLDefinitions of one symbol in one repo (all searches every repo)
skill://indexThe bundled skill pages, each served as skill://ID

The apps/registry and apps/installed resources exist only for repos that have that file.