UIAutomationMcp について
Windows デスクトップの検査と自動化を行うツールキットで、UI 要素の検索、状態の読み取り、操作が必要な開発者向けです。MCP サーバー、CLI、VS Code 拡張を備え、UIA と MSAA の情報を読み取ります。
主な機能
- 01デスクトップとフォーカス要素の情報確認
- 02属性による UI 要素の検索
- 03UIA ツリーとビューの走査
- 04テキスト・選択・コントロール状態の読み取り
- 05オートメーションイベントの待機
- 06フォーカス・選択・ウィンドウ操作
活用シーン
- 01デスクトップアプリのコントロール構造の確認
- 02名前や automation ID による要素検索
- 03テーブルセルやテキスト情報の読み取り
- 04一般的な UI 操作の自動化
MCP 対応
MCP サーバーは、Windows UI Automation の検査、検索、ナビゲーション、イベント待機、操作機能を MCP クライアントに公開します。CLI と VS Code 拡張でも同じ拡張機能を利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
UIAutomationMcp
Windows UI Automation ツールキットです。3 つの連携したエントリーポイントを提供します。
- CLI(
uiamcp) - MCP サーバー(
UIAutomationMcp.McpServer) - VS Code 拡張機能(
uia-mcp)
インストール
VS Code 拡張機能(推奨)— Marketplace から
trsdn.uia-mcpを
(code --install-extension trsdn.uia-mcpで)インストールするか、
最新リリースから
UIAutomationMcp-<version>.vsixをインストールしてください。
単体で動作し、MCP サーバー、CLI、両方のエージェントスキルが含まれています。
Claude Desktop — 最新リリースからuia-mcp-<version>.mcpbをダウンロードし、
ダブルクリックしてください。
npm — uia-mcpには.NET ランタイムが同梱された MCP サーバーが含まれているため、
事前のインストールは不要です。
{
"mcpServers": {
"uia-mcp": { "command": "npx", "args": ["-y", "uia-mcp"] }
}
}
NuGet .NET ツール
dotnet tool install --global UIAutomationMcp.McpServer # MCP server -> uiamcp-server
dotnet tool install --global UIAutomationMcp.CLI # CLI -> uiamcp
スタンドアロン ZIP — UIAutomationMcp-MCP-Server-<version>-windows.zipには、
セルフコンテインドの MCP サーバーと CLI が含まれています。.NET ランタイムは不要です。
Windows と対話型デスクトップセッションが必要です。UI Automation はヘッドレスでは実行できません。
系譜
このリポジトリは、より広範な MCP オートメーションの系譜の一部であり、Stefan Brönner による初期の取り組みへの帰属を意図的に保持しています。
また、このリポジトリ自体は Windows UI Automation に特化していますが、関連する兄弟プロジェクトとして Excel MCP への歴史的な言及も保持しています。
機能
Interop.UIAutomationClientを介して、型付きの UI Automation クライアントを起動します- デスクトップルートおよびフォーカス中の要素について、境界、ランタイム ID、サポートされているパターンを含む詳細なメタデータを読み取ります
- ネイティブウィンドウハンドルと画面座標から要素を解決します
- 名前、クラス名、オートメーション ID、フレームワーク ID、コントロールタイプ、プロセス ID に基づいて UIA ツリーを検索します
- raw、control、content の各ツリービューから直下の子要素を列挙します
- raw、control、content の各ツリービューから子孫要素を列挙します
- raw、control、content の各ウォーカーを使用して UIA ツリーをたどります
- 検査、検索、ナビゲーション用のビルドキャッシュリクエストをサポートします
- キャレット位置、スペルミスなどの注釈範囲、インライン要素を含むドキュメントを含め、テキスト、選択範囲、キーのパターン状態を読み取ります
- フォーカス、オートメーション、プロパティ変更、構造変更の各イベントを待機します
- フォーカス、実行、値の設定、切り替え、展開/折りたたみ、選択、ウィンドウ状態の変更、移動/サイズ変更、スクロール、範囲値の更新、ビューの切り替え、ドッキング、仮想化された項目の実体化、MSAA の既定のアクションなど、一般的な操作を実行します
- 仮想化リストのコンテナーに直接問い合わせて、まだ実体化されていない項目を検索します。そのため、スクロールせずに 300 行のリストから 250 行目を検索できます
- ドラッグ&ドロップの状態(
isGrabbed、ドロップ効果、取得された項目)を報告し、進行中のドラッグを観察できるようにします。また、オートメーションイベントをDrag_DragStartのような読みやすい名前に解決します - LegacyIAccessible ブリッジを介して MSAA データを読み取ります。そのため、ネイティブ UI Automation プロバイダーを公開していない Win32、MFC、インストーラーのウィンドウでも、使用可能な名前、役割、状態、実行可能な既定のアクションを取得できます
- 表形式のコントロールを、行ヘッダーと列ヘッダーを含むセルの行列として読み取ります
- 同じ拡張された機能を CLI と MCP の両方から利用できます
- CLI と MCP サーバーを VS Code 拡張機能内にパッケージします
リポジトリの構成
src\UIAutomationMcp.ComInteropsrc\UIAutomationMcp.Servicesrc\UIAutomationMcp.CLIsrc\UIAutomationMcp.McpServersrc\UIAutomationMcp.Smokevscode-extensionmcpb— Claude Desktop バンドルのソースとビルドスクリプトskills—uia-cliとuia-mcp用のエージェントスキル
ビルドと検証
dotnet build .\UIAutomationMcp.sln -c Release
.\src\UIAutomationMcp.Smoke\bin\Release\net9.0-windows\UIAutomationMcp.Smoke.exe
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe inspect --root --cache
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe find --focused --scope children --max-results 10 --cache
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe children --focused --view raw --max-results 10
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe descendants --focused --view raw --max-results 25
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe wait-event --event-kind focus --timeout-ms 500
.\src\UIAutomationMcp.CLI\bin\Release\net9.0-windows\uiamcp.exe action focus --focused
関連ドキュメント
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。