extentos について
Extentosは、既存のiOS・Androidアプリにスマートグラス機能を追加するコーディングエージェント向けMCPサーバーです。機能の調査、コード生成、統合チェックに加え、Meta製グラス向けのブラウザーシミュレーションを提供します。
主な機能
- 01SDK機能の確認
- 02Android・iOS接続モジュールの生成
- 03統合状態の検査と検証
- 04ブラウザーでのE2Eシミュレーター
- 05バージョン管理されたドキュメント検索
活用シーン
- 01モバイルアプリへのカメラ撮影機能の追加
- 02音声起動機能の開発
- 03実機なしでのグラス連携テスト
MCP 対応
ドキュメントの参照、アプリ連携の生成と検証、ブラウザーシミュレーターの操作に使うMCPツールをコーディングエージェントに提供します。現時点ではMeta製スマートグラスに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
38掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sections | array | いいえ | |
| glasses | enum | いいえ | 対象となるメガネのベンダー。標準値は 'meta' です。'meta_rayban' は旧式のエイリアス(同じベンダー)で、互換性のために維持されています。'android_xr' は実験版/プレビュー(Android XR の投影型メガネ。出荷済みハードウェアはありません)、'brilliant' はプレビュー(Brilliant Labs Halo と Frame。Extentos BLE トランスポートは両プラットフォームで構築済みで、Halo は注文可能ですが、ベンダーによると初回出荷は 2026 年 8 月初旬のため、デバイス上ではまだ動作しておらず、エミュレーターもありません)。どちらもシミュレーターセッションを作成できるため、そのデバイス ID でのアプリの動作は現時点でテストできます。コードのスキャフォールディングは引き続き Meta のみです。⚠️ プラットフォーム制約:'android_xr' は Android 専用で、platform:'ios' を指定した作成は拒否されます。Google のモデルは投影型アクティビティであり、Android のアクティビティなので、iOS トランスポートは存在できません。これをシミュレートすると、どのデバイスにも存在しない組み合わせをアプリに学習させることになります。'meta' と 'brilliant' はどちらのプラットフォームでも作成できます。meta | android_xr | brilliant | meta_rayban |
| expand | array | いいえ | コンパクトなデフォルト応答に追加できる任意の拡張です。'schema' = 完全な JSON Schema ドキュメント。'capabilities.full' = プリミティブごとの params/payload/requires/constraints。'capabilities.advanced' = droppedPrimitives + futurePrimitives(参考情報のみ)。 |
詳細
Extentos MCP サーバー
AI コーディングエージェントに、スマートグラスアプリを構築するためのツールを提供します。
Extentos は MCP(Model Context Protocol)サーバーです。Claude Code、Cursor、Cline などのエージェントを使って、あらゆる Android または iOS アプリにスマートグラス機能(カメラ撮影、音声トリガー、ライブ文字起こし、音声再生)を追加できます。ツールは決定論的です。ハードウェアなしでエンドツーエンドテストを行える、機能の検出、ひな形の生成、検証、ブラウザーベースのシミュレーターを利用できます。
現在 Meta のスマートグラス(Ray-Ban Meta、Oakley Meta、Meta Ray-Ban Display)に対応しており、当初から複数ベンダーに対応するアーキテクチャを採用しています。
このリポジトリは @extentos/mcp-server の公開リポジトリです。リリース、変更履歴、課題を管理しています。パッケージは npm で公開されています。
インストール
Claude Code
claude mcp add extentos -- npx -y @extentos/mcp-server@latest
Cursor — ワンクリックで追加:
Cline/あらゆる MCP クライアント
{
"mcpServers": {
"extentos": {
"command": "npx",
"args": ["-y", "@extentos/mcp-server@latest"]
}
}
}
Node 20 以降が必要です。
エージェントができること
| ツールグループ | 内容 |
|---|---|
| 検出 | getPlatformInfo、getCapabilityGuide、getCodeExample — SDK の機能カタログ、機能ごとの Kotlin + Swift の呼び出し形式、標準的なエンドツーエンドのパターン(音声 Q&A、写真の説明、ライブ文字起こし UI など) |
| ひな形生成 | generateConnectionModule — アプリ用の接続 UI、マニフェスト、プラットフォーム設定を生成します(Android または iOS) |
| ガイダンス | getVoiceCommandGuidance、getPermissions — エージェントが推測せずに参照できる実装ガイダンス |
| 検証 | inspectIntegration、validateIntegration — リポジトリ内の統合を決定論的にチェックします |
| シミュレーション | createSimulatorSession、getEventLog、getSimulatorStatus — 通信方式のみを置き換え、本番と同じ SDK コードを実行するブラウザーシミュレーターです。エージェントが操作し、イベントログを読み取って動作を検証します |
| 本番環境 | getProductionChecklist、getCredentialGuide — シミュレーターから実際のグラスへ移行するための手順 |
| ドキュメント | searchDocs — バンドルされたバージョン管理済みのドキュメントトピック |
エージェントが通常実行するワークフロー:機能を検出 → 接続モジュールのひな形を生成 → SDK に基づいてハンドラーコードを記述 → 検証 → エンドツーエンドでシミュレーション → 本番環境チェックリストを確認。
ツール
- getPlatformInfo — SDK の機能カタログ、バージョン/アーティファクト情報、プラットフォームの制約
- getCapabilityGuide — 機能ごとの呼び出し形式を Kotlin と Swift で解説し、注意点も紹介
- getCodeExample — エンドツーエンドの標準的なパターン(音声での Q&A、写真の説明、ライブ文字起こし UI など)
- getMigrationGuide — Meta DAT を直接使用する構成から Extentos への移行対応表と切り替え計画
- generateConnectionModule — 接続 UI、マニフェスト、プラットフォーム設定をアプリに生成
- getConnectionPageConfig — 管理対象の接続ページ設定を読み取り
- setConnectionPageConfig — 管理対象の接続ページ設定を更新
- regenerateConnectionPageFile — 設定変更後に管理対象の接続ページファイルを再生成
- adoptConnectionPageFile — 既存の接続ページファイルを管理対象の設定に取り込み
- getAssistantConfig — 管理対象の音声アシスタント設定(モデル、音声、メモリ、ウェイク音)を読み取り
- setAssistantConfig — 管理対象の音声アシスタント設定を更新
- listProjectSounds — プロジェクトにアップロードされたカスタムサウンドを一覧表示
- addProjectSound — プロジェクトにカスタムサウンド(確認音、ウェイク音)をアップロード
- shutter — アクティブなシミュレーターセッションでカメラのシャッターを切る
- getGatewayUsage — プロジェクトの AI ゲートウェイの使用状況と利用量
- getCredentialStatus — 設定済みの認証情報(Meta DAT、AI プロバイダー)を確認
- setCredential — プロジェクトの認証情報を保存
- getProjectAnalytics — プロジェクトのメガネ連携に関する利用状況の分析
- getVoiceCommandGuidance — 音声トリガーとウェイクフレーズの実装ガイド
- getPermissions — プラットフォームごとに連携で必要となる正確な権限セット
- inspectIntegration — リポジトリ内の連携の現在の状態を読み取り
- validateIntegration — 連携を決定論的に検証(マニフェスト、設定、接続)
- createSimulatorSession — エンドツーエンドテスト用のブラウザーシミュレーターセッションを作成
- ensureSimulatorBrowser — セッション用のシミュレーターブラウザータブを開く/接続
- completeAuthLink — デバイスコードによるサインインフローを完了
- getEventLog — セッションのイベントログ(トランスポート、音声、カメラ、発話、切り替え、ストリーム、システム)を読み取り
- injectTranscript — 装着者が話したかのように、実行中のアプリへ音声の文字起こしを注入
- injectAssistantUtterance — 発話を使って音声アシスタントをエンドツーエンドで動作させる(実際のプロバイダーセッション)
- assertToolCalled — 名前/引数が一致するアシスタントのツール呼び出しイベントを待機(エージェントの E2E ループ)
- getSimulatorStatus — セッションのライブ状態:フェーズ、ロール、開いているストリーム、鮮度、テスト動画
- setSimVideo — テスト動画をシミュレートされたカメラに入力
- setSimDevice — シミュレートされたメガネのモデルを切り替え
- getDisplayState — 描画されたディスプレイツリーと操作可能な要素 ID を読み取り(Ray-Ban Display)
- injectInput — Neural Band のジェスチャーのように、ディスプレイ入力(選択/移動/戻る)を操作
- injectHardwareButton — ハードウェアの撮影ボタンをシミュレート
- getProductionChecklist — シミュレーターから実際のメガネへ移行する手順
- getCredentialGuide — Meta DAT 認証情報の取得と設定方法
- searchDocs — バンドルされたバージョン管理済みドキュメントのトピックを検索
全体の仕組み
- アプリはネイティブ SDK に依存します。Android の場合は
com.extentos:glasses(Maven Central)、iOS の場合は Swift パッケージです。 - コードは独自のハンドラークラスから機能のプリミティブを購読します。
glasses.audio.transcriptions()、glasses.camera.capturePhoto()、glasses.audio.speak()などです。 - シミュレーターは異なる基盤上で動作する同じアプリです。Bluetooth の代わりに WebSocket トランスポートを使うため、エージェントが検証した動作をハードウェアでも利用できます。
検出、検証、ガイダンスのツールは匿名で利用できます。ブラウザーシミュレーターセッションの作成とスキャフォールディングには無料アカウントが必要です。必要に応じて、サーバーがエージェント(およびあなた)をデバイスコードによるサインインへ案内します。
コミュニティ統合
Extentos を使って構築・評価した独立プロジェクト:
- EgoFlow — 一人称視点動画の撮影プラットフォームです。その
extentosブランチでは、Extentos Android SDK を介してメガネとの接続とライブ動画を EgoFlow の既存の RTMP トランスポートおよびバックエンドに接続し、実際の Ray-Ban Meta メガネで一連の動作を検証しました。 - 音声トリガーによる撮影の POC — 独立した MIT ライセンスの iOS 概念実証です。登録済みのウェイクフレーズをトリガーとして
glasses.camera.capturePhotoを呼び出し、MCP ツールを使ってブラウザーシミュレーターからヘッドレスで実行します。リポジトリには実装と実行時の録画が含まれています。
リンク
問題とフィードバック
バグ報告やフィードバックを歓迎します — 問題を報告してください。このパッケージは 1.0 より前のバージョンのため、マイナーバージョン間でツールの仕様が変わる可能性があります。
セキュリティに関する報告については、SECURITY.md をご覧ください — 脆弱性について公開の問題を作成しないでください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。