crosspad-mcp-server
Server 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 | {} |
| 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_runA | [PC] Launch the built simulator binary in the background. Returns pid + exe_path. Refuses to spawn a duplicate if one is already responding on the TCP control port (use force=true to override). Fails if binary not built — call crosspad_build first. Currently PC-only (IDF firmware doesn't run on the host). |
| crosspad_killA | [PC sim] Stop the running PC simulator. Identifies the process by /proc//exe match against the built binary (Linux) or pgrep -x basename (macOS/Windows), sends SIGTERM, waits up to 3s, then SIGKILL stragglers. Returns killed PIDs and whether anything still answers on the TCP control port. Currently PC-only. |
| crosspad_checkA | [PC] Health check for a build — detects stale exe, new sources missing from build system, dirty submodules. Use before crosspad_build to decide if rebuild needed. Currently PC-only. |
| crosspad_flashA | [ESP HW | STM HW] Flash firmware to a connected CrossPad device. target='esp' (default) → ESP32-S3 firmware (requires prior crosspad_build platform=idf): • transport='uart' uses idf.py flash (device must be in bootloader mode). • transport='ota' uses platform-idf/tools/ota_flash.py over USB CDC (no bootloader mode required). Works on both CrossPad generations: rev <2.0 (ESP native USB) and rev 2.0 (port is the STM32 CDC bridge — STM emulates the esptool DTR/RTS auto-reset and forwards the flash to the ESP over LPUART2; rev-2.0 STM must be in passthrough mode, i.e. NOT booted with pad-4 held). target='stm' → STM32G0 firmware via STM32_Programmer_CLI (requires prior crosspad_build platform=stm): • method='swd' flashes over ST-Link (SWD). • method='dfu' flashes the USB DFU bootloader (board in ST system memory — hold pad 1 at boot or trigger boot_request_dfu). Flasher resolved from config (stm_programmer_cli) → $STM32_PROG → PATH. |
| crosspad_logA | [PC | ESP HW] Capture logs (consolidated; replaces crosspad_log_pc and crosspad_log_idf in v6).
• target='pc' → spawn the built sim binary, capture stdout/stderr, then kill it. Fields used: timeout_seconds (default 5), max_lines (default 200). |
| crosspad_devicesA | [ESP HW] List all connected USB serial devices. Identifies CrossPad devices separately and tags each with |
| crosspad_traceA | [STM HW] Real-time SWD tracer for the STM32G0B1 firmware (ST-Link). Non-halting RAM polling of firmware variables resolved from the Debug ELF (like ST-Studio/CubeMonitor). Pick an |
| crosspad_test_runA | [PC] Build and run the Catch2 test suite for crosspad-pc. PREFER THIS over invoking the test binary directly — configures cmake with BUILD_TESTING=ON, parses Catch2 output into passed/failed counts and errors, supports filter and list_only. |
| crosspad_screenshotA | [PC sim] Capture a PNG screenshot from the running PC simulator. Default behavior (return_inline=false): saves to /screenshots/ and returns metadata + file_path (cheap, no token cost). Set return_inline=true ONLY when the LLM needs to actually see the image — that returns base64 inline and burns ~50-150k tokens. |
| crosspad_inputA | [PC sim] Send one input event to the running PC simulator (consolidated; replaces 7 v5 tools). Pick an |
| crosspad_midiA | [PC sim] Send one MIDI event to the running PC simulator (consolidated; replaces 4 v5 tools). Pick a |
| crosspad_statsA | [PC sim] Read runtime statistics from the running PC simulator: pad state, capabilities, heap, registered apps, active pad logic. |
| crosspad_settings_getA | [PC sim] Read settings from the running simulator. |
| crosspad_settings_setA | [PC sim] Write a single setting on the running simulator. |
| 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_repo_diffA | Show submodule drift in a parent repo (crosspad-pc or platform-idf): commits ahead/behind pinned, changed files, uncommitted work. Use to inspect dev-mode work before pinning. |
| crosspad_submodule_updateA | Update a submodule in a parent repo to the latest commit on a tracking branch (git fetch + checkout origin/ + stage). Destructive: discards local commits in the submodule that aren't on the remote branch. |
| crosspad_commitA | Commit staged changes in a specific CrossPad repo. PREFER THIS over raw |
| crosspad_search_symbolsA | Search for symbol DEFINITIONS (classes, functions, macros, enums, typedefs) across CrossPad repos via git grep. PREFER THIS over raw |
| crosspad_list_interfacesA | List all crosspad-core interfaces (I*-prefixed classes in crosspad-core/include/crosspad/). |
| crosspad_interface_implementationsA | Find all classes implementing a given interface across CrossPad repos. Returns className, file path, platform. Use crosspad_list_interfaces first if you don't know exact names. |
| crosspad_capabilitiesA | List platform capability flags (Capability enum) and which capabilities each platform sets. |
| crosspad_list_apps_sourceA | List apps registered via REGISTER_APP() macro by scanning source files. Different from crosspad_apps_list (which reads the package registry). |
| crosspad_apps_listA | List apps from the crosspad-apps registry, aggregating installation status across all detected platform repos. Reads JSON; no Python required. Different from crosspad_list_apps_source (which scans REGISTER_APP() in source code). |
| crosspad_apps_installB | Install an app from the crosspad-apps registry as a git submodule. Requires gh CLI authenticated. Delegates to /{tools|scripts}/app_manager.py. |
| crosspad_apps_removeA | Remove an installed app submodule from a platform repo. Delegates to app_manager.py. |
| crosspad_apps_updateA | Update one or all installed apps on a platform. EXACTLY ONE of these must be supplied: set |
| crosspad_apps_syncA | Sync a platform's apps.json manifest with existing submodules (rebuild manifest from disk state). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
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. |
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