Skip to main content
Glama
rogerheykoop

Safari Screenshot MCP Server

by rogerheykoop

Safariのスクリーンショット

macOS 上の Safari を使用してスクリーンショットをキャプチャするための Node.js MCP サーバー。

特徴

  • 特定のサイズでウィンドウのスクリーンショットをキャプチャする

  • さまざまなズームレベルのサポート

  • ページ読み込みの待機時間を設定可能

  • 捕獲後のクリーンアップ

  • ネイティブmacOSのスクリーンショット品質

Related MCP server: MCP iOS Simulator Screenshot

使用法

import { takeScreenshot } from './screenshot.js';

// Basic window screenshot
await takeScreenshot({
	url: 'https://www.apple.com',
	outputPath: './screenshot.png',
	width: 1024, // Optional: window width (default: 1024)
	height: 768, // Optional: window height (default: 768)
	waitTime: 3, // Optional: seconds to wait for load (default: 3)
	zoomLevel: 1, // Optional: page zoom level (default: 1)
});

// Responsive design testing
await takeScreenshot({
	url: 'https://www.apple.com',
	outputPath: './mobile.png',
	width: 375, // iPhone SE width
	height: 667, // iPhone SE height
	zoomLevel: 1,
});

// High-resolution capture
await takeScreenshot({
	url: 'https://www.apple.com',
	outputPath: './desktop-hd.png',
	width: 1920, // Full HD width
	height: 1080, // Full HD height
	waitTime: 5, // Wait longer for HD content
	zoomLevel: 0.8, // Zoom out slightly
});

要件

  • macOS

  • サファリ

  • Node.js >= 14.0.0

  • ターミナルにはアクセシビリティ権限が必要です(システム環境設定→セキュリティとプライバシー→プライバシー→アクセシビリティ)

インストール

npm install safari-screenshot

オプション

オプション

タイプ

デフォルト

説明

URL

必須

キャプチャするURL

出力パス

自動車

スクリーンショットを保存する場所(デフォルト: ./screenshots/[hostname]-[timestamp].png)

番号

1024

ウィンドウの幅(ピクセル単位)

身長

番号

768

ウィンドウの高さ(ピクセル単位)

待機時間

番号

3

ページの読み込みを待つ秒数

ズームレベル

番号

1

ページのズームレベル(1 = 100%)

一般的なビューポートサイズ

モジュールは、次の一般的なビューポート サイズでテストされています。

  • デスクトップ: 1920×1080 (フルHD)

  • ノートパソコン: 1366×768

  • タブレット横向き: 1024×768

  • タブレット縦向き: 768×1024

  • モバイル ラージ: 428×926 (iPhone 12 Pro Max)

  • モバイルミディアム: 390×844 (iPhone 12 Pro)

  • モバイル小: 375×667 (iPhone SE)

仕組み

  1. 指定されたウィンドウサイズでSafariを開きます

  2. URLを読み込み、ページの読み込みを待ちます

  3. 指定された場合はズームレベルを適用します

  4. ネイティブmacOSスクリーンキャプチャを使用してピクセルパーフェクトな結果を実現

  5. スクリーンショットが正常にキャプチャされたことを確認します

  6. Safariウィンドウをクリーンアップします

権限

このパッケージが動作するにはシステム イベント権限が必要です:

  1. システム環境設定 > セキュリティとプライバシー > プライバシー > アクセシビリティを開く

  2. 許可されたアプリのリストにターミナル(またはIDE)を追加します

カーソルの使用

カーソルで設定

  1. オープンカーソル

  2. 設定に移動し、「MCPサーバーを追加」

  3. 構成ダイアログで:

    • 名前: safari-screenshot

    • タイプ: command

    • コマンド: npx -y @rogerheykoop/mcp-safari-screenshot

    またはローカル開発の場合:

    • コマンド: npx -y /path/to/mcp-safari-screenshot/server.js

コマンド例

Cursor でサーバーに接続した後、次のコマンドを使用できます。

Take a screenshot of https://apple.com at desktop size

回答: 1920×1080でキャプチャします

Capture https://apple.com on iPhone 12 Pro

回答: 390×844でキャプチャします

Screenshot github.com at 50% zoom

応答:zoomLevel:0.5 でキャプチャします

サポートされているパラメータ

MCP サーバーは次の概念を理解します。

  • デバイス名(例:「iPhone」、「iPad」、「デスクトップ」)

  • サイズ(例:「1024x768」)

  • ズームレベル(例:「50% ズーム」、「2 倍ズーム」)

  • 待ち時間(例:「5秒お待ちください」)

ワークフローの例

  1. レスポンシブテスト

    Take screenshots of apple.com on iPhone, iPad, and desktop
  2. ズームテスト

    Capture github.com at 75% zoom and 125% zoom
  3. カスタムサイズ

    Screenshot example.com at 1440x900

ヒント

  • スクリーンショットはデフォルトでscreenshotsディレクトリに保存されます

  • デバイス名は適切な寸法を自動的に設定します

  • サーバーはSafariウィンドウのクリーンアップを処理します

  • 読み込みが遅いページには「X秒待つ」を使用してください

トラブルシューティング

問題が発生した場合:

  1. ターミナルにアクセシビリティ権限があるか確認する

  2. Safariがプライベートブラウジングモードになっていないことを確認する

  3. 作業ディレクトリが書き込み可能であることを確認する

  4. カーソルのコンソールでエラーメッセージを確認してください

ライセンス

マサチューセッツ工科大学

ローカルテスト

MCP 実装を直接テストできます。

# Test discovery
echo '{"type":"discover"}' | npx -y ./server.js

# Test screenshot
echo '{"type":"execute","tool":"take_screenshot","input":"Take a screenshot of https://apple.com","requestId":"123"}' | npx -y ./server.js

予想される応答:

  1. Discoverは機能を返します

  2. 実行すると次のようになります:

    • 進行状況をstderrに記録する

    • 結果のJSONを標準出力に返す

    • スクリーンショットを./screenshots/に保存します

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rogerheykoop/mcp-safari-screenshot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server