Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/crosspad-mcp/issues.md or /mcp/crosspad-mcp/issues.json, or Pod over MCP.

Reported issues for crosspad-mcp

Pod holds 16 of 20 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to crosspad-mcp.

Most discussed

test: add E2E tests with mock simulator and git repos

Summary

Unit tests cover parsing logic, but no E2E tests for full tool dispatch. Need mock TCP server + fake git repos for roundtrip testing.

Scope

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 3 comments

crosspad_input click takes window coordinates while crosspad_screenshot returns LCD space

crosspad_screenshot returns LCD-space images, crosspad_input action=click takes window-space coordinates, and nothing in either tool says so. There is no way to convert between the two without reverse-engineering the window geometry, so any click derived from a screenshot is a guess.

What happens

  1. crosspad_screenshot region=lcd returns a 320x240 image — the coordinate space the UI code, ENC_GROUP labels and LVGL itself use.
  2. crosspad_input action=click x=<lcd_x> y=<lcd_y> clic

Read the thread · 2026-08-29 · closed · 1 comment

feat: return MCP image content from screenshot tool

Summary

Screenshot tool returns JSON with file path or base64 string. Should return proper MCP `image` content type so Claude can visually inspect the UI.

Status: Implemented — returns `{ type: "image", data: base64, mimeType: "image/png" }` alongside text metadata. Works for both save-to-file and inline modes.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

perf: cache app registry with TTL

Summary

Each `crosspad_apps list` call re-reads and parses registry JSON from disk. Add in-memory cache with 5-minute TTL.

Status: Implemented — `loadRegistryJsonFrom` caches by file path with 5min TTL.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

fix: add retry logic for simulator TCP connections

Summary

`sendRemoteCommand` fails immediately on timeout. Should retry 2-3x with backoff — simulator may be in the middle of loading/rendering.

Status: Implemented — retries up to 3x with incremental backoff (500ms, 1s, 1.5s). Skips retry on ECONNREFUSED (simulator not running).

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

fix: validate Python availability before app_manager delegation

Summary

`crosspadAppInstall/Remove/Update/Sync` delegate to Python subprocess without checking if `python3` or `app_manager.py` exist. Should fail-fast with a clear error message.

Status: Implemented — checks python3 availability (cached) and script existence before spawning subprocess.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

feat: parse build progress percentage from CMake/Ninja

Summary

CMake/Ninja outputs `[45/120]` progress markers. Parse these into structured progress data for potential UI progress bars.

Scope

Priority

Low — nice UX improvement for long builds.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

feat: scaffold auto-install option

Summary

`crosspad_code scaffold` generates boilerplate files but doesn't write them, register the app, or trigger a build. Add optional auto-install flow.

Scope

Priority

Low — quality of life for app creation workflow.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

Most recent

fix: read server version from package.json instead of hardcoding

Summary

`index.ts` hardcodes `version: "5.0.0"` while package.json has `"5.1.0"`. Version should be read dynamically from package.json.

Status: Implemented — using `createRequire` to read package.json at startup.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 0 comments

feat: add CI-like pipeline action to crosspad_build

Summary

Add a pipeline action that runs build → test → report in one invocation instead of 3 separate tool calls.

Scope

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

feat: add MCP Resources for static project context

Summary

The server exposes only Tools, no MCP Resources. Resources would provide static context without tool invocations:

Scope

Read the thread · 2026-04-09 · closed · 1 comment

feat: add context_lines option to crosspad_code search

Summary

Symbol search returns single matching lines via git grep. Add context_lines parameter (like grep -C) to show surrounding code.

Scope

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

feat: add platform param to crosspad_test for future IDF tests

Summary

Tests are PC-only (Catch2). Prepare for IDF unit tests (Unity framework) by adding platform parameter.

Scope

Priority

Low — future-proofing for when IDF tests exist.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

feat: detect unregistered apps in pc build-check

Summary

idf-build.ts detects new app directories requiring fullclean, but build-check.ts (PC) doesn't. Should check src/app/*/ for new directories vs last build.

Scope

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

feat: integrate crosspad-docs context generation

Summary

Add docs action to crosspad_code for accessing aggregated documentation from crosspad-docs repo.

Scope

Priority

Low — useful for giving Claude full project context without reading each repo.

🤖 Generated with Claude Code

Read the thread · 2026-04-09 · closed · 1 comment

feat: add submodule_update action to crosspad_repo

Summary

Updating submodules (crosspad-core, crosspad-gui) across repos requires manual git commands. Add submodule_update action.

Scope

Acceptance

Read the thread · 2026-04-09 · closed · 1 comment

The remaining reports are on the project's issue tracker.