Skyvern
oficialServidor MCP de automatización de navegador impulsado por IA: navega sitios, completa formularios, extrae datos y gestiona inicios de sesión a través de Claude Code CLI
¿Qué puedes hacer con Skyvern MCP?
- Ejecutar tareas de navegador en lenguaje natural — Pide a tu asistente que ejecute flujos de trabajo web de varios pasos mediante
page.agent.run_task(), como "Encuentra la publicación más popular en hackernews hoy". - Extraer datos estructurados de páginas — Usa
page.extract()con un esquema JSON opcional para obtener información específica, como detalles de pedidos o listados de productos. - Realizar acciones de Playwright aumentadas con IA — Haz clic, rellena, selecciona o sube archivos usando indicaciones en lenguaje natural en lugar de selectores CSS/XPath, por ejemplo,
page.click(prompt="Haz clic en el botón verde Enviar"). - Validar el estado de la página — Usa
page.validate()para comprobar condiciones como el estado de inicio de sesión, devolviendo un resultado booleano. - Autenticarse con credenciales almacenadas — Aprovecha
page.agent.login()para iniciar sesión usando credenciales de Skyvern, Bitwarden o 1Password, incluido el soporte para 2FA. - Descargar archivos mediante indicaciones — Instruye a
page.agent.download_files()para navegar y recuperar archivos, que se suben al almacenamiento de bloques.
Documentación
🐉 Automatiza flujos de trabajo basados en navegador usando LLMs y Visión por Computadora 🐉
Skyvern automatiza flujos de trabajo basados en navegador usando LLMs y visión por computadora. Proporciona un SDK compatible con Playwright que añade funcionalidad de IA sobre playwright, así como un constructor de flujos de trabajo sin código para ayudar tanto a usuarios técnicos como no técnicos a automatizar flujos de trabajo manuales en cualquier sitio web, reemplazando soluciones de automatización frágiles o poco confiables.
Los enfoques tradicionales para la automatización de navegadores requerían escribir scripts personalizados para sitios web, a menudo dependiendo del análisis del DOM e interacciones basadas en XPath que se rompían cada vez que cambiaba el diseño del sitio web.
En lugar de depender únicamente de interacciones XPath definidas en código, Skyvern se basa en LLMs de Visión para aprender e interactuar con los sitios web.
Cómo funciona
Skyvern se inspiró en el diseño de agente autónomo impulsado por tareas popularizado por BabyAGI y AutoGPT — con una gran ventaja adicional: le damos a Skyvern la capacidad de interactuar con sitios web utilizando bibliotecas de automatización de navegadores como Playwright.
Skyvern utiliza un enjambre de agentes para comprender un sitio web, planificar y ejecutar sus acciones:
Este enfoque tiene varias ventajas:
- Skyvern puede operar en sitios web que nunca ha visto antes, ya que es capaz de mapear elementos visuales a las acciones necesarias para completar un flujo de trabajo, sin ningún código personalizado
- Skyvern es resistente a los cambios en el diseño del sitio web, ya que no hay XPaths u otros selectores predeterminados que nuestro sistema busque al intentar navegar
- Skyvern puede tomar un solo flujo de trabajo y aplicarlo a una gran cantidad de sitios web, ya que puede razonar sobre las interacciones necesarias para completar el flujo de trabajo Un informe técnico detallado se puede encontrar aquí.
Demo
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Inicio rápido
Skyvern Cloud
Skyvern Cloud es una versión administrada en la nube de Skyvern que te permite ejecutar Skyvern sin preocuparte por la infraestructura. Te permite ejecutar múltiples instancias de Skyvern en paralelo y viene con mecanismos de detección anti-bot, red de proxies y solucionadores de CAPTCHA.
Si deseas probarlo, navega a app.skyvern.com y crea una cuenta.
Ejecutar localmente (IU + Servidor)
Elige tu método de configuración preferido:
Base de datos predeterminada:
skyvern quickstartyskyvern run serverusan por defecto una base de datos SQLite en~/.skyvern/data.db, por lo que la ruta pip funciona sin Postgres o Docker. Para usar Postgres en su lugar, pasa--database-stringpara una base de datos existente (u omite--no-postgrespara quequickstartinicie su propio contenedor Postgres). Docker Compose siempre utiliza el servicio Postgres incluido.
Opción A: pip install (Recomendado para configuración local con Python)
Dependencias necesarias:
Adicionalmente, para Windows:
- Rust
- VS Code con herramientas de desarrollo de C++ y SDK de Windows
1. Instalar Skyvern
pip install "skyvern[all]"
2. Ejecutar Skyvern
skyvern quickstart
El inicio rápido con pip usa SQLite por defecto. Para usar un contenedor Postgres local en su lugar, ejecuta skyvern quickstart (el contenedor Postgres se inicia a menos que pases --no-postgres), o conéctate a una base de datos existente con --database-string=postgresql+psycopg://user:pass@host:5432/dbname.
Opción B: Docker Compose
Usa esta opción si deseas que todo esté contenerizado (Postgres, API, IU) y no quieres instalar Python/Node localmente.
- Instala Docker Desktop
- Clona el repositorio:
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern - Configura tu proveedor de LLM en
.env(el comandoquickstart --docker-composea continuación lo creará a partir de.env.examplesi falta):cp .env.example .env # if not already created # edit .env to add your LLM API key - Inicia todo:
docker compose up -d - Abre http://localhost:8080
Solución de problemas
(sqlite3.OperationalError) table organizations already exists — Te has encontrado con un error conocido en pip install skyvern==1.0.31. Solución:
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
Si aún estás en 1.0.31 y no puedes actualizar, instala usando uv en su lugar:
uv pip install skyvern
pip install skyvern falla con ResolutionImpossible (litellm / fastmcp) — Te has encontrado con un conflicto de resolución de dependencias en 1.0.31. Actualiza a 1.0.32+ o usa uv: uv pip install skyvern.
SDK
Skyvern es una extensión de Playwright que añade automatización de navegador impulsada por IA. Te brinda todo el poder de Playwright con capacidades adicionales de IA: usa indicaciones en lenguaje natural para interactuar con elementos, extraer datos y automatizar flujos de trabajo complejos de múltiples pasos.
Instalación:
- SDK de Python / API en la nube:
pip install skyvern - Servidor local + IU empaquetada:
pip install "skyvern[all]"luego ejecutaskyvern quickstart - Servidor local + IU empaquetada con Postgres:
pip install "skyvern[all]"luego ejecutaskyvern quickstart --database-string=postgresql+psycopg://user:pass@host:5432/dbname - IU empaquetada para una API existente:
pip install "skyvern[ui]"luego configuraVITE_API_BASE_URL(yVITE_SKYVERN_API_KEYsi tu API requiere una clave) y ejecutaskyvern run ui - TypeScript:
npm install @skyvern/client
Comandos de página impulsados por IA
Skyvern añade cuatro comandos de IA centrales directamente en el objeto de página:
| Comando | Descripción |
|---|---|
page.act(prompt) | Realiza acciones usando lenguaje natural (ej., "Haz clic en el botón de inicio de sesión") |
page.extract(prompt, schema) | Extrae datos estructurados de la página con un esquema JSON opcional |
page.validate(prompt) | Valida el estado de la página, devuelve bool (ej., "Verifica si el usuario ha iniciado sesión") |
page.prompt(prompt, schema) | Envía indicaciones arbitrarias al LLM con un esquema de respuesta opcional |
Adicionalmente, page.agent proporciona comandos de flujo de trabajo de nivel superior:
| Comando | Descripción |
|---|---|
page.agent.run_task(prompt) | Ejecuta tareas complejas de múltiples pasos |
page.agent.login(credential_type, credential_id) | Autentica con credenciales almacenadas (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | Navega y descarga archivos |
page.agent.run_workflow(workflow_id) | Ejecuta flujos de trabajo predefinidos |
Acciones de Playwright mejoradas con IA
Todas las acciones estándar de Playwright admiten un parámetro opcional prompt para la localización de elementos impulsada por IA:
| Acción | Playwright | Mejorada con IA |
|---|---|---|
| Clic | page.click("#btn") | page.click(prompt="Click login button") |
| Rellenar | page.fill("#email", "a@b.com") | page.fill(prompt="Email field", value="a@b.com") |
| Seleccionar | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| Subir | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="Upload area", files="doc.pdf") |
Tres modos de interacción:
# 1. Traditional Playwright - CSS/XPath selectors
await page.click("#submit-button")
# 2. AI-powered - natural language
await page.click(prompt="Click the green Submit button")
# 3. AI fallback - tries selector first, falls back to AI if it fails
await page.click("#submit-btn", prompt="Click the Submit button")
Comandos de IA Centrales - Ejemplos
# act - Perform actions using natural language
await page.act("Click the login button and wait for the dashboard to load")
# extract - Extract structured data with optional JSON schema
result = await page.extract("Get the product name and price")
result = await page.extract(
prompt="Extract order details",
schema={"order_id": "string", "total": "number", "items": "array"}
)
# validate - Check page state (returns bool)
is_logged_in = await page.validate("Check if the user is logged in")
# prompt - Send arbitrary prompts to the LLM
summary = await page.prompt("Summarize what's on this page")
Ejemplos de inicio rápido
Ejecutar a través de la IU:
skyvern run all
Navega a http://localhost:8080 para ejecutar tareas a través de la interfaz web. Si la IU empaquetada falta, skyvern run ui ofrecerá instalar el paquete de IU correspondiente.
Para ejecutar solo la IU empaquetada contra una API de Skyvern existente, instala skyvern[ui] y configura las
variables de entorno a continuación antes de ejecutar skyvern run ui:
VITE_API_BASE_URL(ej.,http://localhost:8000/api/v1) — apunta la IU a tu API de SkyvernVITE_SKYVERN_API_KEY— la clave de API si tu API requiere unaVITE_WSS_BASE_URL— endpoint WebSocket (se infiere deVITE_API_BASE_URLsi no está configurado)VITE_ARTIFACT_API_BASE_URL— URL base para descargas de artefactosVITE_BROWSER_STREAMING_MODE— modo de transmisión del viewport del navegador
SDK de Python:
from skyvern import Skyvern
# Local mode
skyvern = Skyvern.local()
# Or connect to Skyvern Cloud
skyvern = Skyvern(api_key="your-api-key")
# Launch browser and get page
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()
# Mix Playwright with AI-powered actions
await page.goto("https://example.com")
await page.click("#login-button") # Traditional Playwright
await page.agent.login(credential_type="skyvern", credential_id="cred_123") # AI login
await page.click(prompt="Add first item to cart") # AI-augmented click
await page.agent.run_task("Complete checkout with: John Snow, 12345") # AI task
SDK de TypeScript:
import { Skyvern } from "@skyvern/client";
const skyvern = new Skyvern({ apiKey: "your-api-key" });
const browser = await skyvern.launchCloudBrowser();
const page = await browser.getWorkingPage();
// Mix Playwright with AI-powered actions
await page.goto("https://example.com");
await page.click("#login-button"); // Traditional Playwright
await page.agent.login("skyvern", { credentialId: "cred_123" }); // AI login
await page.click({ prompt: "Add first item to cart" }); // AI-augmented click
await page.agent.runTask("Complete checkout with: John Snow, 12345"); // AI task
await browser.close();
Ejecución de tarea simple:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
Uso avanzado
Controla tu propio navegador (Chrome)
Permite que Skyvern controle tu navegador Chrome existente — con todas tus cookies, inicios de sesión y extensiones.
Paso 1: Habilita la depuración remota en Chrome
- Abre Chrome y navega a
chrome://inspect/#remote-debugging - Haz clic en Habilitar para iniciar el servidor de depuración
- Deberías ver: Servidor ejecutándose en: 127.0.0.1:9222
[!TIP] El comando
skyvern init browserpuede hacer esto automáticamente — abrechrome://inspect/#remote-debugging, espera a que lo habilites y guarda la configuración.
Paso 2: Conecta Skyvern
Opción A — Código Python:
from skyvern import Skyvern
skyvern = Skyvern(
base_url="http://localhost:8000",
api_key="YOUR_API_KEY",
browser_address="http://127.0.0.1:9222",
)
task = await skyvern.run_task(
prompt="Find the top post on hackernews today",
)
Opción B — Servicio Skyvern:
Añade dos variables a tu archivo .env:
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Reinicia el servicio Skyvern skyvern run all y ejecuta la tarea a través de la IU o código
Conecta Skyvern Cloud a tu navegador local
Permite que Skyvern Cloud controle un navegador Chrome que se ejecuta en tu máquina — con todas tus cookies, inicios de sesión y extensiones existentes. Útil para automatizar sitios donde ya has iniciado sesión o estás detrás de una VPN.
# One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
Luego usa la URL del túnel en tu tarea:
from skyvern import Skyvern
skyvern = Skyvern(api_key="your-api-key")
task = await skyvern.run_task(
prompt="Download the latest invoice from my account",
browser_address="https://abc123.ngrok-free.dev",
)
[!ADVERTENCIA] Usa siempre
--api-keyal exponer tu navegador a través de un túnel. Sin ella, cualquiera con la URL tiene control total de tu navegador. Consulta la documentación de seguridad.
Consulta la documentación completa para todas las opciones, configuración manual del túnel y solución de problemas.
Obtén un esquema de salida consistente de tu ejecución
Puedes hacer esto añadiendo el parámetro data_extraction_schema:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(
prompt="Find the top post on hackernews today",
data_extraction_schema={
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the top post"
},
"url": {
"type": "string",
"description": "The URL of the top post"
},
"points": {
"type": "integer",
"description": "Number of points the post has received"
}
}
}
)
Comandos útiles para depurar problemas
# Launch the Skyvern Server Separately*
skyvern run server
# Launch the Skyvern UI
skyvern run ui
# Check status of the Skyvern service
skyvern status
# Stop the Skyvern service
skyvern stop all
# Stop the Skyvern UI
skyvern stop ui
# Stop the Skyvern Server Separately
skyvern stop server
Rendimiento y Evaluación
Skyvern tiene un rendimiento de última generación en el benchmark WebBench con un 64.4% de precisión. El informe técnico y la evaluación se pueden encontrar aquí
Rendimiento en tareas WRITE (ej., llenar formularios, iniciar sesión, descargar archivos, etc.)
Skyvern es el agente con mejor rendimiento en tareas WRITE (ej., llenar formularios, iniciar sesión, descargar archivos, etc.), que se utilizan principalmente para tareas adyacentes a RPA (Automatización Robótica de Procesos).
Funciones de Skyvern
Tareas de Skyvern
Las tareas son el bloque de construcción fundamental dentro de Skyvern. Cada tarea es una solicitud única a Skyvern, indicándole que navegue a través de un sitio web y logre un objetivo específico.
Las tareas requieren que especifiques un url, prompt, y pueden incluir opcionalmente un data schema (si deseas que la salida se ajuste a un esquema específico) y error codes (si deseas que Skyvern deje de ejecutarse en situaciones específicas).
Flujos de trabajo de Skyvern
Los flujos de trabajo son una forma de encadenar múltiples tareas para formar una unidad de trabajo cohesiva.
Por ejemplo, si deseas descargar todas las facturas posteriores al 1 de enero, podrías crear un flujo de trabajo que primero navegue a la página de facturas, luego filtre para mostrar solo las facturas posteriores al 1 de enero, extraiga una lista de todas las facturas elegibles e itere sobre cada factura para descargarla.
Otro ejemplo es si deseas automatizar la compra de productos de una tienda de comercio electrónico, podrías crear un flujo de trabajo que primero navegue al producto deseado y luego lo agregue al carrito. En segundo lugar, navegaría al carrito y validaría su estado. Finalmente, pasaría por el proceso de pago para comprar los artículos.
Las funciones de flujo de trabajo compatibles incluyen:
- Tarea de navegador
- Acción de navegador
- Extracción de datos
- Validación
- Bucles For
- Análisis de archivos
- Envío de correos electrónicos
- Indicaciones de texto
- Bloque de solicitud HTTP
- Bloque de código personalizado
- Subida de archivos al almacenamiento de bloques
- (Próximamente) Condicionales
Transmisión en vivo
Skyvern te permite transmitir en vivo el viewport del navegador a tu máquina local para que puedas ver exactamente lo que Skyvern está haciendo en la web. Esto es útil para depurar y comprender cómo Skyvern está interactuando con un sitio web, e intervenir cuando sea necesario
Relleno de formularios
Skyvern es capaz de rellenar de forma nativa los campos de formulario en sitios web. Pasar información a través de navigation_goal permitirá que Skyvern comprenda la información y rellene el formulario en consecuencia.
Extracción de datos
Skyvern también es capaz de extraer datos de un sitio web.
También puedes especificar un data_extraction_schema directamente en el prompt principal para indicar a Skyvern exactamente qué datos deseas extraer del sitio web, en formato jsonc. La salida de Skyvern se estructurará de acuerdo con el esquema proporcionado.
Descarga de archivos
Skyvern también es capaz de descargar archivos de un sitio web. Todos los archivos descargados se suben automáticamente al almacenamiento en bloques (si está configurado), y puedes acceder a ellos a través de la interfaz de usuario.
Autenticación
Skyvern admite varios métodos de autenticación diferentes para facilitar la automatización de tareas detrás de un inicio de sesión. Si deseas probarlo, contáctanos por correo electrónico o discord.
🔐 Soporte 2FA (TOTP)
Skyvern admite varios métodos 2FA diferentes para permitirte automatizar flujos de trabajo que requieran 2FA.
Ejemplos incluyen:
- 2FA basada en QR (p. ej., Google Authenticator, Authy)
- 2FA basada en correo electrónico
- 2FA basada en SMS
🔐 Aprende más sobre el soporte 2FA aquí.
Integraciones con gestores de contraseñas
Skyvern actualmente admite las siguientes integraciones con gestores de contraseñas:
- Bitwarden
- Custom Credential Service (HTTP API)
- 1Password
- LastPass
Protocolo de Contexto de Modelo (MCP)
Skyvern admite el Protocolo de Contexto de Modelo (MCP) para permitirte usar cualquier LLM que sea compatible con MCP.
Consulta la documentación de MCP aquí
Integración con Zapier / Make.com / N8N
Skyvern admite Zapier, Make.com y N8N para permitirte conectar tus flujos de trabajo de Skyvern con otras aplicaciones.
🔐 Aprende más sobre el soporte 2FA aquí.
Ejemplos reales de Skyvern
Nos encanta ver cómo se utiliza Skyvern en el mundo real. Aquí tienes algunos ejemplos de cómo se utiliza Skyvern para automatizar flujos de trabajo en el mundo real. ¡Abre PRs para añadir tus propios ejemplos!
Descarga de facturas en muchos sitios web diferentes
Reserva una demo para verlo en vivo
Automatiza el proceso de solicitud de empleo
Automatiza la adquisición de materiales para una empresa de fabricación
Navegar a sitios web gubernamentales para registrar cuentas o rellenar formularios
Rellenar formularios aleatorios de contacto
Obtener cotizaciones de seguros de proveedores de seguros en cualquier idioma
Configuración para contribuyentes
Asegúrate de tener uv instalado.
- Ejecuta esto para crear tu entorno virtual (
.venv)uv sync --group dev - Realiza la configuración inicial del servidor
uv run skyvern quickstart - Navega a
http://localhost:8080en tu navegador para comenzar a usar la interfaz de usuario La CLI de Skyvern admite entornos Windows, WSL, macOS y Linux.
Documentación
Puedes encontrar documentación más extensa en nuestra 📕 página de documentación. Por favor, avísanos si algo no está claro o falta abriendo un issue o contactándonos por correo electrónico o discord.
LLMs compatibles
| Proveedor | Modelos compatibles |
|---|---|
| OpenAI | GPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini |
| Anthropic | Claude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus) |
| Azure OpenAI | Cualquier modelo GPT implementado en tu suscripción de Azure |
| AWS Bedrock | Claude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus) |
| Gemini | Gemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash |
| Ollama | Ejecuta cualquier modelo alojado localmente mediante Ollama |
| OpenRouter | Accede a modelos a través de OpenRouter |
| Compatible con OpenAI | Cualquier endpoint de API personalizado que siga el formato de API de OpenAI (vía liteLLM) |
Para una configuración detallada del LLM, incluyendo todas las claves de modelo disponibles, variables de entorno y configuraciones de múltiples modelos, consulta la documentación de configuración del LLM.
Contribuciones
¡Damos la bienvenida a PRs y sugerencias! No dudes en abrir un PR/issue o contactarnos por correo electrónico o discord. Echa un vistazo a nuestra guía de contribución y a los issues "Help Wanted" para comenzar.
Si quieres conversar con el repositorio de Skyvern para obtener una visión general de cómo está estructurado, cómo construir sobre él y cómo resolver preguntas de uso, consulta Code Sage.
Telemetría
Por defecto, Skyvern recopila estadísticas básicas de uso para ayudarnos a entender cómo se utiliza Skyvern. Si deseas optar por no participar en la telemetría, establece la variable de entorno SKYVERN_TELEMETRY en false.
Licencia
El repositorio de código abierto de Skyvern está respaldado por una nube gestionada. Toda la lógica central que impulsa a Skyvern está disponible en este repositorio de código abierto bajo la Licencia AGPL-3.0, con la excepción de las medidas anti-bot disponibles en nuestra oferta de nube gestionada.
Si tienes alguna pregunta o inquietud sobre la licencia, por favor contáctanos y estaremos encantados de ayudarte.