Extentos MCP
resmiExtentos 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
getPlatformInfoto 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
getCodeExampleandgetCapabilityGuideto get Kotlin/Swift patterns for voice assistants, display interactions, transcription, and other SDK primitives. - Scaffold a complete connection module — run
generateConnectionModuleto bootstrap Gradle/SPM wiring, permissions, manifest entries, and the Extentos connection page into a native project. - Validate project correctness before testing — invoke
validateIntegrationto check manifest declarations, dependency versions, permission coverage, and bootstrap calls against declared capabilities. - Provision and drive simulator sessions — call
createSimulatorSessionto mint a browser-based session, then useinjectTranscript,assertToolCalled, andgetEventLogto run agent-driven end-to-end tests without a human. - Audit production readiness — run
getProductionChecklistandgetCredentialGuideto 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.
| Alat | Fungsinya |
|---|---|
| getPlatformInfo | Mengembalikan katalog platform statis — versi pustaka, daftar kemampuan SDK yang disediakan kacamata, tingkatan per vendor. Selalu menjadi panggilan pertama yang tepat. |
| getCapabilityGuide | Penggunaan 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. |
| getCodeExample | Komposisi 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
| Alat | Fungsinya |
|---|---|
| generateConnectionModule | Penyiapan 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 / setConnectionPageConfig | Baca / tulis konfigurasi halaman koneksi per proyek (token tema + visibilitas bagian) yang disimpan dasbor/server. |
| regenerateConnectionPageFile / adoptConnectionPageFile | Sinkronkan 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).
| Alat | Fungsinya |
|---|---|
| getAssistantConfig / setAssistantConfig | Baca 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. |
| getGatewayUsage | Baca 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.
| Alat | Fungsinya |
|---|---|
| getCredentialStatus | Baca apakah kunci API OpenAI (BYOK) proyek dan identitas build Meta DAT telah ditetapkan — hanya petunjuk tersamar + diperbarui pada, tidak pernah nilainya. |
| setCredential | Mulai 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)
| Alat | Fungsinya |
|---|---|
| getProjectAnalytics | Baca 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.
| Alat | Fungsinya |
|---|---|
| getVoiceCommandGuidance | Analisis 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(). |
| getPermissions | Turunkan 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).
| Alat | Fungsinya |
|---|---|
| inspectIntegration | Snapshot proyek hanya-baca — manifes, hash file yang dihasilkan, daftar dependensi, konfigurasi halaman koneksi. Jalankan sebelum pengeditan manual untuk memahami status saat ini. |
| validateIntegration | Pemeriksaan 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.
| Alat | Fungsinya |
|---|---|
| createSimulatorSession | Dapatkan-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. |
| ensureSimulatorBrowser | Buka + konfirmasi tab browser simulator yang terhubung — prasyarat untuk alur kamera dan injeksi. |
| completeAuthLink | Setelah 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. |
| getEventLog | Ambil 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. |
| getSimulatorStatus | Baca status terkini sesi langsung — fase, hardware-ready, peran terlampir, aliran kapabilitas aktif, nilai toggle saat ini. |
| injectTranscript / injectAssistantUtterance / assertToolCalled | Dorong frasa bangun atau giliran asisten, lalu periksa alat mana yang dipanggil model — loop E2E berbasis agen, tanpa perlu manusia. |
| setSimVideo / setSimDevice | Salurkan video uji ke kamera simulasi; ganti model perangkat simulasi (mis. rayban_display untuk melatih jalur tampilan). |
| getDisplayState / injectInput | Baca pohon tampilan yang saat ini dirender + dorong input tampilan (pilih / navigasi / kembali). |
9. Produksi (2 alat)
Pemeriksaan pra-pengiriman.
| Alat | Fungsinya |
|---|---|
| getProductionChecklist | Daftar 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. |
| getCredentialGuide | Panduan 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)
| Alat | Fungsinya |
|---|---|
| searchDocs | Cari 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/):
| Variabel | Default | Fungsinya |
|---|---|---|
| EXTENTOS_BACKEND_URL | Backend produksi | Timpa URL backend (tools/util/backendClient.ts). Untuk pengembangan lokal Extentos itu sendiri. |
| EXTENTOS_CONFIG_DIR | ~/.extentos | Timpa direktori config/auth (telemetry/consent.ts). |
| EXTENTOS_TELEMETRY | tidak disetel (default-persetujuan) | Setel ke 0 untuk menolak telemetri tanpa menjalankan perintah persetujuan CLI. |
| EXTENTOS_NO_AUTO_OPEN | tidak disetel | Setel 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:
| Subperintah | Fungsinya |
|---|---|
| login | Tautkan instalasi ini ke akun Extentos melalui alur kode-perangkat (proaktif — berguna sebelum sesi simulator pertama, atau setelah logout untuk menautkan ulang). |
| logout | Hapus ~/.extentos/auth.json. Instalasi kembali ke tingkat anonim; panggilan sesi simulator berikutnya akan memicu ulang alur kode-perangkat. |
| whoami | Belum diimplementasikan (stub Fase-0). Akan mencetak installId, accountId (jika tertaut), tingkat, masa berlaku auth. |
| setup | Pra-penerbangan lingkungan build lokal — memeriksa PAT GitHub Packages (read:packages) yang dibutuhkan artefak Meta DAT transitif, beserta prasyarat dependensi lainnya. |
| accept-privacy | Merekam persetujuan privasi (mengaktifkan unggahan telemetri). |
| decline-privacy | Merekam penolakan privasi (menonaktifkan unggahan telemetri). |
| status | Cetak status persetujuan, ID instalasi, akun tertaut, versi MCP/library. |
| update | Periksa 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:31337sekali, lalulocalhost:31337dari perangkat - Ponsel seluler atau agen yang dihosting di cloud: pemeriksaan waktu habis. Agen menggunakan jalur tempel URL sebagai gantinya —
createSimulatorSessionmengembalikan cuplikanBuildConfig.EXTENTOS_SESSION_URL(Android) atau payloadextentos.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-serverdi 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