Playwright Server
Un servidor para la automatización de navegadores utilizando la librería Playwright.
Documentación
Servidor Playwright MCP
Un servidor MCP basado en Playwright que proporciona capacidades de automatización del navegador
Componentes
Recursos
El servidor implementa un sistema simple de almacenamiento de notas:
- Esquema de URI personalizado note:// para acceder a notas individuales
- Cada recurso de nota tiene nombre, descripción y tipo MIME text/plain
Prompts
El servidor proporciona una única funcionalidad de prompt:
- summarize-notes: crea un resumen de todas las notas almacenadas
- Parámetro opcional "style" que controla el nivel de detalle (brief/detailed)
- Genera un prompt que combina todas las notas actuales con la preferencia de estilo
Herramientas
El servidor implementa las siguientes herramientas relacionadas con Playwright:
Sesión y navegación
-
playwright_new_session: Crea una nueva sesión de navegador y abre la ventana del navegador- Parámetro opcional
url(cadena) que especifica la URL inicial a visitar; si no se proporciona, solo se abre el navegador
- Parámetro opcional
-
playwright_navigate: Navega a una URL específica- Requiere el parámetro
url(cadena); si no incluye el prefijo http o https, se añadirá automáticamente https:// - Si no hay una sesión de navegador activa, se crea automáticamente una nueva sesión
- Requiere el parámetro
Interacción con la página y obtención de contenido
-
playwright_screenshot: Toma una captura de pantalla de la página actual o de un elemento específico- Requiere el parámetro
name(cadena), el nombre del archivo de captura, sin necesidad de incluir la extensión - Parámetro opcional
selector(cadena), selector CSS para especificar el elemento de la página a capturar; si no se proporciona, se captura toda la página
- Requiere el parámetro
-
playwright_evaluate: Ejecuta código JavaScript en la consola del navegador- Requiere el parámetro
script(cadena), el código JavaScript que se ejecutará en el navegador
- Requiere el parámetro
-
playwright_get_text_content: Obtiene el contenido de texto de todos los elementos visibles en la página actual- Sin parámetros
- Filtra inteligentemente contenido duplicado y solo devuelve texto significativo
-
playwright_get_html_content: Obtiene el contenido HTML de un elemento específico en la página- Requiere el parámetro
selector(cadena), selector CSS para localizar el elemento de la página del cual obtener el contenido HTML
- Requiere el parámetro
Operaciones de interacción avanzada
playwright_action: Admite una rica selección de elementos y métodos de interacción- Parámetros obligatorios:
by: Método de selección de elementos, admite get_by_text, get_by_placeholder, get_by_label, get_by_role, etc.by_value: Valor para seleccionar el elementoaction: Tipo de operación, como fill, click, dblclick, hover, check, etc.
- Parámetros opcionales:
value: Valor de la operaciónforce: Si se debe forzar la ejecución de la accióndelay: Retraso entre pulsaciones de teclas (milisegundos)- Y más parámetros especializados; consulte la documentación del código
- Parámetros obligatorios:
Configuración
Requisitos del sistema
- Python 3.10+
- Playwright 1.44+
Inicio rápido
Instalación
Configuración de Claude Desktop
MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Configuración del servidor en desarrollo/no publicado
"mcpServers": {
"playwright-server": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\xxxxx\\Documents\\project\\python\\mcp\\playwright-server",
"run",
"playwright-server"
]
}
}
Configuración del servidor publicado
"mcpServers": {
"playwright-server": {
"command": "uvx",
"args": [
"playwright-server"
]
}
}
Desarrollo
Compilación y publicación
Preparar el paquete de publicación:
- Sincronizar dependencias y actualizar el archivo de bloqueo:
uv sync
- Compilar la distribución del paquete:
uv build
Esto creará distribuciones de código fuente y wheel en el directorio dist/.
- Publicar en PyPI:
uv publish
Nota: Debe configurar las credenciales de PyPI mediante variables de entorno o argumentos de comando:
- Token:
--tokenoUV_PUBLISH_TOKEN - O nombre de usuario/contraseña:
--username/UV_PUBLISH_USERNAMEy--password/UV_PUBLISH_PASSWORD
Depuración
Dado que el servidor MCP se ejecuta a través de stdio, la depuración puede ser desafiante. Para una mejor experiencia de depuración, recomendamos encarecidamente usar MCP Inspector.
Puede iniciar MCP Inspector mediante npm con el siguiente comando:
npx @modelcontextprotocol/inspector uv --directory C:\Users\xxxxx\Documents\project\python\mcp\playwright-server run playwright-server
Una vez iniciado, Inspector mostrará una URL que puede abrir en su navegador para comenzar a depurar.
Ejemplos de uso
Acceso web básico y captura de pantalla
# 创建会话并导航到指定网址
await playwright_navigate(url="example.com")
# 截取整个页面
await playwright_screenshot(name="fullpage")
# 截取特定元素
await playwright_screenshot(name="logo", selector=".logo")
Operaciones de interacción avanzada
# 点击文本匹配的按钮
await playwright_action(by="get_by_text", by_value="登录", action="click")
# 填充表单字段
await playwright_action(by="get_by_placeholder", by_value="用户名", action="fill", value="test@example.com")
# 检查元素是否可见
await playwright_action(by="get_by_test_id", by_value="submit-button", action="is_visible")