mcpField
G
glass

glass

ローカル
fixedwidth.tech開発ツール202 週間前に更新

glass について

glassは、コーディングエージェント向けにネイティブGUIアプリを起動・操作するMCPサーバーです。画面取得、セマンティックな操作、入力、ログ、変化検出を組み合わせ、アプリの構築からデバッグまでを支援します。

主な機能

  1. 01ネイティブGUIアプリの起動と操作
  2. 02画面取得と視覚変化の検出
  3. 03アクセシビリティツリーによる操作対象の特定
  4. 04マウスとキーボード入力
  5. 05アプリケーションログの読み取り

活用シーン

  1. 01GUIアプリの不具合の再現とデバッグ
  2. 02フォームなどのUI操作の検証
  3. 03ピクセル入力による独自描画アプリのテスト

MCP 対応

MCPクライアントにGUIアプリの起動、観察、操作、デバッグ用ツールを提供します。stdioまたはネットワークHTTPでMCPに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

glass

CI glass MCP server

コーディングエージェントが構築中のアプリを操作できるようにします — スクリーンショットを毎回撮らずに、アプリを起動し、操作し、結果を検証できます。

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 は、クリック、スクロール、テキスト入力のサポート状況と、それぞれの操作がデスクトップに影響するかどうかを報告します。

動作を見る

glass 上で GTK アプリをデバッグするエージェント

GUI アプリを構築するエージェントは、glass 上でアプリを実行し、アクセシビリティツリーから(スクリーンショットを使わずに)バグを再現して、コードを修正し、再検証します。これは、エージェントが単独では完結できなかったループです。 実際に試す。

60 秒で試す

  1. Releases ページからお使いのプラットフォーム用の glass をダウンロードし、エージェントに接続します — glass はあらゆる MCP ホストで動作します(動作確認済みのホストはこちら)。

  2. サンプルアプリを用意します — このリポジトリをクローンするか、examples/tasks-demo/tasks_demo.py をダウンロードします(Linux では sudo apt install python3-gi gir1.2-gtk-4.0 が必要です)。

  3. エージェントに次の内容を貼り付けます。

    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 にまとめます。記録はデフォルトで無効です。保持されたアプリのコンテンツには機密データが含まれる場合があります。

インストールの概要

リリースページからお使いのプラットフォーム向けの最新ビルドをダウンロードし、ホストをセットアップします。

すべてのアセットは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)WindowsAndroid (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をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。