位置づけ
Windows 専用のデスクトップ操作サーバー。ライセンスは MIT。
API を持たない業務アプリを、エージェントから触るための経路にあたります。会計ソフトや業務パッケージのように「画面しか窓口が無い」対象が候補です。この図書館では 紙の書類をデータにする、証憑を仕訳にする の周辺に位置しますが、まだ手順に組み込んでいません。
内蔵の computer-use(画面を撮ってピクセル座標をクリックする方式)との違いは、画面を構造として読む点にあります。要素が名前と座標を持って返るので、位置を画像から推定する工程が要りません。
実測でわかったこと(2026-08-23)
この道具はカタログの中で唯一、手元で動かして確かめてあります。判定と条件は notes/claude-code/desktop-automation.md に記録しました。総合判定は条件つき。
効く対象と効かない対象
| 対象 | UI Automation の要素 | 判断 |
|---|---|---|
| Win32(メモ帳で計測) | 79 要素中 64 に名前、入力欄 1 | 有効。 会計ソフト・業務パッケージがこの層 |
| UWP / XAML(設定アプリ) | 150 要素中 127 に名前、入力欄 3 | 有効 |
| Chromium(Chrome) | 56 要素中 31 に名前 | 対象外。 取れるのはタブやアドレスバーだけで、ページの中身は含まれない |
| Electron(Claude デスクトップ) | 16 要素中 4 に名前、入力欄 0 | 使えない。 入力先を特定できない |
ウィンドウを動かすと入力欄の中心座標は X 676px / Y 173px ずれましたが、要素名は変わりませんでした。名前で指定できる対象なら、位置ずれに強いのは事実です。
導入で踏んだもの
- 「1コマンド」では終わらない。
windows-mcpは Python 3.12 以上が必須。手元は 3.11 だったため、uv の導入 → Python 3.12(21MB)→ 依存 92 パッケージ、の3段になった - 途中
uv python install 3.12が uv 側の不具合(minor version link)で失敗した。インタプリタの絶対パス指定で回避 PYTHONUTF8=1が要るのは事実だが条件つき。cp932 のコンソールで、かつPYTHONIOENCODINGが未設定のときにUnicodeEncodeErrorで落ちる
顧客環境に入れる前に確認すること
- ツールが 20 個ある。 PowerShell 実行、レジストリの読み書き、プロセスの強制終了、クリップボード読み取り、外部 URL 取得を含む。デスクトップ操作に必要な範囲を大きく超える
- 絞るなら許可リスト(
--tools Snapshot,Click,Type)を使う。除外リスト(--exclude-tools PowerShell,Registry)では、後から増えたツールが素通りする --transport streamable-httpと--allow-insecure-remoteがある。設定を誤ると外部からデスクトップを操作できる口が開く- PyPI 上のバージョンは
0.8.5だが、起動したサーバーは3.4.7と名乗る。番号体系が一致していない
確認できていないこと
- 操作数と所要時間を測っていない。 出典記事は「メモ帳への入力で 5 対 2」としているが、追試していない
- 実際の業務アプリ(弥生・奉行など)で試していない。Win32 という点でメモ帳と同じ層だが、同じ結果になるとは限らない
- バージョン番号の食い違いの理由
- 長時間動かしたときの安定性
出典
- リポジトリと PyPI(front matter の
sources) - 実測の経緯: notes/claude-code/desktop-automation.md
- 比較の着想: Zenn「Claude Code のデスクトップ操作、内蔵の computer-use ではなく Windows-MCP を使っている理由」(
_meta/trials/t1rq8sc0.json)