🚀 Peekaboo MCP: 瞬間撮影、超常現象のような高速スクリーンショット
このアプリケーションは、macOSの画面を高速にキャプチャし、AIによる画像解析を行うことができるユーティリティです。開発者やエンジニアが、UIバグの特定やデザインレビューなどの作業を効率的に行うのに役立ちます。


このアプリケーションは、macOSの画面を高速にキャプチャし、AIによる画像解析を行うことができるユーティリティです。開発者やエンジニアが、UIバグの特定やデザインレビューなどの作業を効率的に行うのに役立ちます。
🚀 クイックスタート
AIアシスタントに画面を見せることができないので、UIバグの説明が難しいということはありませんか?Peekabooは、そんな問題を解決します!このユーティリティは、macOSの画面を高速にキャプチャし、AIによる画像解析を行うことができます。
インストール
-
前提条件:
- macOS 14.0以降
- Node.js 20.0以降
-
Peekabooの起動:
Claude Desktopの設定ファイルに以下の設定を追加します。
{
"mcpServers": {
"peekaboo": {
"command": "npx",
"args": [
"-y",
"@steipete/peekaboo-mcp@beta"
],
"env": {
"PEEKABOO_AI_PROVIDERS": "ollama/llava:latest"
}
}
}
}
- Claude Desktopの再起動:
設定を反映するために、Claude Desktopを再起動します。
使い方
Peekabooが起動したら、AIアシスタントが画面を見ることができるようになります。以下のようなコマンドを使って、画像のキャプチャや解析を行うことができます。
画像のキャプチャ
{
"tool_name": "image",
"arguments": {
"mode": "screen",
"path": "~/Desktop/myscreen.png",
"format": "png"
}
}
画像の解析
{
"tool_name": "analyze",
"arguments": {
"image_path": "~/Desktop/myscreen.png",
"question": "What is the main color visible in the top-left quadrant?"
}
}
✨ 主な機能
- 高速なスクリーンショット: macOSの画面を高速にキャプチャすることができます。
- AIによる画像解析: キャプチャした画像をAIに解析させることができます。
- 多様なキャプチャモード: 画面全体、特定のアプリケーションのウィンドウ、またはアプリケーションのすべてのウィンドウをキャプチャすることができます。
- 多様なフォーマット: PNG、JPEG、WebP、HEIFなどのフォーマットで画像を保存することができます。
- 自動的な権限確認: 画面キャプチャに必要な権限を自動的に確認します。
📦 インストール
前提条件
- macOS 14.0以降
- Node.js 20.0以降
インストール手順
- Claude Desktopの設定:
Claude Desktopの設定ファイルに以下の設定を追加します。
{
"mcpServers": {
"peekaboo": {
"command": "npx",
"args": [
"-y",
"@steipete/peekaboo-mcp@beta"
],
"env": {
"PEEKABOO_AI_PROVIDERS": "ollama/llava:latest"
}
}
}
}
- Claude Desktopの再起動:
設定を反映するために、Claude Desktopを再起動します。
オプションの設定
環境変数の設定
Peekabooは、いくつかの環境変数を使って設定することができます。以下は、設定可能な環境変数の一覧です。
{
"PEEKABOO_AI_PROVIDERS": "ollama/llava:latest,openai/gpt-4o",
"PEEKABOO_LOG_LEVEL": "debug",
"PEEKABOO_LOG_FILE": "~/Library/Logs/peekaboo-mcp-debug.log",
"PEEKABOO_DEFAULT_SAVE_PATH": "~/Pictures/PeekabooCaptures",
"PEEKABOO_CONSOLE_LOGGING": "true",
"PEEKABOO_CLI_PATH": "/opt/custom/peekaboo"
}
環境変数の説明
変数名 |
説明 |
デフォルト値 |
PEEKABOO_AI_PROVIDERS |
コンマ区切りのprovider_name/default_model_for_provider のペアのリストです。例えば、"openai/gpt-4o,ollama/llava:7b" のように指定します。プロバイダに対してモデルが指定されていない場合(例えば、"openai" )、そのプロバイダのデフォルトモデルが使用されます。この設定により、analyze ツールとimage ツール(question が指定された場合)で使用可能なAIバックエンドが決まります。Ollamaの場合は、最適なビジョンモデルとして"ollama/llava:latest" をお勧めします。 |
"" (なし) |
PEEKABOO_LOG_LEVEL |
ログレベルです。trace , debug , info , warn , error , fatal のいずれかを指定します。 |
info |
PEEKABOO_LOG_FILE |
サーバのログファイルのパスです。指定されたディレクトリに書き込み権限がない場合は、システムの一時ディレクトリにフォールバックします。 |
~/Library/Logs/peekaboo-mcp.log |
PEEKABOO_DEFAULT_SAVE_PATH |
image ツールでキャプチャした画像を保存するデフォルトの絶対パスです。image ツールにpath 引数が指定された場合、その引数が優先されます。image.path もこの環境変数も設定されていない場合、Swift CLIはデフォルトの一時ディレクトリに保存します。 |
(なし、Swift CLIは一時パスを使用) |
PEEKABOO_OLLAMA_BASE_URL |
Ollama APIサーバのベースURLです。Ollamaがデフォルト以外のアドレスで実行されている場合にのみ必要です。 |
http://localhost:11434 |
PEEKABOO_CONSOLE_LOGGING |
開発用のコンソールログを有効にするかどうかを示すブール値("true" /"false" )です。 |
"false" |
PEEKABOO_CLI_PATH |
Swiftのpeekaboo CLI実行ファイルのパスをオーバーライドするオプションです。 |
(バンドルされたCLIを使用) |
Ollamaのインストール
Ollamaは、サクションをクラウドに送信せずに、ローカルで画像を解析することができる強力なAIを提供します。以下の手順で、Ollamaをインストールします。
macOS (Homebrew経由)
brew install ollama
Ollamaアプリのダウンロード
ollama.aiにアクセスし、macOS用のアプリをダウンロードします。
Ollamaデーモンの起動
ollama serve
ビジョンモデルのダウンロード
高性能マシン用
LLaVA (Large Language and Vision Assistant) は、推奨されるモデルです。
ollama pull llava:latest
ollama pull llava:7b-v1.6
ollama pull llava:13b-v1.6
ollama pull llava:34b-v1.6
低性能マシン用
Qwen2-VLは、低いリソース要件で優れたパフォーマンスを提供します。
ollama pull qwen2-vl:7b
モデルサイズガイド
qwen2-vl:7b
- 約4GBのダウンロード、約6GBのRAMが必要 (軽量マシンに最適)
llava:7b
- 約4.5GBのダウンロード、約8GBのRAMが必要
llava:13b
- 約8GBのダウンロード、約16GBのRAMが必要
llava:34b
- 約20GBのダウンロード、約40GBのRAMが必要
PeekabooとOllamaの設定
Claude Desktopの設定ファイルにOllamaを追加します。
高性能マシン用
{
"mcpServers": {
"peekaboo": {
"command": "npx",
"args": [
"-y",
"@steipete/peekaboo-mcp@beta"
],
"env": {
"PEEKABOO_AI_PROVIDERS": "ollama/llava:latest"
}
}
}
}
低性能マシン用 (Qwen2-VLを使用)
{
"mcpServers": {
"peekaboo": {
"command": "npx",
"args": [
"-y",
"@steipete/peekaboo-mcp@beta"
],
"env": {
"PEEKABOO_AI_PROVIDERS": "ollama/qwen2-vl:7b"
}
}
}
}
複数のAIプロバイダ (Ollama + OpenAI)
{
"env": {
"PEEKABOO_AI_PROVIDERS": "ollama/llava:latest,openai/gpt-4o",
"OPENAI_API_KEY": "your-api-key-here"
}
}
Ollama統合のテスト
Ollamaの実行確認
curl http://localhost:11434/api/tags
./peekaboo image --app Finder --path ~/Desktop/finder.png
権限の付与
Peekabooは、macOSの特定の権限を必要とします。以下の手順で、必要な権限を付与します。
画面キャプチャの権限
- システム環境設定 → セキュリティとプライバシー → プライバシーを開きます。
- 左側のサイドバーから画面録画を選択します。
- ロックアイコンをクリックし、パスワードを入力します。
- + をクリックし、ターミナルアプリケーションまたはMCPクライアントを追加します。
- アプリケーションを再起動します。
アクセシビリティの権限 (オプション)
ウィンドウにコマンドを送信するためには、アクセシビリティの権限が必要です。
- システム環境設定 → セキュリティとプライバシー → プライバシーを開きます。
- 左側のサイドバーからアクセシビリティを選択します。
- ターミナル/MCPクライアントアプリケーションを追加します。
Peekabooの起動確認
以下のコマンドを使って、Peekabooが正常に起動していることを確認します。
./peekaboo --help
./peekaboo list server_status --json-output
./peekaboo image --mode screen --format png
peekaboo-mcp
💻 使用例
画像のキャプチャ
{
"tool_name": "image",
"arguments": {
"mode": "screen",
"path": "~/Desktop/myscreen.png",
"format": "png"
}
}
画像の解析
{
"tool_name": "analyze",
"arguments": {
"image_path": "~/Desktop/myscreen.png",
"question": "What is the main color visible in the top-left quadrant?"
}
}
実行中のアプリケーションの一覧表示
{
"tool_name": "list",
"arguments": {
"item_type": "running_applications"
}
}
📚 ドキュメント
詳細な仕様
詳細な入出力スキーマについては、docs/spec.md
を参照してください。
トラブルシューティング
一般的な問題と解決策
問題 |
解決策 |
画像キャプチャ中に Permission denied エラーが発生する |
システム設定 → プライバシーとセキュリティで画面録画の権限を付与します。正しいアプリケーション(ターミナル、Claude、VS Codeなど)が追加され、チェックされていることを確認します。権限を変更した後、アプリを再起動します。 |
ウィンドウのキャプチャに問題がある(間違ったウィンドウ、フォーカスの問題) |
capture_focus: "foreground" を使用する場合、またはより信頼性の高いウィンドウターゲットを使用する場合は、アクセシビリティの権限を付与します。 |
Swift CLI unavailable または PEEKABOO_CLI_PATH の問題 |
peekaboo バイナリがNPMパッケージのルートにあることを確認するか、PEEKABOO_CLI_PATH が設定されている場合は、有効な実行可能ファイルを指していることを確認します。Swift CLIを直接テストすることができます: path/to/peekaboo --version 。欠落または破損している場合は、再構築します: cd peekaboo-cli && swift build -c release (その後、バイナリを適切な場所に配置するか、PEEKABOO_CLI_PATH を更新します)。 |
AI analysis failed |
PEEKABOO_AI_PROVIDERS 環境変数が正しい形式で、有効なプロバイダ/モデルのペアであることを確認します。クラウドプロバイダを使用する場合は、APIキー(例: OPENAI_API_KEY )が設定されていることを確認します。Ollamaなどのローカルサービスが実行されていることを確認します(PEEKABOO_OLLAMA_BASE_URL )。サーバのログ(PEEKABOO_LOG_FILE または PEEKABOO_CONSOLE_LOGGING="true" の場合はコンソール)を確認して、AIプロバイダからの詳細なエラーメッセージを確認します。 |
Command not found: peekaboo-mcp |
グローバルにインストールされている場合は、システムのPATHにグローバルなnpmバイナリディレクトリが含まれていることを確認します。ローカルクローンから実行する場合は、node dist/index.js または構成されたnpmスクリプトを使用します。npx の場合は、パッケージ名 @steipete/peekaboo-mcp が正しいことを確認します。 |
一般的な不具合または予期しない動作 |
Peekaboo MCPサーバのログを確認してください!デフォルトの場所は /tmp/peekaboo-mcp.log です(または PEEKABOO_LOG_FILE で設定した場所)。最大限の詳細を得るには、PEEKABOO_LOG_LEVEL=debug を設定します。 |
デバッグモードの有効化
PEEKABOO_LOG_LEVEL=debug peekaboo-mcp
./peekaboo list server_status --json-output
サポート
🔧 技術詳細
アーキテクチャ
Peekaboo/
├── src/ # Node.js MCP Server (TypeScript)
│ ├── index.ts # Main MCP server entry point
│ ├── tools/ # Individual tool implementations
│ │ ├── image.ts # Screen capture tool
│ │ ├── analyze.ts # AI analysis tool
│ │ └── list.ts # Application/window listing
│ ├── utils/ # Utility modules
│ │ ├── peekaboo-cli.ts # Swift CLI integration
│ │ ├── ai-providers.ts # AI provider management
│ │ └── server-status.ts # Server status utilities
│ └── types/ # Shared type definitions
├── peekaboo-cli/ # Native Swift CLI
│ └── Sources/peekaboo/ # Swift source files
│ ├── main.swift # CLI entry point
│ ├── ImageCommand.swift # Image capture implementation
│ ├── ListCommand.swift # Application listing
│ ├── Models.swift # Data structures
│ ├── ApplicationFinder.swift # App discovery logic
│ ├── WindowManager.swift # Window management
│ ├── PermissionsChecker.swift # macOS permissions
│ └── JSONOutput.swift # JSON response formatting
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # This file
JSON出力
Swift CLIを --json-output
オプションで呼び出すと、構造化されたJSONが出力されます。
{
"success": true,
"data": {
"applications": [
{
"app_name": "Safari",
"bundle_id": "com.apple.Safari",
"pid": 1234,
"is_active": true,
"window_count": 2
}
]
},
"debug_logs": ["Found 50 applications"]
}
MCPサーバの機能
- スキーマ検証: Zodを使用して、入力データの検証を行います。
- エラーハンドリング: 適切なMCPエラーコードを使用して、エラーをハンドリングします。
- ロギング: Pinoロガーを使用して、サーバのログを記録します。
- 型安全: TypeScriptを使用して、コードベース全体で型安全を保証します。
権限の管理
Peekabooは、macOSのセキュリティを尊重し、画面キャプチャ操作の前に画面録画の権限をチェックします。権限がない場合、エラーメッセージを表示し、ユーザーに必要な権限を付与するように誘導します。
📄 ライセンス
このプロジェクトは、MITライセンスの下でライセンスされています。詳細については、LICENSE
ファイルを参照してください。
🧛 コントリビューション
- リポジトリをフォークします。
- 新しいフィーチャブランチを作成します (
git checkout -b feature/amazing-feature
)。
- 変更をコミットします (
git commit -m 'Add amazing feature'
)。
- ブランチにプッシュします (
git push origin feature/amazing-feature
)。
- プルリクエストを作成します。
🎃 Peekabooがあなたのコマンドを待っています! このスペクトラルサーバは、macOSの禁断APIとNode.jsのエーテル領域の間のベールを越え、あなたに魂をキャプチャし、その秘密を解き明かす力を与えます。ハッピーハンティング! 👻