winsight について
WinSightは、Claude Codeから画面のキャプチャ、ウィンドウの確認・操作、アプリの起動を行うためのWindows向けMCPサーバーです。全画面、領域、ウィンドウのキャプチャに対応し、Win32 PrintWindowで背後に隠れたウィンドウの内容も取得できます。
主な機能
- 01画面、領域、ウィンドウのキャプチャ
- 02他のウィンドウに隠れた内容のキャプチャ
- 03ウィンドウとモニター情報の一覧表示
- 04移動、サイズ変更、フォーカス、状態変更
- 05アプリを起動してウィンドウを待機
活用シーン
- 01特定アプリのウィンドウを確認用にキャプチャ
- 02デスクトップ作業中にウィンドウを配置してフォーカス
- 03アプリを起動してウィンドウの表示を待機
MCP 対応
WinSightは、画面キャプチャ、ウィンドウ管理、モニター情報の確認、アプリ起動のツールをClaude CodeなどのMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
WinSight MCP
mcp-name: io.github.TheoEwzZer/winsight
Windows 画面キャプチャ MCP サーバー — Claude Code に Windows デスクトップを見る機能を提供します。
WinSight は、Claude Code で Windows 上の画面をキャプチャしたり、ウィンドウを管理したり、アプリケーションを起動したりできる MCP サーバーです。
機能
- 画面全体、指定した領域、または特定のウィンドウのスクリーンショット
- Win32 の
PrintWindowAPI を使用したウィンドウのキャプチャ — 他のウィンドウの背後にある場合でも、ウィンドウの実際のコンテンツをキャプチャします - 開いているウィンドウとモニターの一覧表示と情報取得(タイトル、位置、サイズ、状態、解像度)
- ウィンドウの操作 — 移動、サイズ変更、最小化、最大化、元に戻す、フォーカス
- アプリケーションの起動と、ウィンドウが表示されるまでの待機
要件
- Windows 10/11
- Python 3.10+
クイックスタート
オプション 1:uvx(推奨)
インストール不要で、直接実行できます:
{
"mcpServers": {
"winsight": {
"command": "uvx",
"args": ["winsight-mcp"]
}
}
}
プロジェクトの .mcp.json または ~/.claude/claude_desktop_config.json に追加してください。
オプション 2:pip install
pip install winsight-mcp
次に、設定します:
{
"mcpServers": {
"winsight": {
"command": "winsight-mcp"
}
}
}
オプション 3:ソースから
git clone https://github.com/TheoEwzZer/WinSight-MCP.git
cd WinSight-MCP
uv sync
{
"mcpServers": {
"winsight": {
"command": "uv",
"args": ["--directory", "/path/to/WinSight-MCP", "run", "winsight-mcp"]
}
}
}
ツール
スクリーンショット
| ツール | 説明 |
|---|---|
take_screenshot | 画面全体または特定のモニターをキャプチャします |
screenshot_window | タイトルを指定して特定のウィンドウをキャプチャします(他のウィンドウの背後でも動作します) |
screenshot_region | 画面の矩形領域をキャプチャします |
ウィンドウ管理
| ツール | 説明 |
|---|---|
list_windows | タイトルによるフィルターを任意で指定して、表示中のウィンドウを一覧表示します |
get_window_info | ウィンドウの詳細情報(位置、サイズ、状態)を取得します |
focus_window | ウィンドウを前面に表示します |
resize_window | ウィンドウを指定した寸法にサイズ変更します |
move_window | ウィンドウを指定した位置に移動します |
minimize_window | ウィンドウをタスクバーに最小化します |
maximize_window | ウィンドウを画面いっぱいに最大化します |
restore_window | 最小化または最大化されたウィンドウを通常の状態に戻します |
wait_for_window | ウィンドウが表示されるまで待機します(タイムアウト付きの適応型ポーリング) |
システム
| ツール | 説明 |
|---|---|
list_monitors | 解像度、位置、プライマリかどうかを含む、すべてのモニターを一覧表示します |
open_application | アプリケーションを起動し、任意でウィンドウが表示されるまで待機します |
使用例
MCP サーバーを接続すると、Claude Code に次のようなことを依頼できます:
- 「画面のスクリーンショットを撮って」
- 「開いているウィンドウをすべて一覧表示して」
- 「メモ帳のウィンドウをキャプチャして」
- 「電卓を開いて、そのスクリーンショットを撮って」
- 「Chrome のウィンドウにフォーカスして」
- 「アプリのウィンドウを 800x600 にサイズ変更して、スクリーンショットを撮って」
- 「ウィンドウを左上隅に移動して」
- 「モニターはいくつある?」
テスト
このプロジェクトには、すべてのモジュールを対象とした 112 件のテストがあります。テストでは Win32 API のモックを使用するため、どのプラットフォームでも実行できます。
テストの実行
uv run pytest
テストの構成
tests/
conftest.py # Shared fixtures and Win32 stubs
test_types.py # TypedDict definitions validation
test_screenshot.py # Screen/region/window capture (mss, Win32 DC)
test_window_manager.py # Window listing, find, focus, resize, move, min/max/restore
test_process_manager.py # Application launch and window polling
test_server.py # MCP tool registration and integration
テストの追加
- 対応する
test_<module>.pyファイルにテストを追加します conftest.pyの共有フィクスチャ(sample_window_info、mcp_server、fake_png_bytes)を使用します@patch("winsight_mcp.<module>.win32gui")で Win32 API をモックします — テストでは実際の Win32 関数を呼び出さないでください- サーバーの統合テストでは、ツールの呼び出しに
_callヘルパーを、文字列の結果の抽出に_textを使用します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。