A simple MCP Server for controlling Chrome via Puppeteer について
Puppeteer MCP Serverは、Puppeteerを通じてChromiumを操作し、AIアシスタントによるブラウザー自動化を可能にします。リモートデバッグを有効にしたブラウザーに接続し、ページの生のDOMとコンソール出力も取得できます。
主な機能
- 01URLへの移動
- 02開いているタブURLの一覧表示
- 03CSSセレクターによる要素のクリック
- 04ページのスクリーンショット取得
- 05HTMLとコンソール出力の取得
活用シーン
- 01ウェブページの移動とクリックの自動化
- 02ページHTMLの確認
- 03ブラウザーコンソールエラーの調査
MCP 対応
stdin/stdoutのパイプ通信で、ブラウザー操作ツールをMCPクライアントに公開します。Chromiumとはリモートデバッグプロトコルで接続します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:7742/sseclaude mcp add --transport http puppeteer http://localhost:7742/sse{"mcpServers":{"puppeteer":{"type":"http","url":"http://localhost:7742/sse"}}}Cursor で開く{"servers":{"puppeteer":{"type":"http","url":"http://localhost:7742/sse"}}}VS Code で開く{"mcpServers":{"puppeteer":{"type":"http","url":"http://localhost:7742/sse"}}}{"mcpServers":{"puppeteer":{"serverUrl":"http://localhost:7742/sse"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Puppeteer MCP サーバー
インテリジェントなブラウザー管理機能を備えた Puppeteer によるブラウザー自動化機能を提供する Model Context Protocol(MCP)サーバーです。このサーバーを使うと、AI アシスタントが Chromium ブラウザーを操作し、スクリーンショットを撮影し、コンテンツを抽出して、ウェブページを操作できます。
✨ この実装がほかの実装と大きく異なる点は、ページの生の DOM コンテンツとコンソールにアクセスできることです!
MCP クライアントの設定
MCP クライアントの設定に以下を追加してください。
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": [
"-y",
"@ratiofu/mcp-puppeteer"
]
}
}
}
注意:
- MCP クライアントによっては、サーバーの追加設定オプションに対応しています。高度な設定については、MCP クライアントのドキュメントを参照してください。
- ほかの Puppeteer ベースの MCP サーバーを使用している場合は、競合を避けるために
"puppeteer-ratiofu"のような固有の名前を使用してください。一度に実行する Puppeteer MCP サーバーは 1 つだけにし、サーバー名を変更した場合は、ローカルのエージェント向けガイダンスも適宜更新してください。
利用可能なツール
navigate:URL に移動しますlist_tab_urls:開いているすべてのタブの URL を一覧表示しますclick:CSS セレクターで要素をクリックしますtake_screenshot:ページのスクリーンショットを撮影しますget_html:ページの HTML コンテンツを抽出しますget_console:ブラウザーのコンソール出力を取得します
前提条件
リモートデバッグを有効にした状態で Chromium を実行する必要があります。
macOS
open -a "Chromium" --args --remote-debugging-port=9222
Linux
chromium --remote-debugging-port=9222
Windows
chromium --remote-debugging-port=9222
動作の仕組み
MCP クライアントが必要とすると、サーバーは npx を使って自動的にダウンロードされ、実行されます。手動でインストールする必要はありません!Chromium のリモートデバッグプロトコルを使用してブラウザーを操作します。
トラブルシューティング
Chromium の接続に関する問題
エラー:「Could not connect to Chromium」
Chromium が実際に起動していることを確認してください(上記を参照)。
ブラウザーで http://localhost:9222/json を開くと、Chromium の準備ができているか確認できます。
MCP クライアントに関する問題
サーバーが応答しない場合:
- Chromium がデバッグポートを有効にして実行されていることを確認してください(「前提条件」セクションを参照)
- MCP クライアントの設定が例と一致していることを確認してください
- Node.js 22+ がインストールされていることを確認してください(
node --version)
手動でテストする必要がある場合:
echo '{}' | npx @ratiofu/mcp-puppeteer
開発
ローカル開発の場合:
git clone https://github.com/ratiofu/mcp-puppeteer
cd mcp-puppeteer
pnpm install
pnpm run build
pnpm start
開発用スクリプト
pnpm run dev # Auto-rebuild and restart
pnpm run test # Run unit tests
pnpm run test:coverage # Run tests with coverage
pnpm run quality # Full quality pipeline (typecheck + lint + test coverage)
pnpm run lint # Check code with Biome linter
pnpm run lint:fix # Auto-fix linting and formatting issues
pnpm run inspector # Test with MCP Inspector
アーキテクチャ
- パイプトランスポート:MCP クライアントと stdin/stdout で直接通信します
- Puppeteer Core:ブラウザーをバンドルせずにブラウザー自動化を行います
- 自動クリーンアップ:プロセスの終了時にブラウザーリソースをクリーンアップします
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。