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?
-
Ejecuta tareas del navegador desde indicaciones en lenguaje natural — Usa
skyvern.run_taskpara navegar sitios web y completar objetivos como "Encuentra la publicación más popular en HackerNews hoy." -
Extrae datos estructurados con un esquema — Pasa un
data_extraction_schemaaskyvern.run_taskpara obtener una salida JSON consistente que coincida con tus propiedades definidas. -
Controla tu propio navegador Chrome — Conecta Skyvern a una instancia local de Chrome mediante depuración remota para automatizar sitios usando tus cookies e inicios de sesión existentes.
-
Ejecuta interacciones de página impulsadas por IA — Usa
page.act,page.extract,page.validateopage.agent.run_taskpara interactuar con páginas usando lenguaje natural en lugar de selectores. -
Encadena flujos de trabajo de varios pasos — Crea flujos de trabajo en la interfaz de usuario que combinen tareas del navegador, extracción de datos, validación, descargas de archivos y solicitudes HTTP en una única secuencia automatizada.
Documentación
🐉 Automatiza flujos de trabajo basados en navegador usando LLMs y Visión Artificial 🐉
Skyvern automatiza flujos de trabajo basados en navegador usando LLMs y visión artificial. 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 manuales en cualquier sitio web, reemplazando soluciones de automatización frágiles o poco fiables.
Los enfoques tradicionales para automatizaciones de navegador requerían escribir scripts personalizados para sitios web, a menudo basándose en análisis del DOM e interacciones basadas en XPath que se rompían cada vez que cambiaban los diseños de los sitios web.
En lugar de depender únicamente de interacciones XPath definidas por 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 orientado a tareas popularizado por BabyAGI y AutoGPT — con una gran ventaja adicional: le damos a Skyvern la capacidad de interactuar con sitios web usando bibliotecas de automatización de navegadores como Playwright.
Skyvern utiliza un enjambre de agentes para comprender un sitio web, y 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 de diseño del sitio web, ya que no hay XPaths predeterminados u otros selectores que nuestro sistema busque al intentar navegar.
- Skyvern es capaz de tomar un único flujo de trabajo y aplicarlo a un gran número de sitios web, ya que puede razonar sobre las interacciones necesarias para completar el flujo de trabajo. Se puede encontrar un informe técnico detallado aquí.
Demostración
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Inicio rápido
Skyvern Cloud
Skyvern Cloud es una versión gestionada 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 e incluye mecanismos de detección anti-bot, red proxy y solucionadores de CAPTCHA.
Si deseas probarlo, navega a app.skyvern.com y crea una cuenta.
Ejecutar localmente (UI + Servidor)
Elige tu método de configuración preferido:
Base de datos por defecto:
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--postgrespara un contenedor local o--database-stringpara una base de datos existente. Docker Compose siempre usa el servicio Postgres incluido.
Opción A: instalación pip (Recomendado para configuración local gestionada por Python)
Dependencias necesarias:
Además, para Windows:
- Rust
- VS Code con herramientas de desarrollo C++ y Windows SDK
1. Instalar Skyvern
pip install "skyvern[all]"
2. Ejecutar Skyvern
skyvern quickstart
El inicio rápido con pip usa SQLite por defecto. Para un contenedor Postgres local, ejecuta skyvern quickstart --postgres.
Opción B: Docker Compose
Usa esta opción si quieres todo contenedorizado (Postgres, API, UI) 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 LLM en
.env(el comandoquickstart --docker-composea continuación lo creará desde.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 — Has encontrado 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 todavía estás en 1.0.31 y no puedes actualizar, instala mediante uv en su lugar:
uv pip install skyvern
pip install skyvern falla con ResolutionImpossible (litellm / fastmcp) — Has encontrado 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 potenciada por IA. Te da 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 + UI empaquetada:
pip install "skyvern[all]"luego ejecutaskyvern quickstart - Servidor local + UI empaquetada con Postgres:
pip install "skyvern[all]"luego ejecutaskyvern quickstart --postgres - UI empaquetada para una API existente:
pip install "skyvern[ui]"luego ejecutaskyvern run ui --api-url <api-url> --api-key <api-key> - TypeScript:
npm install @skyvern/client
Comandos de página potenciados por IA
Skyvern añade cuatro comandos centrales de IA directamente en el objeto 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 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 esquema de respuesta opcional |
Además, 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 aumentadas con IA
Todas las acciones estándar de Playwright admiten un parámetro opcional prompt para la localización de elementos potenciada por IA:
| Acción | Playwright | Aumentada 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 centrales de IA - 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 mediante UI:
skyvern run all
Navega a http://localhost:8080 para ejecutar tareas a través de la interfaz web. Si falta la UI empaquetada, skyvern run ui ofrecerá instalar el paquete de UI correspondiente. Para configuración no interactiva, usa skyvern run ui --install-ui o skyvern run all --install-ui.
Para ejecutar solo la UI empaquetada contra una API Skyvern existente, instala skyvern[ui] y pasa
--api-url; la CLI infiere --wss-url de la URL de la API a menos que lo sobrescribas. También puedes establecer
VITE_API_BASE_URL, VITE_WSS_BASE_URL, VITE_ARTIFACT_API_BASE_URL, VITE_SKYVERN_API_KEY,
y VITE_BROWSER_STREAMING_MODE antes de ejecutar skyvern run ui.
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)
Deja 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 Enable para iniciar el servidor de depuración
- Deberías ver: Server running at: 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 UI o código
Conecta Skyvern Cloud a tu navegador local
Deja que Skyvern Cloud controle un navegador Chrome ejecutándose 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",
)
[!WARNING] Siempre usa
--api-keyal exponer tu navegador a través de un túnel. Sin ello, 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 hacerlo 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 una precisión del 64.4%. El informe técnico + evaluación se puede encontrar aquí
Rendimiento en tareas WRITE (ej., rellenar formularios, iniciar sesión, descargar archivos, etc.)
Skyvern es el agente con mejor rendimiento en tareas WRITE (ej., rellenar formularios, iniciar sesión, descargar archivos, etc.), que se utilizan principalmente para tareas adyacentes a RPA (Automatización Robótica de Procesos).
Características de Skyvern
Tareas de Skyvern
Las tareas son el bloque de construcción fundamental dentro de Skyvern. Cada tarea es una única solicitud a Skyvern, instruyéndole que navegue por un sitio web y logre un objetivo específico.
Las tareas requieren que especifiques un url, prompt, y opcionalmente pueden incluir un data schema (si quieres que la salida se ajuste a un esquema específico) y error codes (si quieres 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 quisieras descargar todas las facturas posteriores al 1 de enero, podrías crear un flujo de trabajo que primero navegara a la página de facturas, luego filtrara para mostrar solo las facturas posteriores al 1 de enero, extrajera una lista de todas las facturas elegibles e iterara a través de cada factura para descargarla.
Otro ejemplo es si quisieras automatizar la compra de productos en una tienda de comercio electrónico, podrías crear un flujo de trabajo que primero navegara al producto deseado, luego lo añadiera al carrito. En segundo lugar, navegaría al carrito y validaría el estado del carrito. Finalmente, pasaría por el proceso de pago para comprar los artículos.
Las características 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
- Carga de archivos a almacenamiento en bloque
- (Próximamente) Condicionales
Transmisión en vivo
Skyvern te permite transmitir en vivo la ventana gráfica 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 entender cómo Skyvern está interactuando con un sitio web, e intervenir cuando sea necesario.
Relleno de formularios
Skyvern es capaz de forma nativa de rellenar entradas de formularios en sitios web. Pasar información a través del navigation_goal permitirá a Skyvern comprender la información y rellenar 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 dentro de la indicación principal para decirle a Skyvern exactamente qué datos te gustaría 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 cargan automáticamente al almacenamiento en bloque (si está configurado), y puedes acceder a ellos a través de la UI.
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, por favor 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 requieren 2FA.
Ejemplos incluyen:
- 2FA basado en QR (ej., Google Authenticator, Authy)
- 2FA basado en correo electrónico
- 2FA basado en SMS
🔐 Aprende más sobre el soporte 2FA aquí.
Integraciones de gestores de contraseñas
Skyvern actualmente admite las siguientes integraciones de gestores de contraseñas:
- Bitwarden
- Servicio de credenciales personalizado (API HTTP)
- 1Password
- LastPass
Protocolo de Contexto del Modelo (MCP)
Skyvern admite el Protocolo de Contexto del Modelo (MCP) para permitirte usar cualquier LLM que soporte 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 del mundo real de Skyvern
Nos encanta ver cómo se usa Skyvern en la práctica. Aquí hay algunos ejemplos de cómo se está utilizando Skyvern para automatizar flujos de trabajo en el mundo real. ¡Por favor, abre PRs para añadir tus propios ejemplos!
Descarga de facturas en muchos sitios web diferentes
Reserva una demostración para verlo en vivo
Automatizar el proceso de solicitud de empleo
Automatizar la adquisición de materiales para una empresa manufacturera
Navegar a sitios web gubernamentales para registrar cuentas o rellenar formularios
Rellenar formularios de contacto aleatorios
Obtener cotizaciones de seguros de proveedores en cualquier idioma
Configuración para contribuidores
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 UI La CLI de Skyvern es compatible con entornos Windows, WSL, macOS y Linux.
Documentación
Se puede encontrar documentación más extensa en nuestra 📕 página de docs. 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 desplegado 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 a través de 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 (a través de liteLLM) |
Para una configuración detallada de LLM incluyendo todas las claves de modelo disponibles, variables de entorno y configuraciones multi-modelo, consulta la documentación de configuración de LLM.
Contribuir
¡Damos la bienvenida a PRs y sugerencias! No dudes en abrir un PR/issue o contactarnos por correo electrónico o discord. ¡Por favor, echa un vistazo a nuestra guía de contribución y issues "Help Wanted" para comenzar!
Si quieres chatear con el repositorio de Skyvern para obtener una visión general de alto nivel de cómo está estructurado, cómo construir sobre él y cómo resolver preguntas de uso, echa un vistazo a Code Sage.
Telemetría
Por defecto, Skyvern recopila estadísticas básicas de uso para ayudarnos a entender cómo se está utilizando Skyvern. Si deseas optar por no participar en la telemetría, por favor establece la variable de entorno SKYVERN_TELEMETRY a false.
Licencia
El repositorio de código abierto de Skyvern está respaldado por una nube gestionada. Toda la lógica central que impulsa 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 ayudar.