/ ディレクトリ / プレイグラウンド / Windows MCP
● コミュニティ CursorTouch ⚡ 即起動

Windows MCP

作者 CursorTouch · CursorTouch/Windows-MCP

Windows向けのコンピューター操作 — ClaudeがUIオートメーションツリー(ピクセルだけでなく)を読み取るため、Excel・Outlook・レガシーな業務アプリを確実に操作できる。

Windows MCPは、Windows UI Automation APIにスクリーンショット+入力合成をMCPツールとして公開します。ピクセルのみのコンピューター操作と異なり、デスクトップツリーの構造的なビュー(ウィンドウ・コントロール・名前・AutomationID)をClaudeに提供するため、レイアウトが変わっても正しいコントロールをクリックできます。APIを持たない内部Windows業務ソフトの自動化に最適です。

なぜ使うのか

主な機能

ライブデモ

実際の動作

windows-mcp-cursortouch.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "windows-mcp-cursortouch": {
      "command": "uvx",
      "args": [
        "windows-mcp"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "windows-mcp-cursortouch": {
      "command": "uvx",
      "args": [
        "windows-mcp"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "windows-mcp-cursortouch": {
      "command": "uvx",
      "args": [
        "windows-mcp"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "windows-mcp-cursortouch": {
      "command": "uvx",
      "args": [
        "windows-mcp"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "windows-mcp-cursortouch",
      "command": "uvx",
      "args": [
        "windows-mcp"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "windows-mcp-cursortouch": {
      "command": {
        "path": "uvx",
        "args": [
          "windows-mcp"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add windows-mcp-cursortouch -- uvx windows-mcp

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Windows MCP

APIを持たないWindows専用の業務アプリを自動化する

👤 UiPathライセンスに疲れたRPAエンジニア ⏱ ~60 min advanced

使うタイミング: 社内アプリのベンダーがAPIを公開しない;Claudeに日次データを入力させたい場合。

前提条件
  • 対象アプリがインストールされたWindows 10/11 — 通常のインストール
  • uvx用Python 3.10以上 — winget install Python.Python.3.12
フロー
  1. UIツリーを調査
    Launch the app BookingSystem.exe, then dump the UI tree of the main window. I want to see automation IDs.✓ コピーしました
    → ツリーにAutomationIDを持つコントロールが表示される — 無名のボタンではない
  2. 正常系を1回実行
    Now: open the New Booking dialog, fill customer 'Acme Inc', date 2026-05-12, save. Take a screenshot at the end.✓ コピーしました
    → 予約が保存される;スクリーンショットで確認
  3. 汎用化してループ
    Read /work/bookings.csv. For each row, repeat the booking flow. Save screenshots into /work/runs/.✓ コピーしました
    → 各行が処理される;予約ごとにスクリーンショットが保存される

結果: CSVから再実行可能なベンダーアプリのヘッドレス自動化。

注意点
  • カスタムコントロールを使用するアプリ(AutomationIDのないWinForms ListViewなど) — 固定ウィンドウ位置での座標クリックにフォールバック;脆弱性をドキュメント化する
  • ループ中にモーダルダイアログがフォーカスを奪う — send_keysの前に常にアクティブウィンドウを確認;予期しない場合は中断する
組み合わせ: filesystem

Excel APIを使わずにExcelからデータを抽出する

👤 ITがCOM/Office APIを有効にしてくれないアナリスト ⏱ ~15 min intermediate

使うタイミング: Excelを開けるがプログラムからはアクセスできない場合。

フロー
  1. ファイルを開く
    Launch Excel, open C:\reports\Q2.xlsx, focus the 'Sales' sheet.✓ コピーしました
    → ウィンドウタイトルにファイル名が表示される
  2. 範囲をコピー
    Select A1:D200, copy to clipboard, then read clipboard text.✓ コピーしました
    → タブ区切りのテーブルが返される
  3. filesystemでCSVとして保存
    Parse that into rows and save to /tmp/Q2-sales.csv.✓ コピーしました
    → CSVが作成される

結果: COM APIを触ったりサードパーティパッケージをインストールしたりせずにExcelデータをCSV形式で取得。

注意点
  • Excelバージョンによってクリップボード形式が異なる — 最初にCSVを試し、クリップボードのバリアントでTSVにフォールバック
組み合わせ: filesystem

作業中にチームメンバー向けのデスクトップバグをキャプチャする

👤 サポートを兼任する開発者 ⏱ ~5 min beginner

使うタイミング: Windowsマシンでフレーキーなバグが再現し、きれいなスクリーンショットと再現手順が必要な場合。

フロー
  1. 再現してキャプチャ
    Take a screenshot of the active app window. Save as bug.png.✓ コピーしました
    → PNGが書き込まれる
  2. 手順を注釈
    List the last 5 user-visible UI elements you interacted with — window titles, dialog labels — so I can paste this into the ticket.✓ コピーしました
    → 具体的な要素レベルの再現手順

結果: ウィンドウを切り替えることなく絞り込まれたバグチケット。

注意点
  • スクリーンショットに個人情報が含まれる — デスクトップ全体ではなくアクティブウィンドウのみをクロップする
組み合わせ: github

組み合わせ

他のMCPと組み合わせて10倍の力を

windows-mcp-cursortouch + filesystem

CSVの入力からデスクトップアプリを操作する

Read /work/orders.csv. For each row, click through the booking app.✓ コピーしました
windows-mcp-cursortouch + github

デスクトップのバグをキャプチャしてIssueを作成する

Screenshot active window, then create a GitHub issue with the PNG and reproducer steps.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
list_windows (none) 対象アプリを探す free
get_ui_tree window_id? クリック前のディスカバリ free
click automation_id | x,y 既知のコントロールをクリック free
type_text text: str フォーカスされたフィールドにテキストを入力 free
send_keys keys: str (e.g. 'ctrl+s') ホットキー/修飾キー free
screenshot window_id?, region? 視覚的な確認 free
launch_process exe: str 対象アプリを起動 free
read_clipboard (none) コピー後 free

コストと制限

運用コスト

APIクォータ
なし — ローカル自動化
呼び出しあたりのトークン
50〜500(UIツリーのダンプはより大きくなる場合あり)
金額
OSS無料
ヒント
毎ステップでUIツリー全体をダンプするのを避ける — window_idで絞り込む

セキュリティ

権限、シークレット、影響範囲

最小スコープ: control of the local desktop session
認証情報の保管: なし — ただしClaudeは画面上のものを見ることができる
データ送信先: ローカル;ネットワークMCPも付与しない限り機外には出ない
絶対に付与しない: administrator account auto-launch remote access pairing

トラブルシューティング

よくあるエラーと対処法

Control not found by automation_id

アプリが動的IDまたはIDなしを使用している。get_ui_treeを使用して名前/ロール階層でマッチさせる

確認: Inspect with Microsoft inspect.exe
Clicks land on wrong window

クリック前に必ず対象ウィンドウでset_focusを呼び出す;クリック後にアクティブウィンドウを確認

uvx install fails with 'wheel' error

Visual C++ Build Toolsをインストール;一部のpywin32の依存関係が必要

代替案

Windows MCP 他との比較

代替案代わりに使う場面トレードオフ
Anthropic Computer Use (pixel)クロスプラットフォームのピクセルベースの操作が必要な場合UIAベースよりWindowsでの信頼性が低く、レイアウト変化に弱い
AutoIt / PowerShellLLM外でスクリプトを書く場合エージェント層なし;手動スクリプトのみ
Peekaboo (macOS)WindowsではなくmacOSを使用している場合異なるOS;互換性なし

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る