Screenshot MCP Server

by KunihiroS
Verified

Integrations

  • Enables capturing screenshots on Windows systems and saving them to specified file paths, with special support for WSL-to-Windows interactions where an AI assistant running in WSL can request screenshots that are saved directly to its workspace.

スクリーンショットサーバー(ファイルパス重視)

このプロジェクトは、スクリーンショットをキャプチャし、主にクライアント (ホスト) によって指定されたファイル パスにスクリーンショットを保存することにより、他のプロセスまたは AI アシスタントによる使用を容易にするように設計された MCP (モジュラー通信プロトコル) サーバーを提供します

中核問題と解決策

AIアシスタントがMCP経由で送信したスクリーンショット画像データを直接解釈することは、テストにおいて信頼性が低いことが判明しました。このサーバーでは、ファイルパスに重点を置いた、より堅牢なワークフローを採用しています。

推奨ワークフロー (WSL ホスト -> Windows Server):

  1. MCP ホスト (WSL で実行されている AI アシスタントなど) は、 WSL ワークスペース パスを引数として提供して、 save_screenshot_to_host_workspaceツールを呼び出します。
  2. このサーバー (Windows 上で実行) は画面をキャプチャします。
  3. サーバーは、受信した WSL パスを Windows がアクセス可能な UNC パス (例: \\wsl$\Distro\path ) に変換します。
  4. サーバーは、UNC パスを介して、ホストの WSL ファイルシステム内の指定された場所にスクリーンショットを保存します。
  5. サーバーは"success"または"failed:..."を返します。
  6. MCP ホストは、ファイルがワークスペース (またはパス引数で指定されている場合はサブディレクトリ) に保存されていることを認識します。
  7. MCP ホストは、 WSL パスを別の専用 MCP サーバー (WSL で実行) に渡してイメージ分析を行うことができます。

代替ワークフロー(一般):

  1. MCP ホストは、オプションでファイル名を指定してtake_screenshot_and_return_pathを呼び出します。
  2. サーバーはスクリーンショットをローカルのimages/ディレクトリに保存します。
  3. サーバーは保存されたファイルへの絶対パス(例: Windows パス) を返します。
  4. 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を使用してインストール:
    uv sync
    必要なライブラリにはmcp[cli]>=1.4.1pyautoguiPillowなどがあります。

2. サーバーの実行

このサーバーは通常、その構成に基づいて MCP ホストによって起動されます。

3. 環境に関する考慮事項(特にWSL2)

重要なポイント: Windows 画面をキャプチャするには、このscreenshot.pyサーバーをWindows 上で直接実行する必要があります

推奨される WSL2 ホスト -> Windows Server セットアップ:

  1. プロジェクトの場所:このscreenshot-serverプロジェクト フォルダーをWindows ファイルシステム(例: C:\Users\YourUser\projects\screenshot-server ) に配置します。
  2. Windows の依存関係: Python、 uv 、およびプロジェクトの依存関係 ( uv sync ... ) をWindowsのプロジェクト フォルダーに直接インストールします。
  3. MCPホスト構成(WSL内): PowerShellを使用してWindows上でサーバーを起動するように、MCPホスト(WSLで実行)を構成しますmcp_settings.json (または同等のファイル)を更新します。
    { "mcpServers": { "Screenshot-server": { "command": "powershell.exe", "args": [ "-Command", "Invoke-Command -ScriptBlock { cd '<YOUR_WINDOWS_PROJECT_PATH>'; & '<YOUR_WINDOWS_UV_PATH>' run screenshot.py }" ] } // ... other servers ... } }
    • パスを実際の Windows パスに置き換えます。

4. ワークフローの例(WSL の AI アシスタント)

  1. AI アシスタントは現在のワークスペース パス (例: /home/user/current_project ) を識別します。
  2. AI アシスタントはuse_mcp_toolを使用してScreenshot-serversave_screenshot_to_host_workspaceを呼び出し、 host_workspace_path="/home/user/current_project"とオプションでname渡します。
  3. "success"を受け取ります。
  4. AI アシスタントは、スクリーンショットが/home/user/current_project/workspace_screenshot.jpg (または指定された名前) にあることを認識しています。
  5. AI アシスタントは、 use_mcp_toolを使用して、画像分析サーバー/ツール (これも WSL で実行) を呼び出し、WSL パス/home/user/current_project/workspace_screenshot.jpgを渡します。
  6. 画像解析サーバーはファイルを読み取り、タスクを実行します。

ファイル構造

  • screenshot.py : コア MCP サーバー スクリプト。
  • README.md : このドキュメント ファイル。
  • pyproject.toml : uvのプロジェクト定義と依存関係。
  • uv.lock : 依存関係ロック ファイル。
  • .gitignore : Git 無視設定。
  • .python-version : (オプション) Python バージョン指定子。
  • server.log : サーバーによって生成されたログ ファイル。
  • images/ : take_screenshot_and_return_pathのデフォルトディレクトリ。
-
security - not tested
F
license - not found
-
quality - not tested

スクリーンショットをキャプチャし、クライアント アプリケーションによって指定されたファイル パスに保存します。主に、WSL 環境で実行される AI アシスタントによるスクリーンショット分析を容易にするように設計されています。

  1. Core Problem & Solution
    1. Available Tools
      1. Setup and Usage
        1. 1. Prerequisites
        2. 2. Running the Server
        3. 3. Environment Considerations (Especially WSL2)
        4. 4. Workflow Example (AI Assistant in WSL)
      2. File Structure
        ID: resbwimnmw