MCP Web Browser Server

Integrations

  • Enables execution of JavaScript code on web pages through the execute_javascript method, allowing interaction with dynamic web content.

Servidor de navegador web MCP

Un servidor de navegación web avanzado para el Protocolo de Contexto de Modelo (MCP) impulsado por Playwright, que permite interacciones de navegador sin cabeza a través de una API flexible y segura.

🌐 Características

  • Navegación web sin interfaz gráfica : navegue a cualquier sitio web sin necesidad de validar el certificado SSL.
  • Extracción de contenido de página completa : recupera contenido HTML completo, incluido JavaScript cargado dinámicamente
  • Compatibilidad con múltiples pestañas : cree, administre y cambie entre múltiples pestañas del navegador
  • Herramientas avanzadas de interacción web :
    • Extraer contenido de texto
    • Haga clic en los elementos de la página
    • Introducir texto en los campos de formulario
    • Capturar capturas de pantalla
    • Extraer enlaces de páginas con capacidades de filtrado
    • Desplácese por las páginas en cualquier dirección
    • Ejecutar JavaScript en las páginas
    • Actualizar páginas
    • Espere a que se complete la navegación
  • Gestión de recursos : Limpieza automática de recursos no utilizados después de la inactividad
  • Información de página mejorada : obtenga metadatos detallados sobre la página actual

🚀 Inicio rápido

Prerrequisitos

  • Python 3.10+
  • Kit de desarrollo de software de MCP
  • Dramaturgo

Instalación

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

Configuración para Claude Desktop

Añade a tu claude_desktop_config.json :

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

💡 Ejemplos de uso

# 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")

Interacción web

# 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")

Captura de pantalla

# 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")

Extracción de enlaces

# 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)

Interacciones avanzadas

# 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)

🛡️ Funciones de seguridad

  • Omisión de la validación del certificado SSL
  • Gestión segura del contexto del navegador
  • Configuración personalizada del agente de usuario
  • Manejo de errores y registro completo
  • Configuraciones de tiempo de espera configurables
  • Control de derivación de CSP
  • Protección contra el robo de cookies

🔧 Solución de problemas

Problemas comunes

  • Errores del certificado SSL : se omiten automáticamente
  • Carga de página lenta : ajuste el tiempo de espera en el método browse_to()
  • Elemento no encontrado : Verifique los selectores cuidadosamente
  • Uso de recursos del navegador : limpieza automática después de un período de inactividad

Explotación florestal

Todos los eventos importantes se registran con información detallada para una fácil depuración.

📋 Parámetros de la herramienta

browse_to(url: str, context: Optional[Any] = None)

  • url : Sitio web al que navegar
  • context : objeto de contexto opcional (actualmente sin uso)

extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)

  • selector : Selector CSS opcional para extraer contenido específico
  • context : objeto de contexto opcional (actualmente sin uso)

click_element(selector: str, context: Optional[Any] = None)

  • selector : selector CSS del elemento en el que hacer clic
  • context : objeto de contexto opcional (actualmente sin uso)

get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)

  • full_page : Capturar una captura de pantalla de toda la página
  • selector : Elemento opcional para captura de pantalla
  • context : objeto de contexto opcional (actualmente sin uso)
  • filter_pattern : Patrón de texto opcional para filtrar enlaces
  • context : objeto de contexto opcional (actualmente sin uso)

input_text(selector: str, text: str, context: Optional[Any] = None)

  • selector : selector CSS del elemento de entrada
  • text : Texto a introducir
  • context : objeto de contexto opcional (actualmente sin uso)

create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)

  • url : URL opcional para navegar en la nueva pestaña
  • context : objeto de contexto opcional (actualmente sin uso)

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

  • tab_id : ID de la pestaña a la que cambiar
  • context : objeto de contexto opcional (actualmente sin uso)

list_tabs(context: Optional[Any] = None)

  • context : objeto de contexto opcional (actualmente sin uso)

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

  • tab_id : ID opcional de la pestaña que se cerrará (predeterminado: la pestaña actual)
  • context : objeto de contexto opcional (actualmente sin uso)

refresh_page(context: Optional[Any] = None)

  • context : objeto de contexto opcional (actualmente sin uso)

get_page_info(context: Optional[Any] = None)

  • context : objeto de contexto opcional (actualmente sin uso)

scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)

  • direction : Dirección para desplazarse ('arriba', 'abajo', 'izquierda', 'derecha')
  • amount : Cantidad a desplazar ('página', 'mitad' o un número)
  • context : objeto de contexto opcional (actualmente sin uso)

wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)

  • timeout_ms : Tiempo máximo de espera en milisegundos
  • context : objeto de contexto opcional (actualmente sin uso)

execute_javascript(script: str, context: Optional[Any] = None)

  • script : código JavaScript para ejecutar
  • context : objeto de contexto opcional (actualmente sin uso)

🤝 Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Configuración de desarrollo

# 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]

📄 Licencia

Licencia MIT

🔗 Proyectos relacionados

💬 Soporte

Si tiene problemas o preguntas, abra un problema en GitHub.

You must be authenticated.

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.

Un servidor de navegación web avanzado que permite interacciones de navegador sin cabeza a través de una API segura, proporcionando funciones como navegación, extracción de contenido, interacción con elementos y captura de capturas de pantalla.

  1. 🌐 Características
    1. 🚀 Inicio rápido
      1. Prerrequisitos
      2. Instalación
      3. Configuración para Claude Desktop
    2. 💡 Ejemplos de uso
      1. Navegación web básica
      2. Interacción web
      3. Captura de pantalla
      4. Extracción de enlaces
      5. Navegación con múltiples pestañas
      6. Interacciones avanzadas
    3. 🛡️ Funciones de seguridad
      1. 🔧 Solución de problemas
        1. Problemas comunes
        2. Explotación florestal
      2. 📋 Parámetros de la herramienta
        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. 🤝 Contribuyendo
        1. Configuración de desarrollo
      4. 📄 Licencia
        1. 🔗 Proyectos relacionados
          1. 💬 Soporte

            Related MCP Servers

            • A
              security
              F
              license
              A
              quality
              Enables browser automation using Python scripts, offering operations like taking webpage screenshots, retrieving HTML content, and executing JavaScript.
              Last updated -
              4
              18
              Python
              • Linux
            • A
              security
              A
              license
              A
              quality
              Enables browser automation with Puppeteer, supporting navigation, form interactions, and connection to active Chrome instances for comprehensive web page interaction.
              Last updated -
              8
              470
              8
              TypeScript
              MIT License
              • Apple
              • Linux
            • -
              security
              F
              license
              -
              quality
              This server enables running a Model Context Protocol in a web browser with functionalities including arithmetic operations and session-based key-value storage.
              Last updated -
              2
              TypeScript
            • -
              security
              F
              license
              -
              quality
              A Model Context Protocol server that provides browser automation capabilities using BrowserCat's cloud browser service. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment without needing to install browsers locally.
              Last updated -
              39

            View all related MCP servers

            ID: lwqlaw6k6d