{
  "markdown": "# crosspad-mcp\n\n[![npm](https://img.shields.io/npm/v/crosspad-mcp-server)](https://www.npmjs.com/package/crosspad-mcp-server)\n[![M8ven Live Monitored](https://m8ven.ai/badge/mcp/crosspad-crosspad-mcp-11gso3)](https://m8ven.ai/mcp/crosspad-crosspad-mcp-11gso3)\n[![CI](https://github.com/CrossPad/crosspad-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/CrossPad/crosspad-mcp/actions/workflows/ci.yml)\n[![node](https://img.shields.io/node/v/crosspad-mcp-server)](package.json)\n[![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](#license)\n\n**Talk to your CrossPad. Let Claude do the toolchain.**\n\ncrosspad-mcp is an [MCP](https://modelcontextprotocol.io) server that teaches\nClaude Code (or any MCP client) how to develop for the\n[CrossPad](https://github.com/CrossPad) pad controller. You say *\"flash the\nnew build and check that it boots\"*; it runs the ESP-IDF build, asks you to\nconfirm the flash, opens the console, runs the smoke scenario and tells you\nwhat happened — with the hardware traps already built in, so you don't have\nto remember which serial port reboots the board when you open it.\n\n<p align=\"center\">\n  <img src=\"docs/img/hero.svg\" alt=\"You prompt Claude Code, Claude Code talks MCP to crosspad-mcp, crosspad-mcp drives the PC simulator over TCP, the CrossPad board over USB and the STM32 co-processor over ST-Link\" width=\"900\">\n</p>\n\n## What you can do with it\n\nEvery card is a real prompt. The tools named underneath are what runs — you\nnever have to call them yourself.\n\n| Say this… | …and this happens |\n|---|---|\n| **\"Build the firmware and flash it over OTA.\"** | `crosspad_build platform=idf` streams the build, `crosspad_flash transport=ota` asks for confirmation, then streams the upload. New app directories are detected and the `fullclean` is done for you. |\n| **\"Show me what's on the simulator screen.\"** | `crosspad_run` launches the PC sim, `crosspad_screenshot` returns the LCD as an image Claude can actually look at. Then *\"press pad 5\"*, *\"turn the encoder left twice\"* — `crosspad_input`. |\n| **\"Play a drum pattern on the pads and record what comes out.\"** | `crosspad_stimulus` hits the pads with real timings, `crosspad_capture` records the board through its own USB-audio endpoint, `crosspad_analyze` gives a verdict (onsets, clicks, silence, velocity curve). |\n| **\"Why did it crash?\"** | `crosspad_diagnose_crash` — reset reason, registers, backtrace decoded against the ELF that is *actually* flashed, heap after restart. One call. |\n| **\"Watch the battery charger state machine while I plug the cable in.\"** | `crosspad_trace` polls STM32 variables live over ST-Link without halting the core, and plots them. |\n| **\"Install the sampler app and rebuild.\"** | `crosspad_apps_install app_name=sampler` adds the submodule from the [crosspad-apps](https://github.com/CrossPad/crosspad-apps) registry, then a clean build. |\n| **\"Where is `IPadLogicHandler` implemented?\"** | `crosspad_interface_implementations` across every repo of the ecosystem, or `crosspad_symbol` for clangd-precise definitions and call hierarchies. |\n| **\"Is my board even connected?\"** | `crosspad_devices` and `crosspad_doctor` — which USB mode it is in, which ports belong to it, what is missing on the host, and how to fix each thing. |\n\n## Quick start\n\n```bash\nclaude mcp add crosspad -- npx -y crosspad-mcp-server\n```\n\nRestart Claude Code, then ask:\n\n> *is my CrossPad connected, and is the toolchain set up?*\n\nThat runs `crosspad_doctor`. Every failed check comes with a `fix`. The server\nassumes your repos live side by side under `~/GIT/` — if they don't,\n[set the paths](docs/USAGE.md#configuration) once.\n\nInstalling the bundled `crosspad` skill gives Claude the ecosystem map, the\nper-role guides and the hardware traps up front:\n\n```\n/plugin marketplace add CrossPad/crosspad-mcp\n/plugin install crosspad@crosspad\n```\n\n## How it is organised\n\nOnly the `core` toolset is visible when the server starts, so the tool list\nstays small. Claude enables the others as the conversation needs them — or you\nstart the server with `--toolsets device,sim`.\n\n```mermaid\nflowchart LR\n    core[\"core · always on<br/>devices · doctor · snapshot<br/>build · flash · repo status · tasks\"]\n    sim[\"sim<br/>PC simulator: run, screenshot,<br/>input, MIDI, settings, tests\"]\n    device[\"device<br/>the board over USB: console,<br/>CDC verbs, UI driving, USB mode\"]\n    hil[\"hil<br/>scenarios, pad stimulus,<br/>audio capture + analysis, BLE\"]\n    code[\"code<br/>symbols, interfaces,<br/>docs search\"]\n    git[\"git<br/>submodule drift,<br/>update, commit\"]\n    apps[\"apps<br/>crosspad-apps registry\"]\n    trace[\"trace<br/>SWD live variables\"]\n    core --> sim & device & code & git & apps\n    device --> hil\n    core --> trace\n```\n\nAnything that writes to a device or your host is tiered. Flashing, DFU and\nSWD writes come back as *confirmation required* first; `--read-only` removes\nevery writing tool from the list entirely. Long operations (builds, flashes,\nscenarios) run as tasks you can check on, wait for or cancel.\n\n## Who is it for\n\n- **You build and drive CrossPad firmware** — mostly the simulator, sometimes\n  the board. Start with the [user guide](skills/crosspad/reference/role-user.md).\n- **You work on the firmware itself** — flash, console, HIL scenarios, crash\n  diagnosis, SWD. Read the [firmware developer guide](skills/crosspad/reference/role-fw-dev.md)\n  and [HIL testing](skills/crosspad/reference/hil-testing.md).\n- **You want to extend this server** — the\n  [contributor guide](skills/crosspad/reference/role-contributor.md) and the\n  [Development section](docs/USAGE.md#development).\n\n## Going deeper\n\n- [**Usage reference**](docs/USAGE.md) — every install path, every tool and\n  toolset, resources and prompts, configuration, HTTP transport, the v10\n  migration table.\n- [FAQ](skills/crosspad/reference/faq.md) — the questions that cost people an\n  afternoon.\n- [CHANGELOG](CHANGELOG.md)\n\n## License\n\nMIT — part of the [CrossPad](https://github.com/CrossPad) project.\n",
  "bytes": 6027,
  "sha": "674898b47606fac78d3a5ca6c90cc2594ada8ac2c665b8315ba41f4651fd9d56",
  "repo_slug": "crosspad/crosspad-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_crosspad_crosspad_mcp_233e505c/readme"
}