スクリーンショットサーバー(ファイルパス重視)
このプロジェクトは、スクリーンショットをキャプチャし、主にクライアント (ホスト) によって指定されたファイル パスにスクリーンショットを保存することにより、他のプロセスまたは AI アシスタントによる使用を容易にするように設計された MCP (モジュラー通信プロトコル) サーバーを提供します。
中核問題と解決策
AIアシスタントがMCP経由で送信したスクリーンショット画像データを直接解釈することは、テストにおいて信頼性が低いことが判明しました。このサーバーでは、ファイルパスに重点を置いた、より堅牢なワークフローを採用しています。
推奨ワークフロー (WSL ホスト -> Windows Server):
- MCP ホスト (WSL で実行されている AI アシスタントなど) は、 WSL ワークスペース パスを引数として提供して、
save_screenshot_to_host_workspace
ツールを呼び出します。 - このサーバー (Windows 上で実行) は画面をキャプチャします。
- サーバーは、受信した WSL パスを Windows がアクセス可能な UNC パス (例:
\\wsl$\Distro\path
) に変換します。 - サーバーは、UNC パスを介して、ホストの WSL ファイルシステム内の指定された場所にスクリーンショットを保存します。
- サーバーは
"success"
または"failed:..."
を返します。 - MCP ホストは、ファイルがワークスペース (またはパス引数で指定されている場合はサブディレクトリ) に保存されていることを認識します。
- MCP ホストは、 WSL パスを別の専用 MCP サーバー (WSL で実行) に渡してイメージ分析を行うことができます。
代替ワークフロー(一般):
- MCP ホストは、オプションでファイル名を指定して
take_screenshot_and_return_path
を呼び出します。 - サーバーはスクリーンショットをローカルの
images/
ディレクトリに保存します。 - サーバーは保存されたファイルへの絶対パス(例: Windows パス) を返します。
- MCP ホストはパスを受信し、それを(潜在的な変換とともに)分析サーバーに渡します。
利用可能なツール
このサーバーは、推奨される使用法順に以下のツールを提供します。
save_screenshot_to_host_workspace(host_workspace_path: str, name: str = "workspace_screenshot.jpg")
- **推奨される使用方法:**スクリーンショットをAIアシスタント(ホスト)の現在のWSLワークスペースに直接保存します。シームレスな統合を実現するには、この方法が推奨されます。
- **アクション:**スクリーンショットを撮影し、指定されたWSLパスをUNCパスに変換して、ホストのワークスペースにファイルを保存します。WSLディストリビューション名を自動検出します。
- 引数:
host_workspace_path
(str): ホストのワークスペースの絶対 WSL パス (例:/home/user/project
)。name
(str, オプション): ファイル名。デフォルトはworkspace_screenshot.jpg
です。
- 戻り値:
str
-"success"
または"failed: [error message]"
。
take_screenshot_and_return_path(name: str = "latest_screenshot.jpg")
- **ユースケース:**スクリーンショットをサーバー上の場所を基準とした固定の
images/
ディレクトリに保存し、絶対パス(通常はWindowsパス)を返します。呼び出し元が外部処理のためにパスを必要とする場合に便利です。 - 引数:
name
(str, オプション): ファイル名。デフォルトはlatest_screenshot.jpg
です。
- 戻り値:
str
- 絶対パスまたは"failed: [error message]"
。
- **ユースケース:**スクリーンショットをサーバー上の場所を基準とした固定の
take_screenshot_path(path: str = "./", name: str = "screenshot.jpg")
- 使用例: WindowsパスまたはUNCパスで指定された任意の場所にスクリーンショットを保存します(例:ホストのワークスペース外に保存する場合)。呼び出し元によるパスの指定は慎重に行う必要があります。
- 引数:
path
(str, オプション): ターゲットディレクトリ (Windows または UNC パス)。デフォルトはサーバーの作業ディレクトリです。name
(str, オプション): ファイル名。デフォルトはscreenshot.jpg
です。
- 戻り値:
str
-"success"
または"failed: [error message]"
。
セットアップと使用方法
1. 前提条件
- **Python 3.x:**サーバーが実行されるマシンに必要です。
- 依存関係:
uv
を使用してインストール:必要なライブラリにはmcp[cli]>=1.4.1
、pyautogui
、Pillow
などがあります。
2. サーバーの実行
このサーバーは通常、その構成に基づいて MCP ホストによって起動されます。
3. 環境に関する考慮事項(特にWSL2)
重要なポイント: Windows 画面をキャプチャするには、このscreenshot.py
サーバーをWindows 上で直接実行する必要があります。
推奨される WSL2 ホスト -> Windows Server セットアップ:
- プロジェクトの場所:この
screenshot-server
プロジェクト フォルダーをWindows ファイルシステム(例:C:\Users\YourUser\projects\screenshot-server
) に配置します。 - Windows の依存関係: Python、
uv
、およびプロジェクトの依存関係 (uv sync ...
) をWindowsのプロジェクト フォルダーに直接インストールします。 - MCPホスト構成(WSL内): PowerShellを使用してWindows上でサーバーを起動するように、MCPホスト(WSLで実行)を構成します
mcp_settings.json
(または同等のファイル)を更新します。- パスを実際の Windows パスに置き換えます。
4. ワークフローの例(WSL の AI アシスタント)
- AI アシスタントは現在のワークスペース パス (例:
/home/user/current_project
) を識別します。 - AI アシスタントは
use_mcp_tool
を使用してScreenshot-server
のsave_screenshot_to_host_workspace
を呼び出し、host_workspace_path="/home/user/current_project"
とオプションでname
渡します。 "success"
を受け取ります。- AI アシスタントは、スクリーンショットが
/home/user/current_project/workspace_screenshot.jpg
(または指定された名前) にあることを認識しています。 - AI アシスタントは、
use_mcp_tool
を使用して、画像分析サーバー/ツール (これも WSL で実行) を呼び出し、WSL パス/home/user/current_project/workspace_screenshot.jpg
を渡します。 - 画像解析サーバーはファイルを読み取り、タスクを実行します。
ファイル構造
screenshot.py
: コア MCP サーバー スクリプト。README.md
: このドキュメント ファイル。pyproject.toml
:uv
のプロジェクト定義と依存関係。uv.lock
: 依存関係ロック ファイル。.gitignore
: Git 無視設定。.python-version
: (オプション) Python バージョン指定子。server.log
: サーバーによって生成されたログ ファイル。images/
:take_screenshot_and_return_path
のデフォルトディレクトリ。
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
スクリーンショットをキャプチャし、クライアント アプリケーションによって指定されたファイル パスに保存します。主に、WSL 環境で実行される AI アシスタントによるスクリーンショット分析を容易にするように設計されています。
Related MCP Servers
- AsecurityAlicenseAqualityProvides HTML file preview and analysis capabilities. This server enables capturing full-page screenshots of local HTML files and analyzing their structure.Last updated -28JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that provides AI vision capabilities for analyzing UI screenshots, offering tools for screen analysis, file operations, and UI/UX report generation.Last updated -261JavaScriptISC License
- AsecurityAlicenseAqualityAn official MCP server implementation that allows AI assistants to capture website screenshots through the ScreenshotOne API, enabling visual context from web pages during conversations.Last updated -1721TypeScriptMIT License
- -securityFlicense-qualityEnables AI tools to capture and process screenshots of a user's screen, allowing AI assistants to see and analyze what the user is looking at through a simple MCP interface.Last updated -1Python