beeperbox v0.8.0 — Lite mode
Run beeperbox's MCP verb server standalone against a Beeper Desktop you already have open — no Docker, no Electron, no Xvfb. It's the same single mcp/server.js the container runs, so the 12-tool surface and serverInfo.version are identical by construction.
Two ways to run, one verb layer:
- Container (always-on / VPS, no human at a desktop):
docker compose up -d - Lite mode (laptop, Beeper already open):
BEEPER_TOKEN=… npx beeperbox(ornpx beeperbox --stdio)
Added
- npm package
beeperbox—npx beeperbox/npx beeperbox --stdio. Zero runtime dependencies; published with SLSA provenance via OIDC trusted publishing. - Startup preflight — a bounded
/v1/accountsprobe on boot logs a clearOK … N account(s)/FAIL …verdict (lite mode's substitute for the container's healthcheck). Opt out withBEEPERBOX_PREFLIGHT=0; the container image disables it (it already has a healthcheck + supervisor). - Single-sourced version —
serverInfo.versionreads frompackage.json, so the npm package, the container, and the MCPinitializeresponse can't drift (unit-tested).
Fixed
- Sent-ledger now persists on a normal host. The echo-guard ledger defaulted to a container-only
/root/.config/...path that silently failed to write on a non-root host, degrading thesource:"api"guard across restarts. Now a per-user XDG path ($XDG_CONFIG_HOME/beeperbox/sent-ledger.json→~/.config/beeperbox/sent-ledger.json), parent dir auto-created. One code path for both deployments.
Security
⚠️ Lite mode binds loopback by default (newMCP_BIND_ADDR, default127.0.0.1). The server previously bound0.0.0.0unconditionally — safe in the container (Docker publishes the port on127.0.0.1, the loopback publish is the boundary), but lite mode had no such layer, exposing the full tool surface (read every message, send across every network) to the LAN unauthenticated via a spoofedHostheader. Found and fixed by a/securitypass on the change. The container image keeps0.0.0.0via ENV. If you rannpx beeperbox@0.7.0, upgrade to 0.8.0 (0.7.0 is deprecated).
Changed
- De-containerized the
BEEPER_TOKEN-missing error message (transport-agnostic).
Docker: ghcr.io/hamr0/beeperbox:0.8.0 (multi-arch linux/amd64 + linux/arm64) · npm: beeperbox@0.8.0
Full notes: CHANGELOG.md