Summary
Add an Electron test application alongside the existing \web-app under \test-applications\. This allows testing and demonstrating the CesiumJS MCP servers in a desktop app context without requiring a browser or an \http-server\ process.
Motivation
The current web-app must be served via http-server (port 8080) and opened in a browser. An Electron app:
- Removes the need for a separate serve step the app launches as a single desktop process
- Provides a more realistic IDE-integration story (e.g. launching alongside Claude Desktop or Cursor)
- Enables future work such as packaging and distributing the test app as a standalone executable
- Makes it easier to demo all MCP servers (camera, entity, animation, imagery, tiles, terrain) without browser security restrictions on localhost WebSocket connections
Proposed Implementation
New package: /test-applications/electron-app/
test-applications/
electron-app/
package.json # electron, electron-builder, esbuild deps
tsconfig.json
electron/
main.ts # BrowserWindow setup, app lifecycle
preload.ts # contextBridge (if IPC needed)
src/
index.html # renderer entry (bundles CesiumJS locally)
app.ts # thin wrapper — reuses @cesium-mcp/client-core
assets/
cesium/ # copied CesiumJS build assets (WASM, workers, etc.)
Workspace integration
- Add
electron-app to the test-applications pnpm workspace
- Add workspace-level scripts in
test-applications\package.json for start:electron and build:electron
- Add
.env support
Out of Scope
- Packaging / distributing a production-ready installer (can be a follow-up)
- Electron IPC between main and renderer (not needed; MCP servers communicate over TCP ports)
- Changing any existing MCP server code
Acceptance Criteria
Summary
Add an Electron test application alongside the existing
\web-appunder\test-applications\. This allows testing and demonstrating the CesiumJS MCP servers in a desktop app context without requiring a browser or an \http-server\ process.Motivation
The current
web-appmust be served viahttp-server(port 8080) and opened in a browser. An Electron app:Proposed Implementation
New package:
/test-applications/electron-app/Workspace integration
electron-appto thetest-applicationspnpm workspacetest-applications\package.jsonforstart:electronandbuild:electron.envsupportOut of Scope
Acceptance Criteria
pnpm run start:electron(fromtest-applications) launches the Electron window with a working CesiumJS globe@cesium-mcp/client-coreor any server packagepnpm run checkpasses (lint + format)