mcpField
P
Puppeteer MCP

Puppeteer MCP

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

Puppeteer MCP について

Puppeteer MCPは、開発者やコーディングエージェント向けのブラウザー自動化MCPサーバーです。単一の `execute` ツールで、Puppeteer Browser APIにアクセスするJavaScriptを実行し、セッションを再利用できます。

主な機能

  1. 01単一の `execute` ツールでJavaScriptを実行
  2. 02Puppeteer Browser APIへのアクセス
  3. 03呼び出し間でブラウザーセッションを再利用
  4. 04ヘッドレスモードとビューポートの設定
  5. 05Chromeへのカスタムフラグの受け渡し

活用シーン

  1. 01複数段階のブラウザーワークフローの自動化
  2. 02Webページのコンテンツ取得
  3. 03Puppeteerを使ったWebアプリのテスト

MCP 対応

MCPクライアントに `execute` ツールを公開し、`browser` グローバルにアクセスできるJavaScriptをNode.js VMで実行します。このVMはセキュリティサンドボックスではなく、信頼できるローカル開発向けです。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"pptr": {
"command": "npx",
"args": [
"-y",
"pptr-mcp"
]
}
}
}
起動コマンドnpx -y pptr-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmpptr-mcp

ツール

1

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
codestringはい実行する JavaScript コード。JSON にシリアライズ可能なデータを返します
persistentbooleanいいえ呼び出し間でブラウザープロファイルを再利用します。false の場合、呼び出しごとに分離されたプロファイルを作成します

詳細

pptr-mcp

Puppeteer を使用したブラウザー自動化のための MCP サーバーです。固定のツール(移動、クリック、スクリーンショット撮影)を公開する他のブラウザー MCP とは異なり、このサーバーでは Puppeteer の Browser インスタンスに直接アクセスして、任意の JavaScript コードを実行できます。

主な違い

ほとんどのブラウザー MCP サーバーは、事前に定義された限定的なアクションを提供します。この方式では、複雑なワークフローを実行するのに複数回のやり取りが必要で、エッジケースにも対応できません。

pptr-mcp は異なるアプローチを採用しています。execute という単一のツールを公開し、browser グローバルを使用できる Node.js VM 内で JavaScript コードを実行します。Puppeteer コードを直接記述できるため、1 回の呼び出しで API にフルアクセスできます。

Traditional MCP (5 round-trips)         pptr-mcp (1 round-trip)
================================        ================================

  Agent           Server                  Agent           Server
    |                |                      |                |
    |-- navigate --->|                      |-- execute ---->|
    |<-- ok ---------|                      |                |
    |                |                      |   +------------------------+
    |-- waitFor ---->|                      |   | const page = await     |
    |<-- ok ---------|                      |   |   browser.newPage();   |
    |                |                      |   | await page.goto(url);  |
    |-- click ------>|                      |   | await page.click(s);   |
    |<-- ok ---------|                      |   | await page.type(i, t); |
    |                |                      |   | return await           |
    |-- type ------->|                      |   |   page.screenshot();   |
    |<-- ok ---------|                      |   +------------------------+
    |                |                      |                |
    |-- screenshot ->|                      |<-- result -----|
    |<-- image ------|                      |                |
    |                |                      |                |

要件

  • Node.js >= 20

インストール

npm install -g pptr-mcp

MCP の設定

MCP クライアントの設定(例:Claude Desktop)に追加します。

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["pptr-mcp"]
    }
  }
}

CLI オプションを使用する場合:

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["pptr-mcp", "--no-headless", "--viewport=1080p"]
    }
  }
}

カスタムの Chrome フラグを使用する場合(-- の後):

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": [
        "pptr-mcp",
        "--viewport=1280x720",
        "--",
        "--proxy-server=http://proxy:8080"
      ]
    }
  }
}

CLI オプション

オプション説明
--no-headlessブラウザーウィンドウを表示して実行します
--viewport=VALUEビューポートのサイズを設定します(例:1920x1080 または 1080p)
--help, -hヘルプを表示します
-- [args]残りの引数を Chrome に渡します

-- より前の不明なオプションも Chrome に渡されます。

Claude Code プラグイン

Claude Code プラグインとしてインストールします。

/plugin marketplace add iatsiuk/pptr-mcp
/plugin install pptr-mcp@pptr-mcp

環境変数

変数説明
CHROME_PATHChrome 実行ファイルへのパス
PUPPETEER_EXECUTABLE_PATHCHROME_PATH の代替
PUPPETEER_CACHE_DIRブラウザーのダウンロードキャッシュディレクトリ
PPTR_MCP_TIMEOUT実行タイムアウト(ミリ秒、デフォルト:30000)

ツール:execute

Puppeteer ブラウザーにアクセスして JavaScript コードを実行します。

パラメーター
名前型デフォルト説明
codestring必須実行する JavaScript コード
persistentbooleantrue呼び出し間でブラウザーセッションを再利用します

レシピ

ヘッドレスモードを無効にする

実行中にブラウザーウィンドウを表示します。

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["pptr-mcp", "--no-headless"]
    }
  }
}
カスタムの Chrome プロファイルディレクトリ

保存済みのログイン情報や Cookie がある、自分の Chrome プロファイルを使用します。

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["pptr-mcp", "--", "--user-data-dir=/path/to/profile"]
    }
  }
}
ダウンロード版ではなくシステムの Chrome を使用する

デフォルトでは、pptr-mcp は Puppeteer 同梱版に最適化され、テスト済みのバージョンである Chrome for Testing をダウンロードします。代わりにシステムの Chrome を使用するには:

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["pptr-mcp"],
      "env": {
        "CHROME_PATH": "/path/to/chrome"
      }
    }
  }
}

セキュリティ

このサーバーは、LLM アシスタント(Claude Code、Cursor など)を使用する信頼できるローカル開発向けに設計されています。実行するコードは、ユーザーのリクエストに応じて LLM が生成します。

これが意味すること
  • サンドボックスではありません:Node.js VM による分離は利便性のためのものであり、セキュリティを目的としたものではありません。信頼できないコードの実行には設計されていません。
  • ブラウザーを完全に制御できます:実行コードは、任意の URL への移動、ページ内容の読み取り、スクリーンショットの撮影、ウェブアプリケーションの操作が可能です。
  • Chrome はサンドボックスなしで実行されます:Docker/コンテナーとの互換性のため、--no-sandbox フラグを使用します。
  • セッションは保持されます:persistent: true(デフォルト)の場合、Cookie とブラウザーの状態は呼び出し間で保持されます。分離するには persistent: false を使用してください。
次の用途には設計されていません
  • マルチテナント環境や共有サーバーへのデプロイ
  • 外部ソースからの信頼できないコードの実行
  • 任意のユーザー入力を受け付けるウェブサービスの構築

ライセンス

WTFPL

コメント

MCP は初めてですか?

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

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