crosspad-mcp-server 6.0.0 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +109 -44
  2. package/dist/config.d.ts +2 -2
  3. package/dist/config.js +42 -8
  4. package/dist/config.js.map +1 -1
  5. package/dist/index.d.ts +14 -1
  6. package/dist/index.js +956 -312
  7. package/dist/index.js.map +1 -1
  8. package/dist/tools/app-manager.d.ts +13 -5
  9. package/dist/tools/app-manager.js +69 -46
  10. package/dist/tools/app-manager.js.map +1 -1
  11. package/dist/tools/architecture.js +13 -4
  12. package/dist/tools/architecture.js.map +1 -1
  13. package/dist/tools/build-check.d.ts +1 -1
  14. package/dist/tools/build-check.js +19 -9
  15. package/dist/tools/build-check.js.map +1 -1
  16. package/dist/tools/build.d.ts +95 -4
  17. package/dist/tools/build.js +312 -15
  18. package/dist/tools/build.js.map +1 -1
  19. package/dist/tools/diff-core.d.ts +5 -1
  20. package/dist/tools/diff-core.js +11 -6
  21. package/dist/tools/diff-core.js.map +1 -1
  22. package/dist/tools/idf-build.d.ts +1 -1
  23. package/dist/tools/idf-build.js +5 -5
  24. package/dist/tools/idf-build.js.map +1 -1
  25. package/dist/tools/idf-flash.d.ts +2 -2
  26. package/dist/tools/idf-flash.js +12 -11
  27. package/dist/tools/idf-flash.js.map +1 -1
  28. package/dist/tools/idf-monitor.d.ts +1 -1
  29. package/dist/tools/idf-monitor.js +57 -3
  30. package/dist/tools/idf-monitor.js.map +1 -1
  31. package/dist/tools/log.d.ts +2 -2
  32. package/dist/tools/log.js +6 -5
  33. package/dist/tools/log.js.map +1 -1
  34. package/dist/tools/repo-actions.js +88 -75
  35. package/dist/tools/repo-actions.js.map +1 -1
  36. package/dist/tools/repos.js +14 -10
  37. package/dist/tools/repos.js.map +1 -1
  38. package/dist/tools/screenshot.js +42 -7
  39. package/dist/tools/screenshot.js.map +1 -1
  40. package/dist/tools/settings.js +11 -1
  41. package/dist/tools/settings.js.map +1 -1
  42. package/dist/tools/symbols.js +13 -8
  43. package/dist/tools/symbols.js.map +1 -1
  44. package/dist/tools/test.d.ts +1 -9
  45. package/dist/tools/test.js +11 -92
  46. package/dist/tools/test.js.map +1 -1
  47. package/dist/utils/exec.d.ts +17 -5
  48. package/dist/utils/exec.js +73 -27
  49. package/dist/utils/exec.js.map +1 -1
  50. package/dist/utils/git.d.ts +9 -0
  51. package/dist/utils/git.js +61 -1
  52. package/dist/utils/git.js.map +1 -1
  53. package/dist/utils/remote-client.js +32 -14
  54. package/dist/utils/remote-client.js.map +1 -1
  55. package/package.json +4 -1
  56. package/dist/tools/scaffold.d.ts +0 -15
  57. package/dist/tools/scaffold.js +0 -192
  58. package/dist/tools/scaffold.js.map +0 -1
package/README.md CHANGED
@@ -57,62 +57,110 @@ Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) o
57
57
  }
58
58
  ```
59
59
 
60
- ## Tools (6)
60
+ ## Tools (28) + resources
61
61
 
62
- ### `crosspad_build` Build, run, or check the PC simulator or ESP-IDF firmware
62
+ > v8 unifies platform-axis tools: build/run/kill/check/flash now take `platform` (or `transport`) as an arg instead of being split per-platform. Migration table at the bottom of this file.
63
63
 
64
- | Action | What it does |
65
- |--------|-------------|
66
- | `pc` | Build PC simulator (incremental/clean/reconfigure) |
67
- | `pc_run` | Launch simulator, return PID |
68
- | `pc_check` | Health check: stale exe, new sources, submodule drift |
69
- | `pc_log` | Run exe, capture stdout for N seconds, kill |
70
- | `idf` | Build ESP-IDF firmware (build/fullclean/clean) |
64
+ Each tool is focused on a single action. Strict schema validation (ranges on MIDI/pad values, enums on platforms/repos) catches bad inputs before execution.
71
65
 
72
- ### `crosspad_test` Catch2 tests for crosspad-pc
66
+ ### Build & flash
73
67
 
74
- | Action | What it does |
75
- |--------|-------------|
76
- | `run` | Build + run tests, with optional name filter |
77
- | `scaffold` | Generate test CMakeLists.txt + sample test file |
68
+ | Tool | Purpose |
69
+ |------|---------|
70
+ | `crosspad_build` | Build for `platform: pc\|idf` (`mode`: incremental/clean/reconfigure for PC, incremental/clean/fullclean for IDF; `build_type` for PC) |
71
+ | `crosspad_run` | Launch built simulator (`platform: pc`), return PID + post-spawn TCP readiness probe |
72
+ | `crosspad_kill` | Stop running simulator (`platform: pc`, SIGTERM by exe name match) |
73
+ | `crosspad_check` | Health check (`platform: pc`): stale exe, new sources, submodule drift |
74
+ | `crosspad_flash` | Flash firmware to device (`transport: uart\|ota`, `port?`, `firmware_path?` ota-only) |
75
+ | `crosspad_log` | Capture logs (`target`: pc=spawn binary / idf=read serial) |
76
+ | `crosspad_devices` | List USB serial devices, flag CrossPads |
78
77
 
79
- ### `crosspad_sim` — Interact with the running simulator
78
+ ### Tests
80
79
 
81
- | Action | What it does |
82
- |--------|-------------|
83
- | `screenshot` | Capture PNG (full window or LCD only) |
84
- | `input` | Press pads, rotate encoder, click, send keys |
85
- | `stats` | Pad state, capabilities, heap, registered apps |
86
- | `settings_get` | Read settings by category |
87
- | `settings_set` | Write individual setting key |
80
+ | Tool | Purpose |
81
+ |------|---------|
82
+ | `crosspad_test_run` | Build + run Catch2 suite (`filter`, `list_only`) |
88
83
 
89
- ### `crosspad_repo` — Git status and submodule diffs
84
+ ### Simulator interaction
90
85
 
91
- | Action | What it does |
92
- |--------|-------------|
93
- | `status` | Git status across all detected CrossPad repos |
94
- | `diff` | Submodule drift: commits ahead/behind, changed files |
86
+ | Tool | Purpose |
87
+ |------|---------|
88
+ | `crosspad_screenshot` | PNG screenshot (file_path by default; `return_inline` for base64) |
89
+ | `crosspad_input` | All input events: pad_press/release, encoder_*, click, key (`action` field) |
90
+ | `crosspad_midi` | All MIDI events: note_on/off, cc, program_change (`type` field) |
91
+ | `crosspad_stats` | Runtime state: pads, capabilities, heap, apps |
92
+ | `crosspad_settings_get` / `crosspad_settings_set` | Read/write settings |
95
93
 
96
- ### `crosspad_code` Search and analyze code across repos
94
+ ### Git / repos
97
95
 
98
- | Action | What it does |
99
- |--------|-------------|
100
- | `search` | Find classes, functions, macros, enums via git grep |
101
- | `interfaces` | List crosspad-core interfaces and their implementations |
102
- | `apps` | List REGISTER_APP registrations per platform |
103
- | `scaffold` | Generate new app boilerplate (cpp, hpp, CMakeLists.txt) |
96
+ | Tool | Purpose |
97
+ |------|---------|
98
+ | `crosspad_repo_status` | Status across all detected repos |
99
+ | `crosspad_repo_diff` | Submodule drift in crosspad-pc / platform-idf |
100
+ | `crosspad_submodule_update` | Update submodule to `origin/<branch>` and stage |
101
+ | `crosspad_commit` | Commit staged changes (refuses on conflicts; never pushes) |
104
102
 
105
- ### `crosspad_apps` App package manager (multi-platform)
103
+ ### Code search & scaffolding
106
104
 
107
- | Action | What it does |
108
- |--------|-------------|
109
- | `list` | Available apps from registry + where installed (idf/pc/arduino) |
110
- | `install` | Install app as git submodule (requires `platform` param) |
111
- | `remove` | Remove app submodule (requires `platform` param) |
112
- | `update` | Update one or all installed apps (requires `platform` param) |
113
- | `sync` | Sync manifest with existing submodules (requires `platform` param) |
105
+ | Tool | Purpose |
106
+ |------|---------|
107
+ | `crosspad_search_symbols` | Find class/function/macro/enum/typedef definitions |
108
+ | `crosspad_list_interfaces` | List crosspad-core interfaces |
109
+ | `crosspad_interface_implementations` | Find implementations of a given interface |
110
+ | `crosspad_capabilities` | Capability flags + per-platform sets |
111
+ | `crosspad_list_apps_source` | Apps registered via `REGISTER_APP()` macro |
114
112
 
115
- `list` aggregates `apps.json` from all detected repos. Mutations (`install`, `remove`, `update`, `sync`) target a specific platform via the `platform` parameter (`idf`, `pc`, or `arduino`).
113
+ ### App package manager (crosspad-apps registry)
114
+
115
+ | Tool | Purpose |
116
+ |------|---------|
117
+ | `crosspad_apps_list` | Apps from registry + where installed (no Python needed) |
118
+ | `crosspad_apps_install` | Install app as submodule (`platform`, `app_name`, `ref`, `force`) |
119
+ | `crosspad_apps_remove` | Remove installed app submodule |
120
+ | `crosspad_apps_update` | Update one (`app_name`) or all (`update_all`) apps |
121
+ | `crosspad_apps_sync` | Rebuild manifest from disk state |
122
+
123
+ ### Resources
124
+
125
+ | URI | Purpose |
126
+ |-----|---------|
127
+ | `crosspad://workspace` | JSON snapshot: detected repos, branches, HEADs, dirty counts, PC simulator running status. Loadable without a tool call — clients (e.g. Claude Code) can pin it as session context. |
128
+ | `crosspad://apps/registry/<platform>` | Raw `app-registry.json` per detected platform (pc / idf / esp32-s3). |
129
+ | `crosspad://apps/installed/<platform>` | Raw `apps.json` (installed manifest) per detected platform. |
130
+ | `crosspad://symbols/{repo}/{symbol}` | Resource template — resolves a single symbol's definitions in `<repo>` (or `all`). MCP-native alternative to `crosspad_search_symbols` for known symbol+repo pairs. |
131
+
132
+ ### Migration: v7 → v8
133
+
134
+ Platform/transport now flows as an arg, not as part of the tool name. Net: 30 → 28 tools.
135
+
136
+ | Old (v7) | New (v8) |
137
+ |---|---|
138
+ | `crosspad_build_pc` | `crosspad_build` with `platform: pc` |
139
+ | `crosspad_build_idf` | `crosspad_build` with `platform: idf` |
140
+ | `crosspad_run_pc` | `crosspad_run` with `platform: pc` |
141
+ | `crosspad_kill_pc` | `crosspad_kill` with `platform: pc` |
142
+ | `crosspad_check_pc` | `crosspad_check` with `platform: pc` |
143
+ | `crosspad_flash_uart` | `crosspad_flash` with `transport: uart` |
144
+ | `crosspad_flash_ota` | `crosspad_flash` with `transport: ota` |
145
+
146
+ Run/kill/check are PC-only today (the `platform` arg is reserved for future symmetry — IDF firmware doesn't run on the host). Build modes are validated per-platform: `reconfigure` is PC-only; `fullclean` is IDF-only.
147
+
148
+ ### Migration: v6 → v7
149
+
150
+ Tools removed (logic moved to docs): `crosspad_scaffold_app`, `crosspad_test_scaffold`.
151
+ Tools consolidated:
152
+
153
+ | Old (v6) | New (v7) |
154
+ |---|---|
155
+ | `crosspad_pad_press`, `crosspad_pad_release`, `crosspad_encoder_rotate`, `crosspad_encoder_press`, `crosspad_encoder_release`, `crosspad_click`, `crosspad_key` | `crosspad_input` with `action` field |
156
+ | `crosspad_midi_note_on`, `crosspad_midi_note_off`, `crosspad_midi_cc`, `crosspad_midi_program_change` | `crosspad_midi` with `type` field |
157
+ | `crosspad_log_pc`, `crosspad_log_idf` | `crosspad_log` with `target` field |
158
+
159
+ Net: 42 tools → 30 tools + 1 resource (v7). Subsequent unification in v8 → 28 tools (see above).
160
+
161
+ All tools return a uniform envelope: `{ "success": boolean, ...data, "error"?: string }`. On failure the result also has the MCP-protocol `isError: true` flag set so clients can route errors distinctly from successful calls.
162
+
163
+ Each tool carries [MCP annotations](https://modelcontextprotocol.io/specification) (`readOnlyHint`, `destructiveHint`, `openWorldHint`) — clients use these for confirmation prompts. Read-only tools (status, search, list) skip the prompt; destructive tools (commit, flash, build_idf clean, apps_install) trigger one.
116
164
 
117
165
  ## Configuration
118
166
 
@@ -129,9 +177,26 @@ Each repo path is individually configurable via env vars. If not set, falls back
129
177
  | `IDF_PATH` | auto-detected (`~/esp/esp-idf`) | ESP-IDF SDK path |
130
178
  | `VCPKG_ROOT` | `~/vcpkg` (Linux) / `C:/vcpkg` (Win) | vcpkg installation |
131
179
  | `VCVARSALL` | VS2022 default | MSVC vcvarsall.bat (Windows only) |
180
+ | `CROSSPAD_REMOTE_PORT` | `19840` | TCP port for simulator remote control |
181
+ | `CROSSPAD_REMOTE_HOST` | `127.0.0.1` | TCP host for simulator remote control |
132
182
 
133
183
  Repos are discovered dynamically — only repos that exist on disk appear in tool results. No flat directory structure is assumed when env vars are set.
134
184
 
185
+ ## Transport
186
+
187
+ **stdio (default)** — `npx crosspad-mcp-server`. Standard MCP transport for Claude Code / Claude Desktop / IDE plugins.
188
+
189
+ **HTTP (`--http <port>`)** — `npx crosspad-mcp-server --http 3000`. Exposes a Streamable HTTP endpoint at `http://localhost:<port>/mcp` for remote dev boxes or browser-based MCP clients. Stateful sessions (`Mcp-Session-Id` header echoed after `initialize`). One transport, multi-session multiplexed internally.
190
+
191
+ ```bash
192
+ # Minimal HTTP smoke test:
193
+ npx crosspad-mcp-server --http 3000
194
+ curl -X POST http://localhost:3000/mcp \
195
+ -H "Content-Type: application/json" \
196
+ -H "Accept: application/json, text/event-stream" \
197
+ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"x","version":"0"}}}'
198
+ ```
199
+
135
200
  ## How it works
136
201
 
137
202
  **Static tools** (build, repos, code, apps) work without the simulator — they operate on the filesystem, git, and Python package manager.
@@ -156,7 +221,7 @@ npm run test:watch # tests in watch mode
156
221
 
157
222
  ```
158
223
  src/
159
- index.ts — 6 tool registrations with action dispatch
224
+ index.ts — 41 focused tool registrations (one tool per action)
160
225
  config.ts — per-repo env vars, dynamic discovery, IDF/MSVC paths
161
226
  config.test.ts — config unit tests (fs mocking)
162
227
  utils/
package/dist/config.d.ts CHANGED
@@ -13,8 +13,8 @@ export declare const REPOS: Record<string, string>;
13
13
  /**
14
14
  * Resolve the crosspad-core path. Checks:
15
15
  * 1. Standalone repo ($CROSSPAD_CORE_ROOT or $GIT_DIR/crosspad-core)
16
- * 2. Submodule inside platform-idf: $IDF_ROOT/components/crosspad-core
17
- * 3. Submodule inside crosspad-pc: $PC_ROOT/crosspad-core
16
+ * 2. Submodule inside any parent repo (path resolved from .gitmodules)
17
+ * 3. Common conventional fallback paths.
18
18
  * Returns null if not found anywhere.
19
19
  */
20
20
  export declare function resolveCrosspadCore(): string | null;
package/dist/config.js CHANGED
@@ -47,7 +47,7 @@ export const VCPKG_TOOLCHAIN = path.join(vcpkgRoot, "scripts", "buildsystems", "
47
47
  // ═══════════════════════════════════════════════════════════════════════
48
48
  export const BUILD_DIR = path.join(CROSSPAD_PC_ROOT, "build");
49
49
  const EXE_EXT = IS_WINDOWS ? ".exe" : "";
50
- export const BIN_EXE = path.join(CROSSPAD_PC_ROOT, "bin", `main${EXE_EXT}`);
50
+ export const BIN_EXE = path.join(CROSSPAD_PC_ROOT, "bin", `CrossPad${EXE_EXT}`);
51
51
  // ═══════════════════════════════════════════════════════════════════════
52
52
  // REPOS — dynamic discovery from per-repo paths, cached
53
53
  // ═══════════════════════════════════════════════════════════════════════
@@ -79,21 +79,55 @@ export const REPOS = REPO_CANDIDATES;
79
79
  // CROSSPAD-CORE RESOLUTION — finds crosspad-core wherever it lives
80
80
  // ═══════════════════════════════════════════════════════════════════════
81
81
  let cachedCrosspadCorePath = undefined;
82
+ function readSubmodulePathsFromGitmodules(parentRoot) {
83
+ const gitmodules = path.join(parentRoot, ".gitmodules");
84
+ if (!fs.existsSync(gitmodules))
85
+ return {};
86
+ const out = {};
87
+ try {
88
+ const content = fs.readFileSync(gitmodules, "utf-8");
89
+ const blocks = content.split(/\[submodule\s+"([^"]+)"\]/);
90
+ for (let i = 1; i < blocks.length; i += 2) {
91
+ const name = blocks[i];
92
+ const body = blocks[i + 1] ?? "";
93
+ const pathMatch = body.match(/^\s*path\s*=\s*(.+)$/m);
94
+ if (pathMatch)
95
+ out[name] = pathMatch[1].trim();
96
+ }
97
+ }
98
+ catch {
99
+ // ignore
100
+ }
101
+ return out;
102
+ }
82
103
  /**
83
104
  * Resolve the crosspad-core path. Checks:
84
105
  * 1. Standalone repo ($CROSSPAD_CORE_ROOT or $GIT_DIR/crosspad-core)
85
- * 2. Submodule inside platform-idf: $IDF_ROOT/components/crosspad-core
86
- * 3. Submodule inside crosspad-pc: $PC_ROOT/crosspad-core
106
+ * 2. Submodule inside any parent repo (path resolved from .gitmodules)
107
+ * 3. Common conventional fallback paths.
87
108
  * Returns null if not found anywhere.
88
109
  */
89
110
  export function resolveCrosspadCore() {
90
111
  if (cachedCrosspadCorePath !== undefined)
91
112
  return cachedCrosspadCorePath;
92
- const candidates = [
93
- CROSSPAD_CORE_ROOT,
94
- path.join(CROSSPAD_IDF_ROOT, "components", "crosspad-core"),
95
- path.join(CROSSPAD_PC_ROOT, "crosspad-core"),
96
- ];
113
+ const candidates = [CROSSPAD_CORE_ROOT];
114
+ for (const parentRoot of [CROSSPAD_IDF_ROOT, CROSSPAD_PC_ROOT, CROSSPAD_ARDUINO_ROOT]) {
115
+ const subs = readSubmodulePathsFromGitmodules(parentRoot);
116
+ // Match by exact name first, then by path basename (handles
117
+ // [submodule "components/crosspad-core"] in platform-idf).
118
+ const direct = subs["crosspad-core"];
119
+ if (direct) {
120
+ candidates.push(path.join(parentRoot, direct));
121
+ continue;
122
+ }
123
+ for (const [, p] of Object.entries(subs)) {
124
+ if (path.basename(p) === "crosspad-core") {
125
+ candidates.push(path.join(parentRoot, p));
126
+ }
127
+ }
128
+ }
129
+ // Conventional fallbacks
130
+ candidates.push(path.join(CROSSPAD_IDF_ROOT, "components", "crosspad-core"), path.join(CROSSPAD_PC_ROOT, "lib", "crosspad-core"), path.join(CROSSPAD_PC_ROOT, "crosspad-core"), path.join(CROSSPAD_ARDUINO_ROOT, "lib", "crosspad-core"));
97
131
  for (const p of candidates) {
98
132
  if (fs.existsSync(path.join(p, "include", "crosspad"))) {
99
133
  cachedCrosspadCorePath = p;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,15 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { z } from "zod";
4
+ export declare const server: McpServer;
5
+ export declare const O_Build: {
6
+ error: z.ZodOptional<z.ZodString>;
7
+ success: z.ZodBoolean;
8
+ duration_seconds: z.ZodOptional<z.ZodNumber>;
9
+ errors: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
+ warnings_count: z.ZodOptional<z.ZodNumber>;
11
+ output_path: z.ZodOptional<z.ZodString>;
12
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
+ tail: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
+ auto_reconfigured: z.ZodOptional<z.ZodBoolean>;
15
+ };