Claude Media
Windows-MCPをClaudeに接続する方法 — PowerShellとRegistryを絞る安全策

Windows-MCPをClaudeに接続する方法 — PowerShellとRegistryを絞る安全策

Windows-MCPはClaudeにWindowsの画面操作・PowerShell・レジストリ編集を任せるMCPサーバーです。Claude CodeとClaude Desktopへの接続手順と、危険なツールを外す設定をまとめます。

Windows-MCPは、ClaudeがWindowsのデスクトップを直接操作できるようにするMCPサーバーです。アプリの起動、マウスとキーボードの入力、スクリーンショットの取得に加えて、PowerShellの実行やレジストリの読み書きまで含みます。開発元はCursorTouchで、Claudeのコネクタ一覧には「Anthropic verified」の表示付きで2026年7月に追加されました。

便利さと危険が同じ入口にあるサーバーです。接続は数分で終わりますが、繋ぐ前に「どのツールを外すか」を決めておくと事故の幅が大きく変わります。

Windows-MCPとは — Claudeに何を任せられるか

Windows-MCPは、LLMとWindows OSの間に立つオープンソースのMCPサーバーです。MITライセンスで、ファイル操作、アプリ操作、UI操作、QAテストなどをClaudeに任せる用途を想定しています。画像認識専用のモデルは前提にせず、画面上のUI要素の情報をテキストで返す設計なので、ビジョン対応でないモデルでも動かせます。

コネクタ一覧に載っているツールは18個です。

分類ツール
画面の把握ツールScreenshot / Snapshot
入力操作ツールClick / Type / Scroll / Move / Shortcut / MultiSelect / MultiEdit
アプリとウィンドウツールApp / Process / Notification
データとシステムツールPowerShell / FileSystem / Clipboard / Registry / Scrape
待機ツールWait

GitHubのREADMEには、これに加えてWaitFor(テキストやウィンドウが現れるまで待つ)とDisplayInventory(ディスプレイ構成とDPIの取得)が載っています。README側が新しく、コネクタ一覧のツール表は少し古いバージョンに対応しています。実際に何個見えるかは、入れたバージョンで変わります。

対応OSはWindows 7、8、8.1、10、11です。READMEは「英語のWindows表示が望ましい」としており、他の言語ではAppツールを無効にするよう案内しています。日本語版Windowsで使う場合は、この点が最初の落とし穴になります。

接続前に必要なもの

前提は2つだけです。

  • Python 3.13以降
  • UV(Pythonのパッケージ管理ツール)

UVは pip install uv か、公式のインストールスクリプトで入れます。初回起動は依存パッケージの取得に1〜2分かかり、その間にサーバー側でタイムアウトすることがありますが、再起動すれば通ります。接続に失敗しても、最初の1回は慌てずにもう一度起動し直してください。

Claude Codeに接続する

Claude Codeなら、1行で登録できます。

claude mcp add --transport stdio windows-mcp -- \
  uvx windows-mcp serve

PowerShellでは行末の \ が行継続として効かないので、1行にまとめて実行します。-- より前がClaude Code側のオプションで、後ろはサーバーの起動コマンドとして無加工で渡されます。全プロジェクトで使うなら --scope user を付けます。付けなければ、現在のプロジェクトだけに効くローカルスコープになります。

登録後はClaude Codeを再起動し、claude mcp list か、セッション内の /mcp で状態を確認します。

「Connection closed」が出るとき

Windowsで接続直後に「Connection closed」と出る場合は、uvx.exe のフルパスを指定します。

claude mcp add --transport stdio windows-mcp -- "C:/Users/<ユーザー名>/.local/bin/uvx.exe" windows-mcp serve

<ユーザー名> は自分のWindowsユーザー名に置き換えます。パスはスラッシュ区切りにすると、引用符の中でもシェルの種類を問わず通ります。それでも繋がらないときの切り分けは、MCPサーバーに接続できないときの切り分け手順の4層(設定・起動・認証・ツール表示)で追えます。

WSLからClaude Codeを使う場合

Claude CodeをWSLで動かしていても、Windows-MCPはWindows側で動く必要があります。UI操作にWindowsのAPIを使うためです。Windows側にuvを入れたうえで、powershell.exe を経由して起動します。

claude mcp add windows-mcp --transport stdio -s user -- \
  powershell.exe -Command \
  "C:/Users/<ユーザー名>/.local/bin/uvx.exe windows-mcp serve"

Claude Desktopに接続する

Claude Desktopでは、claude_desktop_config.json に次の設定を足します。PyPI経由で最新版を取る書き方が推奨です。

{
  "mcpServers": {
    "windows-mcp": {
      "command": "uvx",
      "args": ["windows-mcp", "serve"]
    }
  }
}

保存したらClaude Desktopを完全に終了して開き直し、ツール一覧にwindows-mcpが出ることを確かめます。ウィンドウを閉じただけでは設定が反映されません。

Microsoft Store版だけは手順が違う

Microsoft Store版(MSIX)のClaude Desktopは、%APPDATA% を仮想化します。そのため次の2点が変わります。

  • 設定ファイルの場所が %LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\ の下になる
  • 「Claude Directory」からの自動インストールは、パス変数の解決先がずれて失敗する

さらに、サンドボックス内のElectronアプリはシステムのPATHを引き継ぎません。そのため command には uvx.exe のフルパスを書く必要があります。事前に uv tool install windows-mcp を実行し、生成された実行ファイルを指定する方法もあります。パスは where uvx や where windows-mcp で調べられます。

接続する前に外すツールを決める

ここが本題です。Windows-MCPのSECURITY.mdは、冒頭で「サンドボックスでも隔離環境でもなく、実際のWindowsを直接操作する」と明記しています。プレビューも取り消しもありません。PowerShell経由のファイル削除、clear=True 付きの入力による上書き、「削除」「はい」ボタンのクリックは、元に戻せない可能性があります。

同じ文書は、次の環境に入れないよう求めています。

  • 本番のサーバーやワークステーション
  • 取り戻せないデータを持つマシン
  • 機密データベースやネットワークに繋がるマシン
  • 医療・金融・行政など規制のある環境
  • 共有マシン

推奨は、仮想マシンかWindows Sandbox、または初期化しても困らない検証機です。常用のPCで使うなら、専用の低権限ユーザーで動かし、バックアップを取り、Claudeの操作を見張りながら進めます。

サーバー側でツールを無効にする

既定では全ツールが有効です。--exclude-tools で個別に外せます。

claude mcp add --transport stdio windows-mcp -- \
  uvx windows-mcp serve \
  --exclude-tools "PowerShell,Registry,Process"

逆に、使うものだけを許可する --tools もあります。画面を見て操作するだけなら、次の最小構成で足ります。

--tools "Screenshot,Snapshot,Click,Type,Scroll,Wait"

環境変数の WINDOWS_MCP_EXCLUDE_TOOLS と WINDOWS_MCP_TOOLS でも同じ指定ができます。ツール名は、前掲の一覧どおりに大文字小文字を揃えます。

Claude Code側でも拒否ルールを置く

サーバー側の除外に加えて、Claude Codeの権限設定でも止められます。MCPツールは mcp__<サーバー名>__<ツール名> の形で指定します。サーバー名は登録時の windows-mcp です。

{
  "permissions": {
    "deny": [
      "mcp__windows-mcp__PowerShell",
      "mcp__windows-mcp__Registry"
    ]
  }
}

.claude/settings.json に置けば、プロジェクトの全員に同じ制限がかかります。サーバーの起動引数を書き換えられても、Claude Code側の拒否ルールは残ります。二重にしておく意味はそこにあります。

なお、権限ルールに括弧で引数条件を付ける書き方は、mcp__ のルールでは読み飛ばされます。「このレジストリキーだけ許可」のような細かい指定はできません。許すか止めるかのどちらかで決めます。

ツール別の危険度の目安

SECURITY.mdは、ツールごとにリスクを分類しています。ただしその表は Shell や Drag といった旧名称で書かれていて、READMEの現行名(PowerShell、Move)と一致しません。分類の考え方だけを借りる形になります。

危険度ツール理由
最も高いツールPowerShell理由任意のコマンドでシステム変更・削除・通信ができる
高いツールClick / Type / Shortcut理由削除確認の承諾、テキストの上書き、Alt+F4などを実行できる
中程度ツールApp理由アプリの起動と管理。データ自体は書き換えない
低いツールScroll / Move理由表示位置やカーソルを動かすだけ
読み取り中心ツールSnapshot / Wait / Scrape理由状態の取得。Scrapeは閲覧履歴の露出に注意

Registryは同表に載っていません。READMEの説明は「レジストリの値やキーの読み取り・書き込み・削除・一覧」なので、PowerShellと同じく書き込み系として扱うのが安全です。分類表に無いからといって低リスクとは言えません。

画面を読ませるときの注意

Screenshotは、Claudeが画面の状態を見るための基本ツールです。UIツリーの解析を省いて速く撮れる一方、画面に映ったものはすべてClaudeに渡ります。パスワードマネージャー、メール、顧客データのウィンドウは、開いたまま操作させないほうが安全です。

撮影範囲は region=[left, top, right, bottom] で絞れます。狙う領域が決まっているなら、トークンの節約にもなります。

高解像度ディスプレイでは、画像が大きくなりすぎる問題があります。1440pや4Kでは画像がClaude Desktopのツール結果の上限(1MB)を超えうるため、環境変数 WINDOWS_MCP_SCREENSHOT_SCALE で縮小できます。0.5にすると縦横が半分、ファイルサイズは4分の1になります。

{
  "mcpServers": {
    "windows-mcp": {
      "command": "uvx",
      "args": ["windows-mcp", "serve"],
      "env": { "WINDOWS_MCP_SCREENSHOT_SCALE": "0.5" }
    }
  }
}

Claude Codeでは、画像を返すツールにも MAX_MCP_OUTPUT_TOKENS の上限がかかります。Claude Code側の上限を上げるなら MAX_MCP_OUTPUT_TOKENS です。画像そのものを小さくするなら、前述の region 指定か WINDOWS_MCP_SCREENSHOT_SCALE が使えます。なお、ツール説明文の長さの上限は別の設定で、MCPツール説明文の文字数上限にまとまっています。

撮影のたびに撮影範囲の周りへオレンジ赤の光る枠が出ます。撮影確認のための表示で、撮った画像には写りません。邪魔なら WINDOWS_MCP_DISABLE_FLASH=1 で消せます。

ネットワーク越しに使う場合

既定はstdioで、Claudeと同じマシン上だけで動きます。別のマシンから使いたいときは、SSEかstreamable-httpで待ち受けます。

READMEはネットワーク公開時に認証とTLSを有効にするよう求めています。

  • --auth-key で全リクエストにBearerトークンを要求する
  • --ip-allowlist で接続元をCIDR範囲に絞る
  • --ssl-certfile と --ssl-keyfile でHTTPSにする
  • 設定は ~/.windows-mcp/config.toml にまとめられる(コマンドラインの指定が優先)

windows-mcp auth を実行すると、認証キーを生成して設定ファイルに書き込みます。ブラウザー向けのCORSは、既定では一切許可されません。

ローカルで使うだけなら、この節は不要です。--host 0.0.0.0 で公開する場合だけ、上の指定が要ります。

使い方の例と、つまずきやすい点

接続後は、通常の会話で頼みます。例えば次のような依頼です。

メモ帳を開いて、今日の作業ログを日付付きで
デスクトップの work フォルダに保存して。
削除や上書きは絶対にしないで。

操作の粒度は、Claudeが Snapshot や Screenshot で画面を見て、App、Click、Type を順に呼ぶ形になると考えられます。動きが速いときでも、1手ごとに0.2〜0.9秒ほどかかると、コネクタ一覧は説明しています。GitHub側の記載は0.2〜0.5秒と少し違っていて、どちらも負荷やモデルの推論速度で変わる目安です。

つまずきやすい点をまとめます。

  • 初回起動のタイムアウト: 依存の取得中に切れる。再起動すれば通る
  • 日本語版Windows: Appツールが英語表示を前提にしている。無効にするか、パス指定の起動を使う
  • WSL: powershell.exe 経由にしないと、Windowsのウィンドウを操作できない
  • Store版のClaude Desktop: 設定ファイルの場所が違い、PATHも引き継がれない
  • ツールが増えすぎたとき: 使わないものを --tools で絞ると、Claudeに渡るツール一覧も短くなる

匿名の利用統計も初期状態で有効です。個人情報・ツール引数・出力は収集対象外です。止めるには ANONYMIZED_TELEMETRY を false にします。

似た用途のコネクタとの使い分け

画面を直接操作するのではなく、クラウド上でブラウザーを動かしたいなら、Browserbase MCPサーバーのほうが向きます。手元のマシンに触れずに済むからです。Windows-MCPが向くのは、ローカルにしかないデスクトップアプリやファイルを動かす作業です。

データ分析のように、操作対象がクラウドサービスのAPIで済む場合は、Tableauコネクタのような公式コネクタのほうが、権限の範囲が限られます。Windows-MCPは、そのユーザーが実行できることをほぼ全部実行できる点で、権限の性質が違います。

用途Windows-MCPクラウドのコネクタ
ローカルのデスクトップアプリを動かすWindows-MCP向くクラウドのコネクタ不可
権限をサービス単位で絞るWindows-MCP難しいクラウドのコネクタ向く
検証機・VMでの実験Windows-MCP向くクラウドのコネクタどちらでも
業務PCでの常用Windows-MCP慎重に判断クラウドのコネクタ向く

コネクタ一覧のページにも、信頼できる開発元のコネクタだけを使うよう注意書きがあります。Anthropicはツールの中身を管理せず、動作や変更を保証できないという趣旨です。Windows-MCPはオープンソースなので、ソースを読んでから入れられます。

まとめ

Windows-MCPは、claude mcp add の1行かJSON設定で入ります。手間はほとんどありません。本当の作業は、繋ぐ前に「PowerShell」「Registry」「Process」を外すかどうかを決めることです。

まず仮想マシンかWindows Sandboxで試し、画面操作だけの構成から始めるのが無理のない進め方です。PowerShellとRegistryは、必要になった作業の間だけ有効にする使い方が合います。サーバー側の --exclude-tools とClaude Codeの deny ルールを両方置いておけば、片方が外れても止まります。

この記事を共有:XはてブLinkedIn