Skip to content

Add Electron-based test application for CesiumJS MCP servers #33

Description

@MKartaviciute

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

  • pnpm run start:electron (from test-applications) launches the Electron window with a working CesiumJS globe
  • All 6 MCP servers connect successfully via WebSocket (green status panel)
  • No changes to @cesium-mcp/client-core or any server package
  • pnpm run check passes (lint + format)
  • README updated with Electron setup/run instructions

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions