MCP server

Configuration

Configure @extentos/mcp-server — environment variables, the ~/.extentos state files (install id, auth, consent), and the default vendor.

The MCP server needs no configuration to runnpx -y @extentos/mcp-server@latest works out of the box, anonymously, with sensible defaults. The settings below are escape hatches: override the backend for local Extentos development, relocate the state directory, opt out of telemetry, suppress browser auto-open, or feed the setup diagnostic your GitHub Packages token.

This page is about the MCP-server shell, not the library. The Kotlin/Swift SDK has its own separate config surface — ExtentosConfig (debug, telemetryConsent, …) is set in the host app's bootstrap, not via these environment variables. See the SDK docs for that surface.

Environment variables

All settings are environment variables; there is no config file you author by hand. Every variable is optional.

VariableDefaultWhat it does
EXTENTOS_BACKEND_URLProduction backend (api.extentos.com)Override the backend base URL the server talks to. Used when developing Extentos itself against a local backend. Read by tools/util/backendClient.ts.
EXTENTOS_CONFIG_DIR~/.extentosRelocate the state directory (install id, auth token, consent). Useful for sandboxes, CI, or devcontainers that can't write to the home directory.
EXTENTOS_TELEMETRYunsetSet to 0 to decline anonymous telemetry for the shell without running the CLI consent command. Takes precedence over the on-disk consent file (the escape hatch for environments that can't persist consent).
EXTENTOS_NO_AUTO_OPENunsetSet to 1 to suppress the browser auto-open on simulator-session creation (headless / SSH / sandboxed environments). The session URL is still returned in the tool response for the developer to open manually — nothing is lost.
GITHUB_TOKENunsetRead by extentos-mcp setup to validate the Meta DAT GitHub-Packages PAT, needed only for camera/display apps that depend on com.extentos:glasses-meta (those mwdat-* artifacts live on GitHub Packages and need a token with read:packages scope). This is a setup-diagnostic input, not a runtime dial — the running MCP server never reads it; only the setup subcommand does.
GITHUB_USERNAMEtokenOptional companion to GITHUB_TOKEN for the same setup diagnostic — the Basic-auth username for the GitHub Packages Maven endpoint. Defaults to the literal token (GitHub accepts any username when the password is a valid PAT).

EXTENTOS_TELEMETRY and EXTENTOS_CONFIG_DIR are the only ones that change persistent state; the rest are per-process.

State files

The server keeps a small amount of state under ~/.extentos (override the directory with EXTENTOS_CONFIG_DIR):

FileHolds
install.jsonThe stable anonymous installId (inst_…) tagged onto every backend request and telemetry event, plus first-run metadata. Not a secret — it's the same value sent to api.extentos.com on every tool call.
auth.jsonThe bearer token written after account linking. Present only once linked; cleared by extentos-mcp logout.
consentOne of accepted / declined — the telemetry consent decision. Absent until you run accept-privacy / decline-privacy. EXTENTOS_TELEMETRY=0 overrides it.

The auth and consent lifecycle is documented in full on the auth page. You never edit these files by hand — the CLI subcommands (login, logout, accept-privacy, decline-privacy, whoami, status) manage them.

Default vendor

The only glasses vendor in the current MVP is meta_rayban — every tool that takes a glasses argument requires it. There is no vendor-selection setting; the value is passed per tool call (e.g. getPlatformInfo({ glasses: "meta_rayban" }), generateConnectionModule({ glasses: "meta_rayban", … })). Additional vendors will surface as new accepted values on those tools when they ship.

  • Auth — the device-code flow, auth.json, and the CLI auth commands that manage the state files above
  • MCP server overview — the tool catalog, the canonical agent flow, and the CLI subcommands
  • Setup and Generation toolsgenerateConnectionModule, which references the GITHUB_TOKEN setup diagnostic for the Meta DAT repo
  • Install — per-host install commands and JSON snippets

MCP server

The Extentos MCP server (`@extentos/mcp-server`) is an npm package an AI agent (Claude Code, Cursor, Windsurf, Cline) installs once and then uses to add Meta Ray-Ban smart-glasses capabilities to a native iOS or Android app. It exposes a tight set of deterministic tools across 10 categories — discovery, generation, agent configuration, credentials, analytics, guidance, validation, simulation, production-readiness, and documentation — plus a CLI for account linking, telemetry consent, and update checks. This is the agent's operating manual.

Auth

How Extentos auth works. Discovery, guidance, validation, and search run with no account; a free account (linked via the OAuth 2.0 device-code flow) unlocks browser-simulator sessions, the scaffold step, and the account-scoped project tools. No payment.

Setup and Generation tools

The Extentos MCP server's Setup and Generation surface — generateConnectionModule (the one-shot project scaffold that emits the bootstrap module, build-script changes, dependencies, permissions, and the integration manifest) plus the four connection-page-config tools (getConnectionPageConfig, setConnectionPageConfig, regenerateConnectionPageFile, adoptConnectionPageFile). After scaffolding, the customer (or their agent) writes handler classes against the SDK primitives surfaced by getCapabilityGuide / getCodeExample.

Install the MCP server

How to install the Extentos MCP server (@extentos/mcp-server) in any MCP-compatible AI coding agent — Claude Code, Cursor, Windsurf, Cline, and others. Per-host install commands, config file locations, copy-pasteable JSON snippets, restart and verify steps, version pinning, updating, troubleshooting common errors, and uninstall instructions. Verified install paths for each supported host.