glass について
glassは、コーディングエージェント向けにネイティブGUIアプリを起動・操作するMCPサーバーです。画面取得、セマンティックな操作、入力、ログ、変化検出を組み合わせ、アプリの構築からデバッグまでを支援します。
主な機能
- 01ネイティブGUIアプリの起動と操作
- 02画面取得と視覚変化の検出
- 03アクセシビリティツリーによる操作対象の特定
- 04マウスとキーボード入力
- 05アプリケーションログの読み取り
活用シーン
- 01GUIアプリの不具合の再現とデバッグ
- 02フォームなどのUI操作の検証
- 03ピクセル入力による独自描画アプリのテスト
MCP 対応
MCPクライアントにGUIアプリの起動、観察、操作、デバッグ用ツールを提供します。stdioまたはネットワークHTTPでMCPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
glass
コーディングエージェントが構築中のアプリを操作できるようにします — スクリーンショットを毎回撮らずに、アプリを起動し、操作し、結果を検証できます。
Rust 製の MCP サーバーです。AI コーディングエージェントが外部のネイティブ GUI アプリケーションに対して、構築 → 確認 → 操作 → デバッグの一連のループを完結できるようにします。
glass を使うと、エージェントは GUI アプリを起動し、画面の内容をキャプチャし、マウスとキーボードの入力を送信し、アプリのログを読み取り、視覚的な変化を検出できます。そのため、コーディングエージェントは「これで問題なさそうですか?」とユーザーに尋ねることなく、自力で UI アプリケーションを構築してデバッグできます。
glass はアプリを外部のブラックボックスとして操作するため、ツールキットや言語に関係なく、あらゆるネイティブ GUI アプリで動作します。プラットフォームに依存しないコアを備え、Linux のバックエンド(X11 と Wayland)、Windows のバックエンド、(任意のホストから adb 経由で操作する AVD エミュレーター用の)Android バックエンド、(入力とアクセシビリティツリーに idb_companion を使い、2 本指のピンチ操作にも対応する、xcrun simctl 経由で Simulator 上のネイティブアプリを操作する)iOS バックエンド、そして macOS のバックエンドがあります。
同じ入力ツールをすべてのバックエンドで使用できます。Linux のデフォルトのディスプレイとモバイルエミュレーターでは入力がデスクトップから分離されていますが、ネイティブの Windows と macOS では現在、デスクトップと共有されています。scope: "session" を指定した glass_capabilities は、クリック、スクロール、テキスト入力のサポート状況と、それぞれの操作がデスクトップに影響するかどうかを報告します。
動作を見る

GUI アプリを構築するエージェントは、glass 上でアプリを実行し、アクセシビリティツリーから(スクリーンショットを使わずに)バグを再現して、コードを修正し、再検証します。これは、エージェントが単独では完結できなかったループです。 実際に試す。
60 秒で試す
-
Releases ページからお使いのプラットフォーム用の glass をダウンロードし、エージェントに接続します — glass はあらゆる MCP ホストで動作します(動作確認済みのホストはこちら)。
-
サンプルアプリを用意します — このリポジトリをクローンするか、
examples/tasks-demo/tasks_demo.pyをダウンロードします(Linux ではsudo apt install python3-gi gir1.2-gtk-4.0が必要です)。 -
エージェントに次の内容を貼り付けます。
glass を使って、アクセシビリティを有効にした状態で
examples/tasks-demo/tasks_demo.pyを実行してください。バグがあります。Add をクリックしても、入力したタスクが追加されません。UI を操作してアクセシビリティツリーを確認しながら(スクリーンショットを撮るだけではなく)再現し、コード内のバグを見つけて修正し、タスクが実際に表示されることを検証してください。
エージェントはアプリを起動し、アクセシビリティツリーからバグを再現して、1 行の接続ミスを修正し、タスクが表示されることを確認します。つまり、構築 → 確認 → 操作 → デバッグのループを、最初から最後まで実行します。(問題がある場合は glass-mcp doctor で環境を確認できます。)
実際のループ
エージェントはフォームに入力し、「保存」をクリックして、アプリが成功を報告することを確認できます。アプリがアクセシビリティツリーを公開している場合、エージェントは名前付きのコントロールを操作し、テキストから変更を確認します。
glass_start { "run": ["python3", "app.py"] }
glass_do { "actions": [
{ "action": "set_value",
"target": { "query": "account", "role": "TextField", "states": ["enabled"] },
"text": "hello" },
{ "action": "click_element",
"target": { "query": "Save", "role": "Button", "states": ["enabled"] },
"mode": "auto" },
{ "action": "wait_for_element", "name": "Saved" }
] }
glass_logs
対象が一意でない場合や、直接操作できるほどよく分かっていない場合は、glass_find_elements で候補を調べます。glass_a11y_snapshot でアプリのコントロールを確認します。クリックモードとプラットフォームごとの動作については、ツールリファレンスを参照してください。
アクセシビリティツリーのないキャンバスやカスタム描画アプリでは、代わりにピクセル単位で操作します。glass_screenshot、glass_click {x,y}、glass_diff を使います。glass_diff は changed_pct と bbox をテキストで返すため、スクリーンショット間の定型的な確認ではビジョントークンを消費しません。このループがこの形になっている理由については、構築 → 確認 → 操作 → デバッグのループを参照してください。
アプリの停止後に実行内容を確認するには、--trace-dir を指定してセッション証跡の記録を有効にします。Glass はツールへの入力と要求された結果を上限付きストレージに保持し、glass-mcp trace inspect と trace export でトレースを検証して、その証跡を ZIP にまとめます。記録はデフォルトで無効です。保持されたアプリのコンテンツには機密データが含まれる場合があります。
インストールの概要
リリースページからお使いのプラットフォーム向けの最新ビルドをダウンロードし、ホストをセットアップします。
- Linux — docs/how-to/setup-linux.md(X11 または Wayland、
Xvfb/swayと bubblewrap) - Windows — docs/how-to/setup-windows.md(ビルド済みの
.exeと Sandboxie) - macOS — docs/how-to/setup-macos.md(公証済みの
.dmgをインストール。ビルドは不要です) - Android — docs/how-to/setup-android.md(任意のホストから AVD エミュレーターを使用)
- iOS — docs/how-to/setup-ios.md(Simulator、ホストは macOS のみ)
すべてのアセットはdocs/reference/platforms.mdに記載されています。コンパイルしたい場合や、公開済みのアセットがないアーキテクチャを使っている場合は、docs/how-to/build-from-source.mdを参照してください。実行するのは cargo build だけです。
次に、glass をエージェントに接続し、glass-mcp doctor を実行して環境を確認します。初めて使う方は、チュートリアルに沿って進めれば、最初の操作を確実に成功させられます。
フルツールボックスが引き続きデフォルトです。エージェントのツール定義を減らすには、glass-mcp --tool-profile lean で起動し、アクションには glass_do を使います。セッションを開始せずにどちらのツール一覧も確認するには glass-mcp tools --json を実行してください。ツールプロファイルを参照してください。
うまく操作する — glass-drive スキル
glass はアプリ連携もスキルもなく実行できますが、オープンな glass-drive Agent Skill を使うと、エージェントの操作の信頼性が大幅に向上します。このスキルにより、エージェントが最初のターンを「安価に確認してから見直す」ループの再発見に費やすことを防げます。glass をエージェントに使わせる際に、最も効果の大きい追加策は、このスキルのインストールです。
プラットフォームのサポート
✓ 対応 · ◑ 一部対応 · – 非対応 · 🚧 対応予定。
| 機能 | Linux (X11 + Wayland) | Windows | Android (AVD) | iOS (Simulator) | macOS |
|---|---|---|---|---|---|
| キャプチャ · 入力 · ウィンドウ · クリップボード · ログ | ✓ | ✓ | ✓ | ✓ | ✓ |
| アクセシビリティ(セマンティックな指定) | ✓ AT-SPI | ✓ UI Automation | ✓ UIAutomator | ✓ idb | ✓ AX |
| 隔離/サンドボックス化 | ✓ bubblewrap | ✓ Sandboxie | ✓ the emulator VM | ✓ the Simulator | ✓ Seatbelt |
| デスクトップに干渉しない入力 | ✓ プライベートディスプレイ | – 共有デスクトップ | ✓ エミュレーター | ✓ Simulator | – 共有デスクトップ |
| ディスプレイの分離(デスクトップ上にアプリを表示しない) | ✓ ヘッドレス Xvfb / sway | – VM が必要 | ✓ ヘッドレスエミュレーター | ✓ ヘッドレス simctl boot | – 共有デスクトップ |
全機能の対応状況、機能ごとの詳細、システム要件については、 docs/reference/platforms.mdをご覧ください。トランスポートには、デフォルトの stdio または ネットワーク HTTP を介した MCP を使用します。
ドキュメント
チュートリアル、ハウツーガイド、リファレンス、解説を含むドキュメント一式は、
**docs/**にあります。リリースノートはCHANGELOG.mdをご覧ください。また、
1.0 リリースで保証される内容については安定性とバージョニングをご覧ください。
貢献をご検討ですか? CONTRIBUTING.mdにはPRが通過する必要のあるチェック項目が記載されています。また、
変更の検証では、お使いのホストで実行できないプラットフォームコードの検証方法を説明しています。
ライセンス
glass はオープンコアで、Apache-2.0ライセンスです。詳細はLICENSE-APACHEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。