OpenScreenShot には、ツールを 1 つ持つローカル MCP サーバー capture_screenshot があります。MCP クライアントはウェブページの URL を指定してこのツールを呼び出し、PNG の画像コンテンツを受け取れます。サーバーは手元のマシンで別のヘッドレス Chrome 互換ブラウザを起動します。ブラウザ拡張機能は不要です。
MCP クライアントにサーバーを追加する
まず、Node.js、pnpm、Chrome 互換ブラウザをインストールします。クライアントの設定形式に合わせて、サーバーのエントリを追加します。mcpServers オブジェクトを受け付けるクライアントでは、次のように書けます。
{
"mcpServers": {
"openscreenshot": {
"command": "pnpm",
"args": ["dlx", "openscreenshot"]
}
}
}
クライアントは、実行パス上で pnpm を見つけられる必要があります。設定を保存したら、クライアントを再起動するか MCP 接続を再読み込みします。サーバーは stdio を使うため、クライアントがローカルのプロセスを起動します。入力するホスト型の MCP URL はありません。
Chrome が通常とは異なる場所にインストールされている場合は、クライアントの環境変数の設定で CHROME_PATH を渡します。アプリケーションを含むフォルダーではなく、実行ファイルのフル パスを指定してください。
capture_screenshot を呼び出す
最小のツール入力は次のとおりです。
{ "url": "https://example.com" }
これは、デフォルトの 1280 × 800 のサイズでビューポートをキャプチャします。再現できるリクエストにするには、ビューポートとページ全体のオプションを明示的に設定します。
{
"url": "https://example.com",
"fullPage": true,
"width": 1440,
"height": 900
}
width には 200~3840、height には 200~2160 の整数を指定できます。ツールは MIME タイプ image/png の MCP 画像コンテンツを返します。このツールには出力パスの引数はありません。結果を表示するか保存するかはクライアントによって異なります。名前付きのファイルを直接得たい場合は、CLI を使ってください。
画像がツールを離れる前にデータを墨消しする
redact オブジェクトを追加すると、スクリーンショットを撮る前にページ内のデータを黒い四角で覆います。クライアントが受け取るのは、墨消しした画像だけです。
{
"url": "https://example.com",
"redact": {
"selectors": ["#account-menu"],
"patterns": ["email", "phone", "secret"],
"rects": [{ "x": 0, "y": 0, "width": 200, "height": 40 }]
}
}
selectors は、一致する各要素を、そのすべての子要素とともに覆います。patterns は、一致するテキストとフォームの値を覆います。対象は email、phone (9~15 桁の数字)、secret (一般的な API キーやトークンの形式、長いハッシュ) です。rects は、出力画像のピクセル単位で指定した四角形を覆います。キャンバス、画像、クロスオリジンの iframe に使います。セレクターに一致する要素がない場合、四角形が画像の外にある場合、またはキャプチャ中にページが対象を動かした場合、ツールはエラーを返し、画像は返しません。パターンは、複数の要素に分かれたテキストや、画像として描かれたテキストを見逃すことがあります。
エージェントに見えるものと見えないもの
キャプチャは新しいヘッドレス ブラウザで始まります。普段使っている Chrome ウィンドウの Cookie やログイン済みのセッションは引き継ぎません。そのため、認証が必要なページではログイン画面が表示されることがあります。現在のツールには、ログイン手順、Cookie の注入、セレクターの待機、操作のためのクリックはありません。
結論を出す前に、返された画像に実際に何が見えているかをエージェントに確認させてください。スクリーンショットは、レイアウト、余白、目に見えるエラーの確認には役立ちます。しかし、フォームが正しく送信されることや、キーボード操作が機能することは証明できません。
スクリーンショットはどこに送られるか
スクリーンショットはローカルで生成され、MCP クライアントに返されます。そのクライアントがホスト型のモデルを使っている場合、クライアント自身の設定に従って、返された画像をモデルの提供元に送信することがあります。キャプチャがローカルであっても、エージェントとの会話全体がデバイス上に留まるとは限りません。提供元に届いてはならないデータには、redact を使ってください。
サイズが予測できる自動キャプチャについては、CI 向けのスクリーンショットをご覧ください。エージェント用のキャプチャ スキルとサーバーのソースに、機械向けの手順とツールの定義があります。