local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Enables execution of JavaScript code on web pages through the execute_javascript method, allowing interaction with dynamic web content.
MCP Webブラウザサーバー
Playwright を搭載した Model Context Protocol (MCP) 用の高度な Web ブラウジング サーバーで、柔軟で安全な API を通じてヘッドレス ブラウザー インタラクションが可能になります。
🌐 特徴
- ヘッドレスWebブラウジング:SSL証明書の検証をバイパスして任意のWebサイトに移動する
- フルページコンテンツ抽出: 動的に読み込まれたJavaScriptを含む完全なHTMLコンテンツを取得します。
- マルチタブサポート: 複数のブラウザタブを作成、管理、切り替え
- 高度なWebインタラクションツール:
- テキストコンテンツを抽出する
- ページ要素をクリック
- フォームフィールドにテキストを入力する
- スクリーンショットをキャプチャする
- フィルタリング機能を使用してページリンクを抽出します
- ページを任意の方向にスクロールします
- ページでJavaScriptを実行する
- ページを更新
- ナビゲーションが完了するまでお待ちください
- リソース管理: 非アクティブ後の未使用リソースの自動クリーンアップ
- 拡張ページ情報: 現在のページに関する詳細なメタデータを取得します
🚀 クイックスタート
前提条件
- Python 3.10以上
- MCP SDK
- 劇作家
インストール
Copy
Claudeデスクトップの設定
claude_desktop_config.json
に追加します:
Copy
💡 使用例
基本的なウェブナビゲーション
Copy
ウェブインタラクション
Copy
スクリーンショットキャプチャ
Copy
リンク抽出
Copy
マルチタブブラウジング
Copy
高度なインタラクション
Copy
🛡️ セキュリティ機能
- SSL証明書検証バイパス
- 安全なブラウザコンテキスト管理
- カスタムユーザーエージェント構成
- エラー処理と包括的なログ記録
- 設定可能なタイムアウト設定
- CSPバイパス制御
- クッキー盗難防止
🔧 トラブルシューティング
よくある問題
- SSL証明書エラー: 自動的にバイパスされます
- ページの読み込みが遅い:
browse_to()
メソッドのタイムアウトを調整する - 要素が見つかりません: セレクターを慎重に確認してください
- ブラウザのリソース使用状況: 非アクティブ期間後の自動クリーンアップ
ログ記録
すべての重要なイベントは詳細な情報とともに記録され、デバッグが容易になります。
📋 ツールパラメータ
browse_to(url: str, context: Optional[Any] = None)
url
: 移動するウェブサイトcontext
: オプションのコンテキストオブジェクト(現在は未使用)
extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
selector
: 特定のコンテンツを抽出するためのオプションのCSSセレクターcontext
: オプションのコンテキストオブジェクト(現在は未使用)
click_element(selector: str, context: Optional[Any] = None)
selector
: クリックする要素のCSSセレクターcontext
: オプションのコンテキストオブジェクト(現在は未使用)
get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
full_page
: ページ全体のスクリーンショットをキャプチャするselector
: スクリーンショットのオプション要素context
: オプションのコンテキストオブジェクト(現在は未使用)
get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
filter_pattern
: リンクをフィルタリングするためのオプションのテキストパターンcontext
: オプションのコンテキストオブジェクト(現在は未使用)
input_text(selector: str, text: str, context: Optional[Any] = None)
selector
: 入力要素のCSSセレクターtext
: 入力するテキストcontext
: オプションのコンテキストオブジェクト(現在は未使用)
create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
url
: 新しいタブで移動するオプションのURLcontext
: オプションのコンテキストオブジェクト(現在は未使用)
switch_tab(tab_id: str, context: Optional[Any] = None)
tab_id
: 切り替えるタブのIDcontext
: オプションのコンテキストオブジェクト(現在は未使用)
list_tabs(context: Optional[Any] = None)
context
: オプションのコンテキストオブジェクト(現在は未使用)
close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
tab_id
: 閉じるタブのオプションID(デフォルトは現在のタブ)context
: オプションのコンテキストオブジェクト(現在は未使用)
refresh_page(context: Optional[Any] = None)
context
: オプションのコンテキストオブジェクト(現在は未使用)
get_page_info(context: Optional[Any] = None)
context
: オプションのコンテキストオブジェクト(現在は未使用)
scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
direction
: スクロールする方向('up'、'down'、'left'、'right')amount
: スクロールする量(「page」、「half」、または数値)context
: オプションのコンテキストオブジェクト(現在は未使用)
wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
timeout_ms
: 最大待機時間(ミリ秒)context
: オプションのコンテキストオブジェクト(現在は未使用)
execute_javascript(script: str, context: Optional[Any] = None)
script
: 実行するJavaScriptコードcontext
: オプションのコンテキストオブジェクト(現在は未使用)
🤝 貢献する
貢献を歓迎します!お気軽にプルリクエストを送信してください。
開発セットアップ
Copy
📄 ライセンス
MITライセンス
🔗 関連プロジェクト
💬 サポート
問題や質問については、GitHub で問題を開いてください。
You must be authenticated.
安全な API を介してヘッドレス ブラウザー インタラクションを可能にする高度な Web ブラウジング サーバーで、ナビゲーション、コンテンツの抽出、要素のインタラクション、スクリーンショットのキャプチャなどの機能を提供します。
- 🌐 Features
- 🚀 Quick Start
- 💡 Usage Examples
- 🛡️ Security Features
- 🔧 Troubleshooting
- 📋 Tool Parameters
- browse_to(url: str, context: Optional[Any] = None)
- extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
- click_element(selector: str, context: Optional[Any] = None)
- get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
- get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
- input_text(selector: str, text: str, context: Optional[Any] = None)
- create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
- switch_tab(tab_id: str, context: Optional[Any] = None)
- list_tabs(context: Optional[Any] = None)
- close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
- refresh_page(context: Optional[Any] = None)
- get_page_info(context: Optional[Any] = None)
- scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
- wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
- execute_javascript(script: str, context: Optional[Any] = None)
- 🤝 Contributing
- 📄 License
- 🔗 Related Projects
- 💬 Support