mcpField
G
glovebox

glovebox

ローカル
github.com/vpatel9202AI・エージェント04 日前に更新

glovebox について

glovebox は、macOS 向けのコーディングエージェント用コンピューター操作 MCP サーバーです。永続 JavaScript セッションで複数の操作を実行し、通常はアクセシビリティの差分を読み取りながら、他のアプリを表示したままバックグラウンド入力を行えます。

主な機能

  1. 01永続 JavaScript セッションとスクリプト
  2. 02アクセシビリティツリーと変更差分
  3. 03クリック、入力、ドラッグ、スクロール
  4. 04対象アプリへのバックグラウンド入力
  5. 05スクリーンショットとピクセル座標による代替操作

活用シーン

  1. 01コーディングエージェントによる macOS アプリ操作
  2. 02アクセシビリティ状態による操作結果の確認
  3. 03状態を保持した複数段階の UI フロー実行

MCP 対応

MCP stdio 経由でコンピューター操作ツールを提供します。シェルコマンドを実行できるエージェントは CLI からも利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"vpatel9202-glovebox": {
"command": "npx",
"args": [
"-y",
"@vashp2029/glovebox"
]
}
}
}
起動コマンドnpx -y @vashp2029/glovebox

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@vashp2029/glovebox0.3.2

ツール

2

掲載時のツール一覧 · 3 日前に更新

パラメーター型必須説明
codestringはい実行する JavaScript。トップレベルの await に対応しています。
titlestringいいえ操作ログに記録する、この手順を示す短い名前。
timeout_msintegerいいえ時間制限(ミリ秒、デフォルトは 120000)。

詳細

glovebox

CI npm License: MIT Platform: macOS

macOS上のコーディングエージェント向けコンピューター操作:各ステップを1回のJavaScript呼び出しで実行し、スクリーンショットではなくアクセシビリティの差分を使い、画面はあなたのために空けておきます。

エージェントがバックグラウンドでCalculatorを操作して結果をTextEditに入力する間、SafariでWikipediaを閲覧する人

const calc = await gb.getApp("Calculator");
await calc.pressKey("Escape");
await calc.typeText("6*7=");
await calc.getAXState();
Calculator — window 0 "Calculator" — image 460x816 — changes since last read (~ changed, + added):
~					8 scroll area id=StandardInputView;value:42
~						9 text "Edit field" value="42"

次の呼び出しでも、calcのバインドは維持されます。エージェントはクリックごとにツールを1回呼び出すのではなく、各ステップで数行のコードを書き、ウィンドウの新しい画像ではなく、変更内容を読み取ります。

  • クリックごとのツール呼び出しではなく、ステップごとのスクリプト。 バインドとヘルパー関数は呼び出しをまたいで保持されるため、1回の呼び出しでクリック、入力、ループ、読み取りを実行できます。
  • スクリーンショットではなく、差分。 デフォルトではアクセシビリティツリーをテキストとして読み取り、2回目以降の読み取りでは変更箇所だけを表示します。ツリーが空の場合(Citrix、キャンバス)には、スクリーンショットとピクセル座標でのクリックを利用できます。
  • デフォルトでバックグラウンド操作。 別のアプリで作業を続けながら、キー入力、クリック、ドラッグ、スクロールを対象アプリに送信できます。カーソルはその場に留まり、エージェントの操作内容は描画カーソルで表示されます。

著者が実施したテストでは、6種類のセットアップで12個のタスク(各2回実行)を評価しました。gloveboxは総コストが最も低く、$1.41〜$5.67に対して$0.57でした。また、ラウンドトリップが最も少なく、成功数が最も多い結果となりました。

最初に知っておくこと: macOS専用で、Appleシリコン搭載のmacOS 27でテスト済みです。小さなヘルパーアプリのビルドにはXcodeコマンドラインツールが必要で、アクセシビリティと画面収録の許可を付与します。バックグラウンド入力ではmacOSの非公開呼び出しを2つ使用し、フォアグラウンドへのフォールバックもあります。エンドツーエンドでテスト済みなのはClaude Codeのみです。名前に反して、これはサンドボックスではなく、glovebox-mcpとは無関係です。

クイックスタート

Node 20.10+とXcodeコマンドラインツール(xcode-select --install)が必要です。

npm install -g @vashp2029/glovebox
glovebox signing --create   # optional: macOS keeps the grants across helper rebuilds
glovebox setup              # builds the helper, walks through permissions
glovebox doctor             # every line should say ok
glovebox smoke              # a real end-to-end test on Calculator
claude mcp add --scope user glovebox -- glovebox mcp

setupはGlovebox Helper.appを~/.glovebox/にビルドし、「システム設定」>「プライバシーとセキュリティ」> アクセシビリティおよび画面とシステムオーディオの収録で有効にするよう求めます。入力監視は任意で、有効にするとEscapeキーで停止できるようになります。ヘルパーは独立したアプリなので、1回許可すればすべてのエージェントとターミナルで使えます。signing --createは、ヘルパーだけに署名する自己署名証明書をログインキーチェーンに作成します。これがない場合、macOSはビルドのたびに新しいアプリとして扱います。アップグレードに関する注意を参照してください。

対応状況: Claude Code(エンドツーエンドでテスト済み)。Codex、Grok CLI、OpenCode、Gemini CLI、Cursorには設定手順が記載されていますが、動作確認はしていません。シェルコマンドを実行できるエージェントであれば、glovebox runを利用できます。docs/agents.mdを参照してください。

Claude Code 組み込みのコンピューター操作を使わない理由

お使いの環境に合うなら、これがより簡単な選択肢です。インストール不要で、Anthropic がサポートしており、スクリーンショットにターミナルが映り込むこともありません。glovebox は、これが合わない場合のためのものです。Anthropic のドキュメントを参照し、2026-11-03 に確認しました。

Claude Code 組み込みglovebox
ほかのアプリClaude の作業中は非表示表示されたまま。入力はバックグラウンドで対象アプリに送られます
デフォルトの読み取り方法縮小されたスクリーンショットアクセシビリティテキストの差分
利用できるユーザーclaude.ai を通じて Pro、Max、Ultra が利用可能。Team、Enterprise、Bedrock、Google Cloud、Foundry は対象外誰でも利用可能。モデルやアカウントと通信することはありません
スクリプトによる実行-p モードでは利用不可ベンチマークではスクリプトから無人で実行できます。claude -p 自体はまだテストしていません
セッションロックファイルによって一度に 1 つに制限グローバルロックなし。名前付きセッションを並行して実行できます
承認の記憶このセッションのみ「このセッションで許可」または「常に許可」
ブラウザー表示のみブラウザーを承認すると完全に操作できます。操作性が高まる一方で、リスクも高まります

**以下のベンチマークには、Claude Code の組み込みツールは含まれていません。**そのため、この表は実測結果ではなく、ドキュメントに記載された動作を比較しています。

ベンチマーク

2026-11-03 に、macOS のタスク 12 件、セットアップ 6 種類を各 2 回実行しました。すべてのセットアップで同じモデル(Claude Sonnet 5.5、medium effort)、プロンプト、エージェントループを使用し、ツールだけを変更しました。タスクのプロンプトではツールを指定せず、テスト対象のツールを使わない別のチェックで各結果を判定しました。

セットアップ成功往復回数返された画像定価でのコスト
glovebox24/2412821$0.57
Claude が操作する Codex cua_repl20/2416630$1.41
glovebox が実行する Anthropic ツールセット22/24187179$1.65
agent-desktop22/2420422$2.32
open-computer-use21/24244385$2.76
Peekaboo20/24359183$5.67

各セットアップの往復回数とタスクあたりのコストの中央値

glovebox が優位でなかった点。finder-rename では最も安価ではありませんでした(glovebox の $0.061 に対し、Codex cua_repl は $0.041)。タスク 12 件中 3 件で往復回数が最少ではなく、12 件中 3 件で最速でもありませんでした。remote-desktop では 36 秒かかり、ほかの 2 つは 22 秒と 23 秒でした。

この結果をどの程度信頼できるか:

  • タスクを作成し、1 台の Mac で一度にテストを実行したのは私です。タスクのいくつか(bulk-entry、remote-desktop、coexistence)は、glovebox が実現を目指した機能に合わせて設計されています。
  • タスクごとの実行回数は 2 回なので、成功数にはほとんど意味がありません。24/24 と 20/24 の差に統計的有意性はありません。より確かな結果はコスト差です。タスクごとに比較しても、12 件中少なくとも 11 件で glovebox のコストがほかの各セットアップより低くなっています。
  • テストした glovebox は、0.3.0 としてリリースされたコードです。バージョンをまだ更新していなかったため、結果ファイルには 0.2.0 と記載されています。
  • 「Anthropic ツールセット」は Anthropic の API コンピューター操作ツールセットを指し、glovebox のフォアグラウンド経路を通じて実行しました。この経路が原因で coexistence に失敗したため、この結果はリリース済みの製品を表すものではありません。「Codex cua_repl」は、Claude のもとでのツールの形式を測定したものであり、独自のモデルを使う Codex を測定したものではありません。
  • Peekaboo の初回実行はフォアグラウンド入力を許可して再実行したため、結果が改善しました。bulk-entry の 2 回の失敗は、1 回あたり $0.75 の予算上限に達して実行が停止したためです。agent-desktop は MCP モードではなく、CLI を通じて実行しました。

手法、タスクごとの数値、生データについては、bench/ と bench/results/v2/summary.md をご覧ください。

比較

2026-11-03 に各プロジェクトの README とドキュメントを確認しました。「—」は確認できなかったことを示します。

プラットフォーム1 回の呼び出しあたりのアクション数呼び出し間の状態デフォルトの読み取り方法差分読み取りバックグラウンド入力必要なもの
gloveboxmacOS複数(1 つのスクリプト)永続的な JS セッションアクセシビリティテキストはいはいヘルパーのビルドに Xcode CLT
Claude Code built-inmacOS(CLI)——スクリーンショット—いいえ。他のアプリが非表示になりますPro、Max、または Ultra
Codex computer usemacOS、Windows複数(1 つのスクリプト)永続的な JS セッションアクセシビリティテキストはいmacOS でははいChatGPT アプリとプラグイン
lcumacOS(Apple silicon)、LinuxCodex と同じ。Codex のランタイムを実行しますCodex と同じCodex と同じCodex と同じ—ChatGPT アプリがインストール済みであること
agent-desktopmacOS、Windows、Linuxコマンドごとに 1 つ、および batchスナップショットに紐づく参照アクセシビリティツリー JSON—はいHomebrew または npm
PeekaboomacOS 15+コマンドごとに 1 つスナップショットから取得した要素 IDスクリーンショットまたは JSON UI マップ—はいHomebrew または npm
open-computer-usemacOS、Linux、WindowsMCP 呼び出しごとに 1 つ。CLI ではシーケンスに対応—アプリの状態——npm
computer-use-mcpmacOS 14+呼び出しごとに 1 つ要素 ID各アクションのスクリーンショットとツリー—はい公証済みバイナリ
cua-drivermacOS、Windows、Linux————はいドキュメントを参照

次のような場合は別のものを選んでください。 Windows または Linux が必要な場合(agent-desktop、cua-driver、lcu)、ビルド手順なしで公証済みバイナリを使いたい場合(computer-use-mcp)、または OpenAI の実際のランタイムを使いたく、すでに ChatGPT アプリをお持ちの場合(lcu)。

安全性

セッションでアプリに初めてアクセスすると、ダイアログが表示されます。「このセッションで許可」「常に許可」「拒否」から選択できます。ターミナル、パスワードマネージャー、システム設定など一部のアプリは、glovebox allow <bundle id> を実行しない限りブロックされます。対象アプリの一覧は SECURITY.md にあります。アプリを前面に表示する必要があったスクリプトは、アプリを切り替えると停止します。バックグラウンドで実行中のスクリプトは、別のアプリを使っている間も動作し続けます。また、「入力監視」を許可していれば、Escape キーでスクリプトを停止できます。すべてのアクションは ~/.glovebox/actions.log に記録されます。

許可したアプリでは、その中のすべての操作が許可されます。ブラウザーを許可すると、エージェントはサインイン済みのすべてのサイトを利用できます。glovebox は、ページのコンテンツに含まれるプロンプトインジェクションを検出しません。アプリのリモート操作を誰かに任せるのと同じものとして扱ってください。詳細については SECURITY.md を参照してください。

既知の問題: バックグラウンドアプリのポップアップメニューが開いている間、macOS は入力したキーをそのアプリに送信するため、入力した文字がそのアプリに入力されることがあります (詳細)。

仕組み

agent ──MCP stdio──▶ glovebox mcp ──▶ kernel (persistent JS session)
agent ──shell──▶ glovebox run ──▶ daemon ──▶ kernel        │
                                                            ▼ Unix socket
                                        Glovebox Helper.app (Swift: AX, CGEvent,
                                        ScreenCaptureKit, approval dialogs)

バックグラウンド入力では、実行時に検索する macOS(SkyLight)の非公開関数を 2 つ使用し、前面表示での代替手段にも対応しています。どの方法が使われているかは glovebox doctor で確認できます。それ以外はすべて公開 API です。OpenAI、Anthropic、その他のベンダーのバイナリは使用しません。

ステータス

プラットフォームステータス
macOS動作します。macOS 14+ 向けにビルドされています。テスト済みなのは macOS 27(Apple silicon)のみです。
Windows開発予定(UI Automation)。ロードマップを参照してください。
Linux開発予定(AT-SPI。Wayland では制限あり)。ロードマップを参照してください。

モックではなく、実際に実行してテストします。glovebox smoke と、MCP 経由での smoke --full(一括処理のステップ、永続的なバインディング、差分、ピクセルクリック、および別のアプリを前面に表示した状態でのバックグラウンドクリック、ドラッグ、スクロール)が対象です。また、glovebox mcp 経由で Claude Code を接続してテストします。全一覧は docs/testing.md を参照してください。

ひと目でわかる API

  • gb.getApp(name) は、フォーカスを奪わずにアプリを起動または検索します。gb.listApps()。
  • app.getAXState() はアクセシビリティツリーをテキストで返します。以降の読み取りでは差分が返されます。{frames: true} を指定すると要素の枠が追加され、{disableDiffing: true} を指定するとツリー全体が返されます。
  • 画像を取得する方法は app.getScreenshot() のみです。
  • app.click(target)、doubleClick、rightClick、scroll、drag、 setValue、focus、selectText、performSecondaryAction。
  • app.pressKey("ctrl+a") は xdotool の名前を使用します(super は Cmd です)。app.typeText("text\n")。
  • app.waitForChange() と app.settle() は、遅れて反映される更新を待ちます。
  • ターゲットには、ツリー内の要素インデックス、またはウィンドウ画像上の [x, y] ピクセル座標を指定します。ウィンドウ画像はスクリーンショットのピクセル空間です。

完全なリファレンス:docs/api.md、またはセッション内で help() を実行してください。

ドキュメント

  • docs/api.md:エージェントとスクリプト作成者向けのスクリプト API。
  • docs/agents.md:各 MCP クライアントまたはシェル専用エージェントの接続方法。
  • docs/cli.md:すべてのサブコマンド、フラグ、設定キー、環境変数。
  • docs/recipes.md:1 回の js 呼び出しに貼り付けられる短いスクリプト。
  • docs/design.md:コントリビューターと評価者向けの設計上の判断とその理由。
  • docs/backend-protocol.md:新しいプラットフォームへの移植向けのヘルパープロトコル。
  • docs/testing.md:単体テストとスモークテスト、および実機で実施した内容。
  • docs/roadmap.md:予定されている作業。ここに記載されている内容はまだリリースされていません。
  • SECURITY.md:ユーザーを保護する仕組みと保護しない仕組み、および脆弱性の報告方法。
  • CONTRIBUTING.md:クローンからのセットアップ、テスト、プルリクエストのルール。
  • CHANGELOG.md:リリースごとの変更とアップグレードに関する注意事項。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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