npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@extentos/mcp-server

v0.0.87

Published

Extentos MCP server — deterministic tools for building Meta-glasses apps.

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@latest

Restart 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):

  1. 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 where ExtentosConnectionPage should live.
  2. Write your handler classes — subscribe to SDK primitives from your Application (Android) or @main App (iOS) using the patterns from getCodeExample.
  3. Update the manifest's capabilities array with the SDK feature names your handler uses.
  4. validateIntegration — pre-test correctness gate. Re-run after structural changes.
  5. 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 createSimulatorSession call 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). createSimulatorSession returns 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: true does the same from a tool call); Delete removes it. No 24-hour lifetime cap; sessions that go unused enter idle state 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/whoami localhost 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.plist instead of buildConfigField). 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.