crosspad-mcp-server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| crosspad_buildA | [PC | ESP | STM HW] Build CrossPad for the given platform.
• platform='pc' → CMake + Ninja host simulator. PREFER THIS over |
| crosspad_repo_statusA | Git status across ALL detected CrossPad repos in one call: branch, HEAD, dirty files, submodule sync state. PREFER THIS over running |
| crosspad_devicesA | [ESP HW] List connected CrossPads as seen by the crosspad-hil daemon: id (dev_xxxx, stable per USB serial), usb_mode (default|audio|bootloader|unknown), and every port role (cdc, console=STM VCP, esp_midi, stm_midi, uac2, bootloader). |
| crosspad_doctorA | Environment doctor. Host checks: hil_python interpreter, crosspad-hil version vs the one this server needs, platform-idf root, ESP-IDF env, crosspad-pc root, per-rev build dirs and firmware age, simulator binary staleness. Daemon checks merged in: udev/dialout, port locks (holder PID + purpose), rtmidi/ALSA/sounddevice visibility. Also reports the daemon as a process: uptime, ops served, open handles and the OS resources it holds (ALSA sequencer clients, fds). Each check is {name, ok, detail, fix}; |
| crosspad_snapshotA | [ESP HW | PC sim] One-call state snapshot (~300 tokens): apps {running, available}, ui {focus {ref,label}, group [{ref,label}], drawer, theme, app}, kit, leds, pads, mem, ble, console counters. Refs |
| crosspad_flashA | [ESP HW | STM HW] Flash firmware. Danger tier: it always runs a preflight first, always returns that preflight (refusal included), and needs a confirmation before writing anything. Preflight reports: the device's USB mode, which role the target port plays (the STM32 bridge console is refused as a flash target), the binary's own version string, whether it is older than the newest file under main/ or components/, and whether the build's board revision matches the device's — a mismatch is a blocker, because the revisions differ in pinout and the wrong image looks like dead hardware. target='esp': transport='ota' streams over USB CDC with the device running (no bootloader mode); transport='uart' runs idf.py flash and needs download mode. wait_boot=true then opens the console and returns a BootResult. target='stm': method='swd' (ST-Link) or 'dfu' (system bootloader, hold pad 1 at boot). The flash runs as a job: wait_seconds=0 (default) returns a task handle for crosspad_task; wait_seconds>0 inlines the final status. dry_run=true stops after the preflight. force=true overrides every blocker except the port-role refusal. |
| crosspad_toolsetsA | Manage which crosspad_* toolsets are visible. Only |
| crosspad_taskA | Poll, wait on, cancel or list long-running crosspad tasks (build, flash, hil_run, capture, stimulus, submodule_update). Task handles are task_; results are kept 1 h after completion. Use this when your client does not support the MCP tasks capability. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| flash-and-smoke | Build (optional), flash over OTA and confirm the board came back with a complete boot. |
| jam | Start the Sampler, load a kit, play a pattern, record it back and confirm the hits are audible. |
| diagnose | Turn a panic on the console into decoded source lines, memory state and a likely cause. |
| audio-capture | Switch to the USB-audio profile, route the loop, record and restore the default profile. |
| kit-churn-live | Run the kit-swap soak that plays during every swap, and read its report honestly. |
| pr-ready | Test, review the working tree and submodule pins, then commit. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| crosspad-workspace | Detected CrossPad repos with branch, HEAD, dirty count, plus PC simulator running status. Cheap snapshot — load once per session for context. |
| crosspad-trace | Live SWD trace session status: active flag, device_state, sample_count, achieved Fs, traced signals, and the web UI URL. Returns {active:false} when idle. |
| crosspad-devices | Device inventory from the crosspad-hil daemon (same payload as crosspad_devices, raw Device dicts). ttl 0 — re-discovered on every read. |
| crosspad-cdc-catalog | CDC verb catalog with reply grammar (crosspad_hil/knowledge/cdc.yaml, generated from hil_control.cpp): every verb, its args, its reply prefix, whether the reply is single-line/OK/multi, and which USB profile it works in. Read this before sending a raw command with crosspad_cdc verb=raw — a reply prefix is not an acknowledgement of your command. Cached 1 h. |
| crosspad-sysex-catalog | 0x7D SysEx catalog (crosspad_hil/knowledge/sysex.yaml): manufacturer id, USB-mode ids, the 0x1D audio-route sub-verbs, bootloader ids, and the host denylist (frames this server refuses to send). Cached 1 h. |
| crosspad-hil-catalog | Scenarios the crosspad-hil daemon can run, with their parameters, defaults and help text — the machine-readable form of tools/hil_*.py. Cached 1 h. |
| crosspad-events | EventType and EventSource enums from crosspad-core |
| crosspad-settings-schema | CrosspadSettings fields by group |
| crosspad-features | Feature-flag catalog and the values this checkout deviates on |
| crosspad-apps-registered | Apps the firmware will register (REGISTER_APP and _PL, including installed components) |
| crosspad-idf-status | Board revision, build dirs and how old the built binary is |
| crosspad-skill-index | The bundled skill documents available as skill:// resources |
| crosspad-skill-crosspad | CrossPad — start here |
| crosspad-skill-crosspad-faq | FAQ — common errors & pitfalls |
| crosspad-skill-crosspad-hil-testing | HIL testing — hardware-in-the-loop on the real CrossPad |
| crosspad-skill-crosspad-install | Install & configure crosspad-mcp |
| crosspad-skill-crosspad-memory | Where does a new fact belong? |
| crosspad-skill-crosspad-philosophy | CrossPad philosophy — why the ecosystem is shaped this way |
| crosspad-skill-crosspad-repos | CrossPad repos — what lives where |
| crosspad-skill-crosspad-role-contributor | Role: crosspad-mcp server contributor |
| crosspad-skill-crosspad-role-fw-dev | Role: firmware developer |
| crosspad-skill-crosspad-role-user | Role: MCP / firmware user |
| crosspad-skill-crosspad-tools | Tool cheat-sheet — grouped by task |
| crosspad-skill-swd-tracer | CrossPad SWD real-time tracer |
| crosspad-skill-swd-tracer-signals | CrossPad r20 firmware — handy trace signals |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CrossPad/crosspad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server