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
Configuración para Claude Desktop
Añade a tu claude_desktop_config.json
:
💡 Ejemplos de uso
Navegación web básica
Interacción web
Captura de pantalla
Extracción de enlaces
Navegación con múltiples pestañas
Interacciones avanzadas
🛡️ 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 navegarcontext
: 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íficocontext
: objeto de contexto opcional (actualmente sin uso)
click_element(selector: str, context: Optional[Any] = None)
selector
: selector CSS del elemento en el que hacer cliccontext
: 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áginaselector
: Elemento opcional para captura de pantallacontext
: objeto de contexto opcional (actualmente sin uso)
get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
filter_pattern
: Patrón de texto opcional para filtrar enlacescontext
: objeto de contexto opcional (actualmente sin uso)
input_text(selector: str, text: str, context: Optional[Any] = None)
selector
: selector CSS del elemento de entradatext
: Texto a introducircontext
: 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ñacontext
: 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 cambiarcontext
: 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 milisegundoscontext
: objeto de contexto opcional (actualmente sin uso)
execute_javascript(script: str, context: Optional[Any] = None)
script
: código JavaScript para ejecutarcontext
: 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
📄 Licencia
Licencia MIT
🔗 Proyectos relacionados
💬 Soporte
Si tiene problemas o preguntas, abra un problema en GitHub.
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.
- 🌐 Características
- 🚀 Inicio rápido
- 💡 Ejemplos de uso
- 🛡️ Funciones de seguridad
- 🔧 Solución de problemas
- 📋 Parámetros de la herramienta
- 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)
- 🤝 Contribuyendo
- 📄 Licencia
- 🔗 Proyectos relacionados
- 💬 Soporte
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityEnables 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 -150Python
- -securityAlicense-qualityEnables 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 -01JavaScriptMIT License
- AsecurityAlicenseAqualityA 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 -213TypeScriptMIT License
- AsecurityAlicenseAqualityA 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 -4649PythonMIT License