Skip to main content
Glama

MCP Web Browser Server

MCP Webブラウザサーバー

Playwright を搭載した Model Context Protocol (MCP) 用の高度な Web ブラウジング サーバーで、柔軟で安全な API を通じてヘッドレス ブラウザー インタラクションが可能になります。

🌐 特徴

  • ヘッドレスWebブラウジング:SSL証明書の検証をバイパスして任意のWebサイトに移動する
  • フルページコンテンツ抽出: 動的に読み込まれたJavaScriptを含む完全なHTMLコンテンツを取得します。
  • マルチタブサポート: 複数のブラウザタブを作成、管理、切り替え
  • 高度なWebインタラクションツール:
    • テキストコンテンツを抽出する
    • ページ要素をクリック
    • フォームフィールドにテキストを入力する
    • スクリーンショットをキャプチャする
    • フィルタリング機能を使用してページリンクを抽出します
    • ページを任意の方向にスクロールします
    • ページでJavaScriptを実行する
    • ページを更新
    • ナビゲーションが完了するまでお待ちください
  • リソース管理: 非アクティブ後の未使用リソースの自動クリーンアップ
  • 拡張ページ情報: 現在のページに関する詳細なメタデータを取得します

🚀 クイックスタート

前提条件

  • Python 3.10以上
  • MCP SDK
  • 劇作家

インストール

# Install MCP and Playwright pip install mcp playwright # Install browser dependencies playwright install

Claudeデスクトップの設定

claude_desktop_config.jsonに追加します:

{ "mcpServers": { "web-browser": { "command": "python", "args": [ "/path/to/your/server.py" ] } } }

💡 使用例

基本的なウェブナビゲーション

# Browse to a website page_content = browse_to("https://example.com") # Extract page text text_content = extract_text_content() # Extract text from a specific element title_text = extract_text_content("h1.title")

ウェブインタラクション

# Navigate to a page browse_to("https://example.com/login") # Input text into a form input_text("#username", "your_username") input_text("#password", "your_password") # Click a login button click_element("#login-button")

スクリーンショットキャプチャ

# Capture full page screenshot full_page_screenshot = get_page_screenshots(full_page=True) # Capture specific element screenshot element_screenshot = get_page_screenshots(selector="#main-content")

リンク抽出

# Get all links on the page page_links = get_page_links() # Get links matching a pattern filtered_links = get_page_links(filter_pattern="contact")

マルチタブブラウジング

# Create a new tab tab_id = create_new_tab("https://example.com") # Create another tab another_tab_id = create_new_tab("https://example.org") # List all open tabs tabs = list_tabs() # Switch between tabs switch_tab(tab_id) # Close a tab close_tab(another_tab_id)

高度なインタラクション

# Scroll the page scroll_page(direction="down", amount="page") # Execute JavaScript on the page result = execute_javascript("return document.title") # Get detailed page information page_info = get_page_info() # Refresh the current page refresh_page() # Wait for navigation to complete wait_for_navigation(timeout_ms=5000)

🛡️ セキュリティ機能

  • 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 : オプションのコンテキストオブジェクト(現在は未使用)
  • 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 : 新しいタブで移動するオプションのURL
  • context : オプションのコンテキストオブジェクト(現在は未使用)

switch_tab(tab_id: str, context: Optional[Any] = None)

  • tab_id : 切り替えるタブのID
  • context : オプションのコンテキストオブジェクト(現在は未使用)

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 : オプションのコンテキストオブジェクト(現在は未使用)

🤝 貢献する

貢献を歓迎します!お気軽にプルリクエストを送信してください。

開発セットアップ

# Clone the repository git clone https://github.com/random-robbie/mcp-web-browser.git # Create virtual environment python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` # Install dependencies pip install -e .[dev]

📄 ライセンス

MITライセンス

🔗 関連プロジェクト

💬 サポート

問題や質問については、GitHub で問題を開いてください。

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

安全な API を介してヘッドレス ブラウザー インタラクションを可能にする高度な Web ブラウジング サーバーで、ナビゲーション、コンテンツの抽出、要素のインタラクション、スクリーンショットのキャプチャなどの機能を提供します。

  1. 🌐 特徴
    1. 🚀 クイックスタート
      1. 前提条件
      2. インストール
      3. Claudeデスクトップの設定
    2. 💡 使用例
      1. 基本的なウェブナビゲーション
      2. ウェブインタラクション
      3. スクリーンショットキャプチャ
      4. リンク抽出
      5. マルチタブブラウジング
      6. 高度なインタラクション
    3. 🛡️ セキュリティ機能
      1. 🔧 トラブルシューティング
        1. よくある問題
        2. ログ記録
      2. 📋 ツールパラメータ
        1. browse_to(url: str, context: Optional\[Any] = None)
        2. extract_text_content(selector: Optional\[str] = None, context: Optional\[Any] = None)
        3. click_element(selector: str, context: Optional\[Any] = None)
        4. get_page_screenshots(full_page: bool = False, selector: Optional\[str] = None, context: Optional\[Any] = None)
        5. get_page_links(filter_pattern: Optional\[str] = None, context: Optional\[Any] = None)
        6. input_text(selector: str, text: str, context: Optional\[Any] = None)
        7. create_new_tab(url: Optional\[str] = None, context: Optional\[Any] = None)
        8. switch_tab(tab_id: str, context: Optional\[Any] = None)
        9. list_tabs(context: Optional\[Any] = None)
        10. close_tab(tab_id: Optional\[str] = None, context: Optional\[Any] = None)
        11. refresh_page(context: Optional\[Any] = None)
        12. get_page_info(context: Optional\[Any] = None)
        13. scroll_page(direction: str = "down", amount: str = "page", context: Optional\[Any] = None)
        14. wait_for_navigation(timeout_ms: int = 10000, context: Optional\[Any] = None)
        15. execute_javascript(script: str, context: Optional\[Any] = None)
      3. 🤝 貢献する
        1. 開発セットアップ
      4. 📄 ライセンス
        1. 🔗 関連プロジェクト
          1. 💬 サポート

            Related MCP Servers

            • A
              security
              F
              license
              A
              quality
              Enables AI agents to interact with web browsers using natural language, featuring automated browsing, form filling, vision-based element detection, and structured JSON responses for systematic browser control.
              Last updated -
              1
              50
              Python
              • Linux
              • Apple
            • -
              security
              A
              license
              -
              quality
              Enables browser automation and real-time computer vision tasks through AI-driven commands, offering zero-cost digital navigation and interaction for enhanced web experiences.
              Last updated -
              0
              1
              JavaScript
              MIT License
            • A
              security
              A
              license
              A
              quality
              A headless browser MCP server that allows AI agents to fetch web content and perform Google searches without API keys, supporting various output formats like Markdown, JSON, HTML, and text.
              Last updated -
              2
              13
              TypeScript
              MIT License
            • A
              security
              A
              license
              A
              quality
              A headless server that enables reading and sending Gmail emails through API calls without requiring local credentials or browser access, designed to run remotely in containerized environments.
              Last updated -
              4
              6
              49
              Python
              MIT License
              • Linux
              • Apple

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/random-robbie/mcp-web-browser'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server