Screenshot Scout

官方

使用 Screenshot Scout 將網頁截圖為圖片或 PDF。

你可以用 Screenshot Scout MCP 做什麼?

  • 全頁或視窗擷取 — 透過 capture_screenshot 請求任何 URL 的 PNG、JPEG、WebP、GIF、TIFF 或 PDF,並可選擇 fullPage 模式。
  • 元素與互動控制 — 鎖定特定 selector,使用 hideSelectors 隱藏元素,透過 clickSelectors 點擊元素,並封鎖 Cookie 橫幅、廣告或聊天小工具。
  • 裝置與位置模擬 — 指定 device、視窗尺寸、countrycolorScheme(深色/淺色)以模擬不同的瀏覽情境。
  • 含版面選項的 PDF 產生 — 使用 pdfPaperFormatpdfLandscapepdfPrintBackground、自訂邊界及 pdfScale 建立可供列印的 PDF 文件。
  • 輸出尺寸調整與品質調校 — 調整 imageWidthimageHeightimageQuality(適用於 JPEG/WebP)以控制檔案大小與解析度。
  • 快取與結果傳遞 — 啟用含 cacheTtlcache,並選擇 resultMode 以取得內嵌圖片或僅限臨時 URL。

文件

Screenshot Scout MCP 伺服器

從 MCP 用戶端使用 Screenshot Scout 將 HTTP 或 HTTPS 網頁擷取為圖片或 PDF。

此伺服器公開一個工具:capture_screenshot。它支援整頁與元素擷取、裝置與視窗控制、位置選擇、頁面互動與封鎖選項、圖片尺寸與品質、PDF 版面、快取、臨時結果 URL 以及符合資格的 MCP 圖片內容。

你需要什麼

  • 一個 Screenshot Scout 帳戶 以及從 API 金鑰頁面 取得的存取金鑰。
  • Node.js 22 或更新版本,用於 npm/stdio 安裝。Claude Desktop 的 MCPB 執行環境由 Claude 內建。
  • 僅當你選取的 API 金鑰需要簽署的 Screenshot Scout 請求時,才需要選用的密鑰。

每次擷取都會使用你的 Screenshot Scout 帳戶,並受其方案、配額與速率限制約束。

使用 npm 的本地 stdio

從這個本地 stdio 設定開始:

{
  "mcpServers": {
    "screenshotscout": {
      "command": "npx",
      "args": ["-y", "@screenshotscout/mcp"],
      "env": {
        "SCREENSHOTSCOUT_ACCESS_KEY": "YOUR_ACCESS_KEY"
      }
    }
  }
}

如果存取金鑰需要請求簽署,請在本地新增密鑰:

"SCREENSHOTSCOUT_SECRET_KEY": "YOUR_SECRET_KEY"

將個人設定檔保留在版本控制之外。憑證是程序環境值,而非工具引數。請參閱 用戶端專屬的複製貼上設定,適用於 Claude Desktop、Claude Code、Cursor、VS Code/GitHub Copilot、Devin 與 Cline。

從原始碼檢出執行

npm ci
npm run build

將用戶端指向 dist/stdio.js 的絕對路徑,搭配 node,並提供與上述相同的環境變數。

Claude Desktop MCPB

若要安裝 Claude Desktop 擴充功能:

  1. 從該版本的 GitHub 發行版下載 screenshotscout-mcp-<version>.mcpb
  2. 在 Claude Desktop 中,開啟 設定 → 擴充功能 → 進階設定,然後選擇 安裝擴充功能…
  3. 選取下載的檔案。
  4. 輸入所需的存取金鑰。僅當 API 金鑰需要簽署請求時,才輸入密鑰。

Claude Desktop 將這兩個欄位視為敏感設定。v0.1.0 MCPB 支援 Windows。

託管的 Streamable HTTP

託管的 API 金鑰端點位於:

https://mcp.screenshotscout.com/mcp/api-key

它僅供能夠附加靜態 HTTP 標頭的用戶端使用:

Authorization: Bearer YOUR_ACCESS_KEY

該端點僅接受存取金鑰。切勿將 Screenshot Scout 密鑰傳送給它,也不要將任一金鑰放入 URL 或工具引數中。無法附加靜態 Bearer 標頭的用戶端無法使用此端點。

需要請求簽署的 API 金鑰必須改用本地 stdio 或 MCPB,或為託管端點使用專用的未簽署存取金鑰。

使用 Docker 的本地 stdio

從原始碼檢出建置生產映像:

docker build --tag screenshotscout-mcp:local .

從本地環境傳入憑證,並保持 stdin 附加以進行 MCP stdio 流量:

docker run --rm -i --init --cap-drop=ALL --security-opt=no-new-privileges --read-only \
  -e SCREENSHOTSCOUT_ACCESS_KEY \
  -e SCREENSHOTSCOUT_SECRET_KEY \
  screenshotscout-mcp:local

SCREENSHOTSCOUT_SECRET_KEY 仍為選用。該映像以非特權使用者身分執行,僅包含編譯後的 stdio 伺服器及其生產依賴。它未宣告連接埠或容器健康檢查:MCP 用戶端擁有 stdio 程序,並透過完成 MCP 初始化來驗證就緒狀態。該映像及其在 docker-mcp-catalog.yaml 中的 Docker MCP Catalog 中繼資料是本地準備工作;這些指令不暗示任何公開映像。

工具:capture_screenshot

capture_screenshot 為提供的 URL 與選項傳送一個擷取請求。目標網頁是外部的,其回傳的內容必須視為不受信任。

輸入

url 為必填。擷取預設使用 1280×720 視窗。未指定格式時,工具會以品質 60 回傳 JPEG。resultMode 預設為 "auto"

群組輸入
目標與輸出url; format (png, jpg, jpeg, webp, gif, tiff, pdf); resultMode (auto, url_only)
位置與視窗country (兩字母國家代碼), device, deviceViewportWidth, deviceViewportHeight, colorScheme (auto, dark, light), fullPage
頁面準備blockCookieBanners, blockAds, blockChatWidgets, selector, hideSelectors, clickSelectors
時序waitUntil (load, domcontentloaded, networkidle0, networkidle2), delay (0–30 秒), navigationTimeout (5–90 秒), timeout (1–240 秒)
快取cache, cacheTtl (14,400–2,592,000 秒)
輸出調整大小imageWidth, imageHeight (1–8,192;適用於圖片與 PDF)
僅圖片imageQuality (0–100,僅 JPEG/WebP)
僅 PDFpdfPaperFormat (letter, legal, tabloid, a4, a3, content), pdfLandscape, pdfPrintBackground, pdfMargin, 各邊邊距欄位, pdfScale (大於 0 且最多 3)

當同時提供兩個輸出尺寸時,其乘積不得超過 64,000,000 像素。PDF 邊距接受 px, in, mmcm 中的非負值。imageQuality 需要 JPEG 或 WebP 輸出,而僅 PDF 選項需要 format: "pdf"

結果

  • resultModeauto、MIME 類型符合資格、尺寸已知且每邊最多 8,000 像素、原始資料最多 5 MiB,且完整的序列化結果符合目前 128,000 位元組的伺服器限制時,PNG、JPEG、WebP 與 GIF 可作為 MCP 圖片內容包含。
  • 不符合嵌入資格的擷取仍會成功,並回傳其臨時 URL 以及可操作的省略原因。
  • TIFF 僅提供 URL。
  • PDF 位元組絕不嵌入。PDF 結果包含安全的文字與結構化中繼資料,以及當 Screenshot Scout 提供結果 URL 時的資源連結。
  • resultMode: "url_only" 會省略所有格式的圖片位元組。

MCP 用戶端控制回傳的圖片內容或資源連結是否顯示或提供給模型。

結構化中繼資料可包含 screenshotUrl, screenshotUrlExpiresAt, cacheStatus, format, mimeType, imageWidth, imageHeight, inlineImageIncludedinlineImageOmissionReason

將結果 URL 視為敏感、臨時的連結,並尊重其回報的到期時間。

範例提示

  • 「將 https://example.com 以深色模式擷取為整頁 PNG。僅回傳 URL。」
  • 「拍攝 https://example.com/pricing 的 1280×720 JPEG 螢幕截圖,封鎖 Cookie 橫幅與廣告,並使用品質 80。」
  • 「建立 https://example.com/report 的 A4 PDF,啟用背景並使用 10 mm 邊距。」

隱私與安全

伺服器會將目標 URL 與選取的擷取選項傳送給 Screenshot Scout,由其載入目標網站。在擷取私人或受管制的資料之前,請先檢閱 Screenshot Scout 隱私權政策

  • 不要擷取你無權存取的頁面。
  • 不要將憑證貼入提示、工具輸入、URL、問題回報或日誌中。
  • 將本地存取金鑰與密鑰保存在用戶端管理的密鑰儲存或私人環境設定中。
  • 本地 stdio 伺服器不新增遙測。託管服務的應用程式日誌僅限於請求方法、回應狀態、持續時間與清理過的非預期錯誤。其設計不會包含憑證、目標 URL、螢幕截圖 URL、請求或回應內容或圖片位元組。
  • 在允許工具使用之前,檢閱每個目標與擷取請求。該工具是開放世界的,會消耗配額,並與外部網站互動。
  • SECURITY.md 所述,私下回報漏洞。

開發

npm ci
npm run format:check
npm run lint
npm run typecheck
npm test
npm run metadata:check
npm run registry:validate
npm run mcpb:validate
npm run mcpb:pack

授權

MIT © Oleksii Velykyi