@extentos/mcp-server
v0.0.87
Published
Extentos MCP server — deterministic tools for building Meta-glasses apps.
Maintainers
Readme
@extentos/mcp-server
MCP server for building Meta-glasses apps with Claude Code and other MCP-aware coding agents. Exposes a tight set of deterministic tools that prime the agent on what the glasses can do, return canonical SDK code patterns in Kotlin and Swift, scaffold a fresh project, and drive a browser-based simulator for testing without physical hardware.
The library itself is a pure Kotlin/Swift SDK — your handler code subscribes to capability primitives like glasses.audio.transcriptions(), glasses.camera.capturePhoto(), and glasses.audio.speak() directly. There is no spec runtime, no DSL, no manifest dispatch — the MCP server's job is to help an AI agent compose against the SDK quickly and correctly.
Install
Register the server with Claude Code (or any MCP host) in one line:
claude mcp add extentos -- npx -y @extentos/mcp-server@latestRestart Claude Code. /mcp should list extentos with all tools available.
Prerequisites: Node.js 20+ on PATH. That's it — npx fetches the package on first run and caches it.
Getting started (for the agent)
The agent plans composition itself. Start with discovery, then scaffold, then write handler code.
Discovery (read these first; cheap, all local):
getPlatformInfo({ sections: ["version", "capabilities"], glasses: "meta_rayban" })— what SDK features the glasses expose (transcription_incremental,capture_photo,speak,record_audio, …).getCapabilityGuide(feature)— per-feature minimal Kotlin + Swift snippet + gotchas. Read for each capability you plan to use.getCodeExample(pattern)— full canonical compositions (voice Q&A, barge-in, photo + vision LLM + speak, live transcription UI, voice notes, connection-page bootstrap). Peel from these when writing your handler.searchDocs({ topic: "getting_started" })— index of conceptual topics covering the connection state model, toggles, permissions, simulator behaviour, multi-platform projects, etc.
Generation sequence (deterministic):
generateConnectionModule({ platform, glasses, appPackage })— one-shot scaffold (bootstrap module, Gradle/SPM wiring, manifest, permissions). Returns a placement question the first time — surface it; the dev chooses whereExtentosConnectionPageshould live.- Write your handler classes — subscribe to SDK primitives from your
Application(Android) or@main App(iOS) using the patterns fromgetCodeExample. - Update the manifest's
capabilitiesarray with the SDK feature names your handler uses. validateIntegration— pre-test correctness gate. Re-run after structural changes.createSimulatorSession— provision a browser-hosted glasses surrogate.
Iteration: rebuild + reinstall your app — the simulator picks up the new binary automatically thanks to auto-bind; the session URL is stable.
Debugging: getEventLog, getSimulatorStatus. Ship-readiness: getProductionChecklist. Credentials: getCredentialGuide (BYOK providers + Meta DAT registration).
Features
- Account-required for browser-simulator sessions only. First
createSimulatorSessioncall triggers the device-code flow — your agent surfaces a verification URL, you sign in once (Google or email, no payment), and from then on simulator sessions are unlimited. Every other tool works without an account. - Persistent simulations (get-or-create).
createSimulatorSessionreturns the saved sim for(account, project, platform)if one already exists (status: "resumed"); first call from a project mints a new one (status: "active"). Saved sims live indefinitely on your account dashboard at https://extentos.com/s — Reset rotates the ID for a clean slate (resetFresh: truedoes the same from a tool call); Delete removes it. No 24-hour lifetime cap; sessions that go unused enteridlestate and resume the moment the host app reconnects. - Auto-bind dev loop. Once the library is in your app, the MCP and library coordinate via a
127.0.0.1:31337/whoamilocalhost bridge. The running app auto-attaches to the saved sim on cold launch — no rebuild, no URL paste, no typed code in the happy path. Works on Android and iOS. - Browser simulator surrogate. Camera, mic, hardware alerts, notifications, replay — all browser-side; no physical glasses needed for the bulk of the dev loop. The simulator runs the same library code as production with only the transport swapped.
Platforms
- Android — primary target for the current pre-release. Library resolves from
mavenLocal()during the current cut; Maven Central promotion is on the near-term roadmap. - iOS — supported via SPM. Same MCP tool surface, different generated artifacts (
extentos.session.plistinstead ofbuildConfigField). Auto-bind shipped — apps get the same zero-rebuild dev loop as Android.
Status
Pre-1.0. APIs may shift between minor versions until the hardware test loop closes. Pin to an exact version (@0.1.0) if you need reproducibility across sessions.
License
MIT — see LICENSE in the repo.
