mcpField
S
Screenshot Server

Screenshot Server

ローカル
github.com/KunihiroSブラウザ自動化182 週間前に更新

Screenshot Server について

Screenshot Server はローカル画面をキャプチャし、呼び出し側が指定したパスに画像を保存します。WSL から Windows への連携を含め、MCP ホストが画像ファイルを別プロセスに渡す用途を想定しています。

主な機能

  1. 01ホストのワークスペースに保存
  2. 02サーバーの images ディレクトリに保存
  3. 03指定した Windows または UNC パスに保存
  4. 04成功状態または保存パスを返す

活用シーン

  1. 01Windows のスクリーンショットを WSL ワークスペースに配置
  2. 02保存した画像パスを画像分析サーバーに渡す
  3. 03指定した Windows または UNC の場所に保存

MCP 対応

スクリーンショットの撮影とファイル保存のツールを MCP クライアントに公開します。呼び出し側はホストのワークスペース、ローカルの images ディレクトリ、Windows または UNC の保存先を指定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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

このプロジェクトは、スクリーンショットをキャプチャし、他のプロセスや AI アシスタントが利用できるようにするための MCP(モジュラー通信プロトコル)サーバーを提供します。主に、クライアント(ホスト)が指定したファイルパスにスクリーンショットを保存することを目的としています。

主な課題と解決策

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

推奨ワークフロー(WSL ホスト → Windows サーバー):

  1. MCP ホスト(WSL で実行される AI アシスタントなど)が save_screenshot_to_host_workspace ツールを呼び出し、引数としてWSL のワークスペースパスを渡します。
  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, optional):ファイル名。デフォルトは workspace_screenshot.jpg です。
    • 戻り値: str - "success" または "failed: [error message]"。
  • take_screenshot_and_return_path(name: str = "latest_screenshot.jpg")

    • 用途: サーバーの場所を基準とする固定の images/ ディレクトリにスクリーンショットを保存し、絶対パス(通常は Windows パス)を返します。呼び出し元が外部処理用にパスを必要とする場合に便利です。
    • 引数:
      • name (str, optional):ファイル名。デフォルトは latest_screenshot.jpg です。
    • 戻り値: str - 絶対パス、または "failed: [error message]"。
  • take_screenshot_path(path: str = "./", name: str = "screenshot.jpg")

    • 用途: Windows パスまたは UNC パスで指定された任意の場所(例:ホストのワークスペース外)にスクリーンショットを保存します。呼び出し元はパスを慎重に指定する必要があります。
    • 引数:
      • path (str, optional):保存先ディレクトリ(Windows または UNC パス)。デフォルトはサーバーの作業ディレクトリです。
      • name (str, optional):ファイル名。デフォルトは screenshot.jpg です。
    • 戻り値: str - "success" または "failed: [error message]"。

セットアップと使い方

1. 前提条件
  • Python 3.x: サーバーを実行するマシンに必要です。
  • 依存関係: uv を使ってインストールします。
    uv sync
    
    必要なライブラリには、mcp[cli]>=1.4.1、pyautogui、Pillow が含まれます。
2. サーバーの実行

通常、このサーバーは設定に基づいて MCP ホストから起動されます。

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

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

推奨する WSL2 ホスト → Windows サーバーの構成:

  1. プロジェクトの配置場所: この screenshot-server プロジェクトフォルダーをWindows ファイルシステム上に配置します(例:C:\Users\YourUser\projects\screenshot-server)。

  2. Windows の依存関係: プロジェクトフォルダー内で、Python、uv、およびプロジェクトの依存関係(uv sync ...)をWindows 上に直接インストールします。

  3. MCP ホストの設定(WSL 内): WSL 上で実行されている MCP ホストが、PowerShell を使用して Windows 上でサーバーを起動するように設定します。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-server の save_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 のデフォルトディレクトリです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。