Extentos MCP

resmi

Extentos is a multi-vendor development platform for adding smart-glasses capabilities to existing iOS and Android apps. The simplest analogy is Stripe for smart glasses

Apa yang bisa Anda lakukan dengan Extentos MCP?

  • Discover platform capabilities and SDK features — call getPlatformInfo to retrieve the full catalog of Meta Ray-Ban capabilities, library version, and vendor tiers before writing any code.
  • Retrieve canonical code examples and usage guides — use getCodeExample and getCapabilityGuide to get Kotlin/Swift patterns for voice assistants, display interactions, transcription, and other SDK primitives.
  • Scaffold a complete connection module — run generateConnectionModule to bootstrap Gradle/SPM wiring, permissions, manifest entries, and the Extentos connection page into a native project.
  • Validate project correctness before testing — invoke validateIntegration to check manifest declarations, dependency versions, permission coverage, and bootstrap calls against declared capabilities.
  • Provision and drive simulator sessions — call createSimulatorSession to mint a browser-based session, then use injectTranscript, assertToolCalled, and getEventLog to run agent-driven end-to-end tests without a human.
  • Audit production readiness — run getProductionChecklist and getCredentialGuide to verify credential wiring, foreground-service requirements, and store-listing readiness before shipping.

Dokumentasi

Server MCP

Server MCP

Server MCP Extentos (@extentos/mcp-server\) adalah paket npm yang dipasang sekali oleh agen AI (Claude Code, Cursor, Windsurf, Cline) dan kemudian digunakan untuk menambahkan kemampuan kacamata pintar Meta Ray-Ban ke aplikasi iOS atau Android native. Server ini menyediakan sekumpulan alat deterministik yang ketat di 10 kategori — penemuan, pembuatan, konfigurasi agen, kredensial, analitik, panduan, validasi, simulasi, kesiapan produksi, dan dokumentasi — plus CLI untuk penautan akun, persetujuan telemetri, dan pemeriksaan pembaruan. Ini adalah manual pengoperasian agen.

Server MCP adalah cara agen AI — Claude Code, Cursor, Windsurf, Cline, atau host apa pun yang kompatibel dengan Model Context Protocol — mengoperasikan Extentos. Agen memanggil alat deterministik; server memberi tahu agen tentang kemampuan apa yang disediakan kacamata, mengembalikan pola kode SDK kanonis dalam Kotlin dan Swift, menyiapkan proyek, menengahi sesi simulator, dan meminta jejak debugging. Server itu sendiri tidak memiliki alat perencanaan — agen adalah perencana yang lebih baik daripada kumpulan regex. Alat adalah primitif bertipe yang disusun agen secara berurutan.

Halaman ini adalah halaman arahan bagian — apa itu server, alat-alatnya secara sekilas, alur kerja kanonis yang digerakkan agen, pengaturan konfigurasi, CLI, dan cara kerja model autentikasi. Sub-halaman mencakup masing-masing secara mendalam.

Instalasi

claude mcp add extentos -- npx -y @extentos/mcp-server@latest

Untuk host selain Claude Code, lihat prompt agen atau jalur instalasi JSON manual. Referensi instalasi lengkap di /docs/mcp-server/install.

Alat-alat, berdasarkan kategori

Server menyediakan permukaan alat deterministik (diverifikasi di mcp-server/src/tools/definitions.ts), yang diatur ke dalam 10 kategori. Kategori adalah peta mental agen; agen yang memahami di kategori mana suatu alat berada dapat memutuskan kapan harus memanggilnya. Katalog lengkap yang selalu terkini adalah referensi alat yang dihasilkan.

1. Penemuan dan referensi SDK (3 alat)

Panggilan pertama dalam setiap tugas baru. Murah, semuanya lokal, tanpa efek samping.

AlatFungsinya
getPlatformInfoMengembalikan katalog platform statis — versi pustaka, daftar kemampuan SDK yang disediakan kacamata, tingkatan per vendor. Selalu menjadi panggilan pertama yang tepat.
getCapabilityGuidePenggunaan minimal per fitur dalam Kotlin + Swift — bentuk panggilan, argumen konfigurasi, kendala. Dipasangkan dengan getPlatformInfo (yang memberi nama fitur) untuk memberi tahu agen cara memanggil masing-masing.
getCodeExampleKomposisi kanonis lengkap dalam kedua bahasa. Mulai dengan assistant_agent_loop (alur asisten suara kanonis Fase-4) dan agent_driven_e2e_full_loop (pengujian E2E yang digerakkan agen). Juga mencakup voice_qa_assistant, barge_in_speak, photo_describe_voice, live_transcription_ui, voice_notes, connection_page_setup, byok_anthropic, display_browse_detail, display_media_gallery, dan video_frames_ml. Ambil dari sini saat menulis kode handler. Daftar enumerasi lengkap dihasilkan di /docs/reference/mcp-tools.

2. Penyiapan dan Pembuatan

AlatFungsinya
generateConnectionModulePenyiapan satu langkah — bootstrap modul, pengkabelan Gradle/SPM, dependensi, izin, manifes. Alur dua panggilan: panggilan pertama tanpa penempatan mengembalikan pertanyaan yang menanyakan di mana ExtentosConnectionPage seharusnya berada; panggilan kedua dengan penempatan yang dipilih mengembalikan set file lengkap.
getConnectionPageConfig / setConnectionPageConfigBaca / tulis konfigurasi halaman koneksi per proyek (token tema + visibilitas bagian) yang disimpan dasbor/server.
regenerateConnectionPageFile / adoptConnectionPageFileSinkronkan extentos.connection-page.json yang dikomit dengan konfigurasi server — regenerate (server→file) atau adopt (file→server).

Setelah penyiapan, agen menulis kelas handlernya sendiri berdasarkan primitif SDK yang disediakan oleh getCapabilityGuide / getCodeExample. Kode handler adalah permukaan penulisan pelanggan — tidak ada langkah initSpec atau pengisian DSL.

3. Konfigurasi & penggunaan agen (3 alat)

Berlingkup akun — memerlukan akun tertaut dan dibatasi per proyek oleh izin akses MCP (default Baca+Tulis).

AlatFungsinya
getAssistantConfig / setAssistantConfigBaca atau ubah pengaturan asisten yang dikelola dasbor proyek — model OpenAI Realtime, suara, model memori (pemadatan), dan mode memori dalam sesi. set adalah pembaruan parsial, memvalidasi setiap nilai terhadap katalog, dan menampilkan dampak biaya dari perubahan model.
getGatewayUsageBaca penggunaan gateway terkelola proyek + biaya tepat selama jendela waktu terbaru — jumlah token dan USD harga resmi dari buku besar penagihan, dirinci berdasarkan model. Hanya metadata, tidak pernah transkrip atau konten.

4. Kredensial (2 alat)

Berlingkup akun + dibatasi per proyek. Tulis-tanpa-mengetahui — rahasia tidak pernah melewati agen.

AlatFungsinya
getCredentialStatusBaca apakah kunci API OpenAI (BYOK) proyek dan identitas build Meta DAT telah ditetapkan — hanya petunjuk tersamar + diperbarui pada, tidak pernah nilainya.
setCredentialMulai entri tulis-tanpa-mengetahui kredensial — mengembalikan tautan dasbor tempat pemilik yang masuk menempelkan rahasia langsung ke brankas terenkripsi. Secara desain tidak mengambil argumen rahasia.

5. Analitik (1 alat)

AlatFungsinya
getProjectAnalyticsBaca analitik produksi proyek — agregat telemetri dari instalasi App Store / Play Store yang dikirimkan (peristiwa, instalasi aktif, berdasarkan peristiwa / hari / vendor / platform). Hanya metadata, berlingkup akun, diperiksa kepemilikannya, dibatasi oleh izin Analitik. Kosong hingga aplikasi dikirimkan dan mengirim peristiwa yang dibuktikan produksi (gunakan getEventLog untuk aliran dev/sim langsung).

6. Panduan Implementasi (2 alat)

Alat misi sampingan yang dipanggil agen selama penyusunan.

AlatFungsinya
getVoiceCommandGuidanceAnalisis frasa bangun / perintah yang diusulkan untuk masalah UX (tabrakan, ambiguitas, kata yang sulit dikenali, konflik kata bangun Meta) sebelum menghubungkannya ke konsumen glasses.audio.transcriptions().
getPermissionsTurunkan izin platform yang tepat, persyaratan Meta DAT, dan kebutuhan layanan latar depan dari daftar kemampuan. Jalankan saat menambah atau menghapus primitif dari handler Anda.

7. Validasi (2 alat)

Gerbang kebenaran. Jalankan setelah perubahan struktural (kemampuan baru dideklarasikan, dependensi dinaikkan, manifes diedit).

AlatFungsinya
inspectIntegrationSnapshot proyek hanya-baca — manifes, hash file yang dihasilkan, daftar dependensi, konfigurasi halaman koneksi. Jalankan sebelum pengeditan manual untuk memahami status saat ini.
validateIntegrationPemeriksaan kebenaran seluruh proyek — manifes, file yang dihasilkan, dependensi dideklarasikan, izin mencakup kapabilitas yang dideklarasikan, bootstrap memanggil ExtentosGlasses.create(...), versi toolchain, petunjuk foreground-service untuk alur continuous-capture. Gerbang pra-pengujian.

8. Simulasi

Menyediakan dan mengoperasikan sesi simulator berbasis browser, beserta alat pengujian berbasis agen yang menutup loop end-to-end tanpa manusia.

AlatFungsinya
createSimulatorSessionDapatkan-atau-buat sesi mode browser di extentos.com/s. Mengembalikan sim tersimpan untuk proyek ini jika ada (status: "resumed"), atau membuat yang baru (status: "active"). Otomatis melampirkan aplikasi yang berjalan melalui jembatan lokal saat dapat dijangkau; jika tidak, mengeluarkan cuplikan BuildConfig.EXTENTOS_SESSION_URL (Android) atau payload extentos.session.plist (iOS). Berikan resetFresh: true untuk merotasi sessionId demi awal yang bersih.
ensureSimulatorBrowserBuka + konfirmasi tab browser simulator yang terhubung — prasyarat untuk alur kamera dan injeksi.
completeAuthLinkSetelah createSimulatorSession mengembalikan status: "auth_required" (instalasi anonim perlu menautkan untuk membuat sesi), polling backend hingga pengguna menyelesaikan pendaftaran, lalu menyimpan bearer token ke ~/.extentos/auth.json.
getEventLogAmbil jejak peristiwa terstruktur dari sebuah sesi. Nilai filter: all (tanpa filter) plus tujuh chip errors, voice, camera, display, ai, lifecycle, custom — satu chip per peristiwa, dengan errors menyerap severity≥warn terlepas dari modalitasnya. Plus cursor, follow, limit untuk cakupan tingkat jejak. Alat debugging utama.
getSimulatorStatusBaca status terkini sesi langsung — fase, hardware-ready, peran terlampir, aliran kapabilitas aktif, nilai toggle saat ini.
injectTranscript / injectAssistantUtterance / assertToolCalledDorong frasa bangun atau giliran asisten, lalu periksa alat mana yang dipanggil model — loop E2E berbasis agen, tanpa perlu manusia.
setSimVideo / setSimDeviceSalurkan video uji ke kamera simulasi; ganti model perangkat simulasi (mis. rayban_display untuk melatih jalur tampilan).
getDisplayState / injectInputBaca pohon tampilan yang saat ini dirender + dorong input tampilan (pilih / navigasi / kembali).

9. Produksi (2 alat)

Pemeriksaan pra-pengiriman.

AlatFungsinya
getProductionChecklistDaftar periksa kesiapan produksi yang dipersonalisasi berdasarkan kapabilitas yang dideklarasikan + nama handler — pengkabelan kredensial, audit izin, persyaratan foreground-service (saat continuous capture digunakan), penghapusan URL simulator dari build rilis, kesiapan daftar toko.
getCredentialGuidePanduan langkah demi langkah pengaturan kredensial untuk penyedia AI produksi — anthropic, openai, google_cloud_vision, google_translate, google_gemini, deepl, azure_cognitive, aws_bedrock, huggingface, atau custom — plus pendaftaran Meta DAT.

10. Dokumentasi & pencarian (1 alat)

AlatFungsinya
searchDocsCari dokumentasi Extentos berdasarkan topik atau kata kunci. Untuk asisten suara, baca assistant_runtime terlebih dahulu; conversation_runtime adalah runtime Fase-3 yang sudah usang (hanya referensi migrasi). Topik selaras lainnya: voice_integration, agent_e2e_testing, managed_gateway, conversation_memory, display, plus set konseptual stabil — getting_started, custom_handlers (dokumen komposisi SDK kanonis), simulator_browser_mode, event_log_schema, toggles, library_api, permissions, multi_platform_projects. ID topik stabil; input alat langsung bersifat otoritatif.

Referensi lengkap per-alat dengan skema input, bentuk respons, dan contoh kerja: /docs/mcp-server/tools.

Alur berbasis agen kanonis

Dalam proyek baru, agen memanggil alat dalam urutan ini:

1. getPlatformInfo({ sections: ["version", "capabilities"], glasses: "meta_rayban" })
2. getCodeExample({ pattern: "assistant_agent_loop" })  // Phase-4 voice assistant; or whatever pattern fits
3. getCapabilityGuide({ feature: "<each primitive the handler will use>" })
4. generateConnectionModule({ platform, glasses, appPackage })
   → returns "needs_placement" question
5. generateConnectionModule({ ... placement: "<chosen>" })
   → writes scaffold files (ExtentosBootstrap, manifest, etc.)
6. <agent writes handler class(es)> against the SDK primitives
   <agent updates extentos.manifest.json's `capabilities` array>
7. validateIntegration()
   → ✓ all good (or returns structured errors to fix)
8. createSimulatorSession({ glasses })
   → returns sessionId; auto-opens browser at extentos.com/s/<id>
   → if running app is reachable via local bridge, it auto-attaches
9. <developer interacts with the simulator; capability events flow into the backend>
10. getEventLog({ sessionId, filter: "errors" })  → debug
    getSimulatorStatus({ sessionId })             → status

Untuk iterasi: edit kode handler → bangun ulang + instal ulang → aplikasi otomatis melampirkan ke sesi simulator yang sama (tanpa pembuatan ulang, URL stabil). Sebelum pengiriman: getProductionChecklist dan getCredentialGuide.

Konfigurasi

Server MCP membaca variabel lingkungan ini (diverifikasi di mcp-server/src/):

VariabelDefaultFungsinya
EXTENTOS_BACKEND_URLBackend produksiTimpa URL backend (tools/util/backendClient.ts). Untuk pengembangan lokal Extentos itu sendiri.
EXTENTOS_CONFIG_DIR~/.extentosTimpa direktori config/auth (telemetry/consent.ts).
EXTENTOS_TELEMETRYtidak disetel (default-persetujuan)Setel ke 0 untuk menolak telemetri tanpa menjalankan perintah persetujuan CLI.
EXTENTOS_NO_AUTO_OPENtidak disetelSetel ke 1 untuk menonaktifkan buka-otomatis browser saat pembuatan sesi simulator (berguna di lingkungan headless).

Referensi konfigurasi lengkap: /docs/mcp-server/configuration.

Subperintah CLI

Menjalankan npx @extentos/mcp-server@latest tanpa argumen memulai server MCP melalui stdio (jalur yang digunakan agen). Dengan subperintah, ia bertindak sebagai CLI pengembang:

SubperintahFungsinya
loginTautkan instalasi ini ke akun Extentos melalui alur kode-perangkat (proaktif — berguna sebelum sesi simulator pertama, atau setelah logout untuk menautkan ulang).
logoutHapus ~/.extentos/auth.json. Instalasi kembali ke tingkat anonim; panggilan sesi simulator berikutnya akan memicu ulang alur kode-perangkat.
whoamiBelum diimplementasikan (stub Fase-0). Akan mencetak installId, accountId (jika tertaut), tingkat, masa berlaku auth.
setupPra-penerbangan lingkungan build lokal — memeriksa PAT GitHub Packages (read:packages) yang dibutuhkan artefak Meta DAT transitif, beserta prasyarat dependensi lainnya.
accept-privacyMerekam persetujuan privasi (mengaktifkan unggahan telemetri).
decline-privacyMerekam penolakan privasi (menonaktifkan unggahan telemetri).
statusCetak status persetujuan, ID instalasi, akun tertaut, versi MCP/library.
updatePeriksa pembaruan server MCP (no-op pada instalasi npx @latest).

Referensi CLI lengkap: /docs/mcp-server/auth.

Model auth

Server MCP bersifat anonim-pertama. Penemuan, panduan kapabilitas, contoh kode, validasi, pencarian dokumen, simulasi pada perangkat, dan pengujian perangkat keras nyata semuanya berfungsi tanpa perlu masuk. Tiga hal yang menautkan akun gratis: membuat sesi simulator-browser (createSimulatorSession, HTTP 402), langkah scaffold generateConnectionModule (membuat kunci proyek terikat akun Anda — alur kode-perangkat 402 yang sama; panggilan informasional pertama bersifat anonim), dan alat proyek dengan cakupan akun (konfigurasi asisten, kredensial, penulisan halaman koneksi, analitik — HTTP 401).

Alur kode-perangkat: panggilan terjaga pertama mengembalikan status: "auth_required" dengan URL verifikasi. Agen memanggil completeAuthLink untuk melakukan polling backend; pengembang mendaftar dengan akun email gratis di URL tersebut (Google atau email + kata sandi, tanpa pembayaran); backend menerbitkan token; panggilan alat asli mencoba ulang secara otomatis. Setelah penautan, sesi simulator tidak terbatas.

Alat, pembuatan kode, validasi, SDK, dan simulator browser Extentos gratis — tidak ada biaya per pengguna atau langganan untuk membangun dan mengirimkan. Satu-satunya permukaan yang mengukur penggunaan adalah gateway AI terkelola di belakang asisten suara Fase-4. Model auth lengkap: /docs/mcp-server/auth; harga: /docs/resources/pricing.

Privasi dan telemetri

Pada proses pertama, server MCP menyuntikkan pemberitahuan privasi satu kali ke dalam respons. Telemetri bersifat anonim (ditandai dengan installId, tanpa kode sumber atau data pribadi) dan ditutup dengan melanjutkan secara default — pola yang sama seperti Vercel CLI, Astro, Vite. Tolak kapan saja:

npx @extentos/mcp-server@latest decline-privacy
# or
EXTENTOS_TELEMETRY=0 (env var, persistent for the shell)

Konten pemberitahuan privasi ada di mcp-server/src/index.ts (konstanta PRIVACY_NOTICE). Pemberitahuan ditampilkan sekali per instalasi melalui claimFirstPrivacyNotice — tidak pernah berulang.

Host MCP yang kompatibel

Terverifikasi berfungsi dengan:

  • Claude Code — target utama. Instalasi satu baris melalui claude mcp add.
  • Cursor — konfigurasi JSON di ~/.cursor/mcp.json.
  • Windsurf — konfigurasi JSON di ~/.codeium/windsurf/mcp_config.json.
  • Cline — konfigurasi JSON di pengaturan MCP Cline.
  • Host apa pun yang kompatibel dengan MCP — masukkan blok JSON standar mcpServers.extentos.

Server MCP menggunakan protokol MCP standar melalui stdio (@modelcontextprotocol/sdk); tidak ada jalur kode spesifik host di sisi server. Langkah instalasi per host: /docs/mcp-server/agents.

Jembatan lokal — loop dev auto-bind

Saat server dimulai, ia membuka listener HTTP 127.0.0.1:31337/whoami (mcp-server/src/localBridge.ts). Pustaka Extentos pada aplikasi pengembang memeriksa endpoint ini saat runtime untuk mempelajari installId host MCP-nya. Hasilnya: setiap panggilan createSimulatorSession dari agen secara otomatis melampirkan aplikasi yang berjalan ke sesi baru — tanpa build ulang, tanpa tempel URL.

Jalur jangkauan:

  • Emulator Android: http://10.0.2.2:31337/whoami (alias NAT loopback host)
  • Simulator iOS: http://localhost:31337/whoami (berbagi namespace jaringan host)
  • Ponsel Android fisik melalui USB: adb reverse tcp:31337 tcp:31337 sekali, lalu localhost:31337 dari perangkat
  • Ponsel seluler atau agen yang dihosting di cloud: pemeriksaan waktu habis. Agen menggunakan jalur tempel URL sebagai gantinya — createSimulatorSession mengembalikan cuplikan BuildConfig.EXTENTOS_SESSION_URL (Android) atau payload extentos.session.plist (iOS) yang ditempelkan pengembang, lalu membangun ulang aplikasi sekali. Kurang elegan dibandingkan auto-bind tetapi berfungsi pada topologi apa pun.

Terikat hanya pada 127.0.0.1. installId bukan rahasia — nilainya sama dengan yang dikirim MCP ke api.extentos.com pada setiap panggilan alat. Tidak diperlukan auth pada lapisan ini.

Jika port 31337 sedang digunakan (jarang; instance MCP lain sudah berjalan), startup mencatat peringatan dan melanjutkan. Auto-bind gagal secara diam-diam untuk sesi itu; pengembang menggunakan jalur tempel URL hingga port tersebut bebas.

Status

  • Paket: @extentos/mcp-server di npm (lisensi MIT)
  • Mesin: Node.js 20+
  • Pra-1.0 — API dapat berubah antar versi minor hingga loop pengujian perangkat keras ditutup. Sematkan ke versi yang tepat jika Anda memerlukan reproduktibilitas lintas sesi.

Terkait

  • Mulai cepat dengan agen AI — instal server dan jalani loop dev nyata
  • Referensi alat — API lengkap per alat
  • Konfigurasi — variabel lingkungan, file konfigurasi, pengaturan waktu instalasi
  • Auth — alur kode-perangkat, penautan akun, perintah auth CLI
  • Agen yang didukung — instruksi instalasi per host
  • Arsitektur — bagaimana server MCP cocok dengan sistem Extentos yang lebih luas
  • Transport vs simulasi aplikasi — apa yang sebenarnya dilakukan simulator yang dijembatani MCP

Terkait

Mulai cepat dengan agen AI

Instal server MCP Extentos dan biarkan agen AI Anda menyusun kemampuan kacamata pintar Meta Ray-Ban ke dalam aplikasi iOS atau Android asli. Gratis untuk memulai.

Arsitektur

Bagaimana Extentos menyatu — agen AI, server MCP, SDK Kotlin/Swift asli, tiga transport (Meta DAT, sim browser, sim dalam memori lokal), dan backend.

Transport vs simulasi aplikasi

Mock Device Kit Meta mensimulasikan lapisan transport; Extentos mensimulasikan lapisan aplikasi — suara, pengambilan foto, dan pengalaman penggunaan. Keduanya penting.

Instal server MCP

Cara menginstal server MCP Extentos (@extentos/mcp-server) di agen pengkodean AI apa pun yang kompatibel dengan MCP — Claude Code, Cursor, Windsurf, Cline, dan lainnya. Perintah instalasi per host, lokasi file konfigurasi, cuplikan JSON yang dapat disalin-tempel, langkah mulai ulang dan verifikasi, penyematan versi, pembaruan, pemecahan masalah kesalahan umum, dan instruksi penghapusan instalasi. Jalur instalasi terverifikasi untuk setiap host yang didukung.

Referensi alat

Server MCP Extentos mengekspos serangkaian alat deterministik yang ketat di seluruh kategori deterministik — penemuan + referensi SDK, pembuatan, panduan, validasi, simulasi, produksi, konfigurasi agen, dan pencarian. Referensi per alat yang mencakup parameter input, bentuk respons, kapan harus memanggil setiap alat, dan contoh yang berhasil. Diverifikasi dari definisi alat aktual dan implementasi handler di @extentos/mcp-server.

Konfigurasi

Konfigurasikan @extentos/mcp-server — variabel lingkungan, file status ~/.extentos (id instalasi, auth, persetujuan), dan vendor default.

Auth

Cara kerja auth Extentos. Hampir semuanya berjalan tanpa akun; hanya simulator browser yang memerlukan masuk, melalui alur kode-perangkat OAuth 2.0. Tanpa pembayaran.

Agen yang didukung

Perbedaan per host untuk agen pengkodean AI yang menjalankan Extentos — Claude Code, Cursor, Windsurf, Cline, bawaan IDE. Cakupan, jangkauan lintas platform, dukungan MCP.

Kacamata pintar Apple

Kacamata pintar Apple untuk pengembang pihak ketiga — akses SDK, model aplikasi, distribusi, kapabilitas & AI, dan posisinya dalam lanskap kacamata pintar 2026.

Instal server MCP