mcpField
P
Puppeteer MCP Server (Python Implementation)

Puppeteer MCP Server (Python Implementation)

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

Puppeteer MCP Server (Python Implementation) について

Puppeteer MCP Server(Python 実装)は、Playwright によるブラウザ自動化機能を提供し、LLM が実際のブラウザでウェブページを開き、スクリーンショットを撮り、フォームに入力し、JavaScript を実行できるようにします。エラー処理とログ記録を重視した Python 版で、TypeScript 版の代替として位置づけられています。

主な機能

  1. 01タイムアウト設定に対応したページ遷移
  2. 02ページ全体と要素のスクリーンショット
  3. 03フォーム項目のクリックと入力
  4. 04ブラウザでの JavaScript 実行
  5. 05コンソールログの取得

活用シーン

  1. 01LLM によるウェブページの表示と内容確認
  2. 02ページ全体や特定要素のスクリーンショットの自動取得
  3. 03ウェブフォームへの入力と操作

MCP 対応

本プロジェクトは MCP サーバーであり、ページ遷移、スクリーンショット、クリック、入力、スクリプト実行などのブラウザ操作を MCP クライアントに公開します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Puppeteer MCP Server(Python 実装)

Playwright(Python における Puppeteer 相当)を使用してブラウザー自動化機能を提供する Model Context Protocol サーバーです。このサーバーにより、LLM は実際のブラウザー環境でウェブページを操作し、スクリーンショットを撮影し、JavaScript を実行できます。

概要

この Python 実装は、TypeScript 版と同じ機能を提供しつつ、エラー処理とログ記録を改善した安定した代替手段です。Puppeteer の Python 相当である Playwright を使用し、堅牢なブラウザー自動化機能を提供します。

主な機能

  • ブラウザーの完全な自動化
  • ページのナビゲーション
  • スクリーンショットの撮影(ページ全体または要素)
  • フォーム操作(クリックと入力)
  • JavaScript の実行
  • コンソールログの監視
  • タイムアウトの設定
  • 詳細なエラー処理
  • 包括的なログ記録

前提条件

  • Python 3.8+
  • pip(Python パッケージインストーラー)

インストール

  1. 必要なパッケージをインストールします:
pip install -r requirements.txt
  1. Playwright のブラウザーをインストールします:
playwright install

使用方法

サーバーの起動

サーバーを直接実行します:

python puppeteer_server.py
Claude Desktop の設定

Claude の設定ファイルに以下を追加します:

{
  "mcpServers": {
    "puppeteer": {
      "command": "python",
      "args": ["path/to/puppeteer.py"]
    }
  }
}

利用可能なツール

puppeteer_navigate

ブラウザーで任意の URL に移動します。

{
  "name": "puppeteer_navigate",
  "arguments": {
    "url": "https://example.com",
    "timeout": 60000  // optional, defaults to 60000ms
  }
}
puppeteer_screenshot

ページ全体または特定の要素のスクリーンショットを撮影します。

{
  "name": "puppeteer_screenshot",
  "arguments": {
    "name": "my_screenshot",
    "selector": "#specific-element",  // optional
    "width": 1280,  // optional, default: 1280
    "height": 720,  // optional, default: 720
    "timeout": 30000  // optional, defaults to 30000ms
  }
}
puppeteer_click

ページ上の要素をクリックします。

{
  "name": "puppeteer_click",
  "arguments": {
    "selector": ".button-class",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}
puppeteer_fill

入力フィールドに入力します。

{
  "name": "puppeteer_fill",
  "arguments": {
    "selector": "#input-id",
    "value": "text to fill",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}
puppeteer_evaluate

ブラウザーのコンソールで JavaScript を実行します。

{
  "name": "puppeteer_evaluate",
  "arguments": {
    "script": "document.title",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

エラー処理

このサーバーは、よくある状況について詳細なエラーメッセージを提供します:

  • ナビゲーションの失敗
  • 要素が見つからない
  • タイムアウトエラー
  • JavaScript の実行エラー
  • スクリーンショットの撮影失敗

ログ記録

異なるレベルを使用した包括的なログ記録を実装しています:

  • INFO:標準的な操作
  • ERROR:操作の失敗
  • DEBUG:実行に関する詳細情報

注意事項

  • デバッグしやすいよう、ブラウザーはヘッドレスモードを無効にして起動します
  • デフォルトのビューポートサイズは 1280x720 です
  • すべてのタイムアウトは設定可能です
  • コンソールログは取得され、保存されます
  • スクリーンショットは base64 エンコードでメモリに保存されます

貢献

貢献を歓迎します!プルリクエストを送信する前に、リポジトリの貢献ガイドラインをお読みください。

作者

Todd Wolven - AI ソフトウェア開発リード、オープンソース GenAI エンジニア

ライセンス

このプロジェクトは Apache 2.0 License の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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