Skyvern

oficial

Servidor 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:

  1. 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
  2. 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
  3. 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 quickstart y skyvern run server usan 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-string para una base de datos existente (u omite --no-postgres para que quickstart inicie 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.

  1. Instala Docker Desktop
  2. Clona el repositorio:
    git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
    
  3. Configura tu proveedor de LLM en .env (el comando quickstart --docker-compose a continuación lo creará a partir de .env.example si falta):
    cp .env.example .env  # if not already created
    # edit .env to add your LLM API key
    
  4. Inicia todo:
    docker compose up -d
    
  5. 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 ejecuta skyvern quickstart
  • Servidor local + IU empaquetada con Postgres: pip install "skyvern[all]" luego ejecuta skyvern quickstart --database-string=postgresql+psycopg://user:pass@host:5432/dbname
  • IU empaquetada para una API existente: pip install "skyvern[ui]" luego configura VITE_API_BASE_URL (y VITE_SKYVERN_API_KEY si tu API requiere una clave) y ejecuta skyvern 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:

ComandoDescripció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:

ComandoDescripció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ónPlaywrightMejorada con IA
Clicpage.click("#btn")page.click(prompt="Click login button")
Rellenarpage.fill("#email", "a@b.com")page.fill(prompt="Email field", value="a@b.com")
Seleccionarpage.select_option("#country", "US")page.select_option(prompt="Country dropdown", value="US")
Subirpage.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 Skyvern
  • VITE_SKYVERN_API_KEY — la clave de API si tu API requiere una
  • VITE_WSS_BASE_URL — endpoint WebSocket (se infiere de VITE_API_BASE_URL si no está configurado)
  • VITE_ARTIFACT_API_BASE_URL — URL base para descargas de artefactos
  • VITE_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

  1. Abre Chrome y navega a chrome://inspect/#remote-debugging
  2. Haz clic en Habilitar para iniciar el servidor de depuración
  3. Deberías ver: Servidor ejecutándose en: 127.0.0.1:9222

[!TIP] El comando skyvern init browser puede hacer esto automáticamente — abre chrome://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-key al 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:

  1. Tarea de navegador
  2. Acción de navegador
  3. Extracción de datos
  4. Validación
  5. Bucles For
  6. Análisis de archivos
  7. Envío de correos electrónicos
  8. Indicaciones de texto
  9. Bloque de solicitud HTTP
  10. Bloque de código personalizado
  11. Subida de archivos al almacenamiento de bloques
  12. (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:

  1. 2FA basada en QR (p. ej., Google Authenticator, Authy)
  2. 2FA basada en correo electrónico
  3. 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

💡 Verlo en acción

Automatiza la adquisición de materiales para una empresa de fabricación

💡 Verlo en acción

Navegar a sitios web gubernamentales para registrar cuentas o rellenar formularios

💡 Verlo en acción

Rellenar formularios aleatorios de contacto

💡 Verlo en acción

Obtener cotizaciones de seguros de proveedores de seguros en cualquier idioma

💡 Verlo en acción

💡 Verlo en acción

Configuración para contribuyentes

Asegúrate de tener uv instalado.

  1. Ejecuta esto para crear tu entorno virtual (.venv)
    uv sync --group dev
    
  2. Realiza la configuración inicial del servidor
    uv run skyvern quickstart
    
  3. Navega a http://localhost:8080 en 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

ProveedorModelos compatibles
OpenAIGPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini
AnthropicClaude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus)
Azure OpenAICualquier modelo GPT implementado en tu suscripción de Azure
AWS BedrockClaude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus)
GeminiGemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash
OllamaEjecuta cualquier modelo alojado localmente mediante Ollama
OpenRouterAccede a modelos a través de OpenRouter
Compatible con OpenAICualquier 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.

Historial de estrellas

Star History Chart