Skyvern
oficialServidor MCP de automação de navegador com IA — navegue em sites, preencha formulários, extraia dados e gerencie logins via Claude Code CLI
O que você pode fazer com Skyvern MCP?
- Executar tarefas de navegador em linguagem natural — Peça ao seu assistente para executar fluxos de trabalho web de várias etapas via
page.agent.run_task(), como "Encontre a postagem mais popular do hackernews hoje". - Extrair dados estruturados de páginas — Use
page.extract()com um esquema JSON opcional para obter informações específicas, como detalhes de pedidos ou listagens de produtos. - Executar ações do Playwright aumentadas por IA — Clique, preencha, selecione ou envie arquivos usando prompts em linguagem natural em vez de seletores CSS/XPath, por exemplo,
page.click(prompt="Click the green Submit button"). - Validar o estado da página — Use
page.validate()para verificar condições como status de login, retornando um resultado booleano. - Autenticar com credenciais armazenadas — Utilize
page.agent.login()para fazer login usando credenciais do Skyvern, Bitwarden ou 1Password, incluindo suporte a 2FA. - Baixar arquivos via prompts — Instrua
page.agent.download_files()a navegar e recuperar arquivos, que são enviados para o armazenamento em blocos.
Documentação
🐉 Automatize fluxos de trabalho baseados em navegador usando LLMs e Visão Computacional 🐉
Skyvern automatiza fluxos de trabalho baseados em navegador usando LLMs e visão computacional. Ele fornece um SDK compatível com Playwright que adiciona funcionalidades de IA sobre o Playwright, além de um construtor de fluxos de trabalho sem código para ajudar usuários técnicos e não técnicos a automatizar tarefas manuais em qualquer site, substituindo soluções de automação frágeis ou não confiáveis.
Abordagens tradicionais para automação de navegador exigiam a escrita de scripts personalizados para sites, muitas vezes dependendo de análise de DOM e interações baseadas em XPath, que quebravam sempre que o layout do site mudava.
Em vez de depender apenas de interações XPath definidas em código, o Skyvern usa LLMs de visão para aprender e interagir com os sites.
Como funciona
O Skyvern foi inspirado no design de agente autônomo orientado a tarefas popularizado por BabyAGI e AutoGPT — com um grande bônus: damos ao Skyvern a capacidade de interagir com sites usando bibliotecas de automação de navegador como Playwright.
O Skyvern usa um enxame de agentes para compreender um site, planejar e executar suas ações:
Essa abordagem tem algumas vantagens:
- O Skyvern pode operar em sites que nunca viu antes, pois é capaz de mapear elementos visuais para as ações necessárias para concluir um fluxo de trabalho, sem qualquer código personalizado
- O Skyvern é resistente a mudanças de layout do site, pois não há XPaths pré-determinados ou outros seletores que nosso sistema procura ao tentar navegar
- O Skyvern é capaz de pegar um único fluxo de trabalho e aplicá-lo a um grande número de sites, pois é capaz de raciocinar sobre as interações necessárias para concluir o fluxo de trabalho Um relatório técnico detalhado pode ser encontrado aqui.
Demonstração
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Início rápido
Skyvern Cloud
Skyvern Cloud é uma versão gerenciada em nuvem do Skyvern que permite executar o Skyvern sem se preocupar com a infraestrutura. Ele permite executar várias instâncias do Skyvern em paralelo e vem com mecanismos de detecção anti-bot, rede de proxy e solucionadores de CAPTCHA.
Se quiser experimentar, navegue até app.skyvern.com e crie uma conta.
Executar localmente (UI + Servidor)
Escolha o método de configuração preferido:
Padrão do banco de dados:
skyvern quickstarteskyvern run serverusam por padrão um banco de dados SQLite em~/.skyvern/data.db, então o caminho pip funciona sem Postgres ou Docker. Para usar Postgres, passe--database-stringpara um banco existente (ou omita--no-postgrespara quequickstartinicie seu próprio contêiner Postgres). O Docker Compose sempre usa o serviço Postgres incluído.
Opção A: pip install (Recomendado para configuração local gerenciada por Python)
Dependências necessárias:
Adicionalmente, para Windows:
- Rust
- VS Code com ferramentas de desenvolvimento C++ e Windows SDK
1. Instalar o Skyvern
pip install "skyvern[all]"
2. Executar o Skyvern
skyvern quickstart
O início rápido via pip usa SQLite por padrão. Para usar um contêiner Postgres local, execute skyvern quickstart (o contêiner Postgres é iniciado a menos que você passe --no-postgres), ou conecte-se a um banco existente com --database-string=postgresql+psycopg://user:pass@host:5432/dbname.
Opção B: Docker Compose
Use esta opção se quiser tudo em contêineres (Postgres, API, UI) e não quiser instalar Python/Node localmente.
- Instale o Docker Desktop
- Clone o repositório:
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern - Configure seu provedor de LLM em
.env(o comandoquickstart --docker-composeabaixo criará a partir de.env.examplese não existir):cp .env.example .env # if not already created # edit .env to add your LLM API key - Inicie tudo:
docker compose up -d - Abra http://localhost:8080
Solução de problemas
(sqlite3.OperationalError) table organizations already exists — Você encontrou um bug conhecido em pip install skyvern==1.0.31. Correção:
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
Se você ainda estiver na versão 1.0.31 e não puder atualizar, instale via uv:
uv pip install skyvern
pip install skyvern falha com ResolutionImpossible (litellm / fastmcp) — Você encontrou um conflito de resolução de dependências na versão 1.0.31. Atualize para 1.0.32+ ou use uv: uv pip install skyvern.
SDK
O Skyvern é uma extensão do Playwright que adiciona automação de navegador com IA. Ele oferece todo o poder do Playwright com recursos adicionais de IA — use prompts em linguagem natural para interagir com elementos, extrair dados e automatizar fluxos de trabalho complexos de várias etapas.
Instalação:
- SDK Python / API em nuvem:
pip install skyvern - Servidor local + UI empacotada:
pip install "skyvern[all]"e depois executeskyvern quickstart - Servidor local + UI empacotada com Postgres:
pip install "skyvern[all]"e depois executeskyvern quickstart --database-string=postgresql+psycopg://user:pass@host:5432/dbname - UI empacotada para uma API existente:
pip install "skyvern[ui]"e depois definaVITE_API_BASE_URL(eVITE_SKYVERN_API_KEYse sua API exigir uma chave) e executeskyvern run ui - TypeScript:
npm install @skyvern/client
Comandos de página com IA
O Skyvern adiciona quatro comandos principais de IA diretamente no objeto de página:
| Comando | Descrição |
|---|---|
page.act(prompt) | Executar ações usando linguagem natural (ex.: "Clique no botão de login") |
page.extract(prompt, schema) | Extrair dados estruturados da página com esquema JSON opcional |
page.validate(prompt) | Validar o estado da página, retorna bool (ex.: "Verificar se o usuário está logado") |
page.prompt(prompt, schema) | Enviar prompts arbitrários ao LLM com esquema de resposta opcional |
Além disso, page.agent fornece comandos de fluxo de trabalho de nível superior:
| Comando | Descrição |
|---|---|
page.agent.run_task(prompt) | Executar tarefas complexas de várias etapas |
page.agent.login(credential_type, credential_id) | Autenticar com credenciais armazenadas (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | Navegar e baixar arquivos |
page.agent.run_workflow(workflow_id) | Executar fluxos de trabalho pré-construídos |
Ações do Playwright aumentadas com IA
Todas as ações padrão do Playwright suportam um parâmetro opcional prompt para localização de elementos com IA:
| Ação | Playwright | Aumentada com IA |
|---|---|---|
| Clique | page.click("#btn") | page.click(prompt="Click login button") |
| Preencher | page.fill("#email", "a@b.com") | page.fill(prompt="Email field", value="a@b.com") |
| Selecionar | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| Enviar arquivo | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="Upload area", files="doc.pdf") |
Três modos de interação:
# 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")
Exemplos de comandos principais de IA
# 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")
Exemplos de início rápido
Executar via UI:
skyvern run all
Navegue até http://localhost:8080 para executar tarefas pela interface web. Se a UI empacotada estiver ausente, skyvern run ui oferecerá instalar o pacote de UI correspondente.
Para executar apenas a UI empacotada contra uma API Skyvern existente, instale skyvern[ui] e defina as
variáveis de ambiente abaixo antes de executar skyvern run ui:
VITE_API_BASE_URL(ex.:http://localhost:8000/api/v1) — aponta a UI para sua API SkyvernVITE_SKYVERN_API_KEY— a chave da API se sua API exigir umaVITE_WSS_BASE_URL— endpoint WebSocket (inferido deVITE_API_BASE_URLse não definido)VITE_ARTIFACT_API_BASE_URL— URL base para downloads de artefatosVITE_BROWSER_STREAMING_MODE— modo de streaming da viewport do navegador
SDK 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 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();
Execução de tarefa simples:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
Uso avançado
Controlar seu próprio navegador (Chrome)
Deixe o Skyvern controlar seu navegador Chrome existente — com todos os seus cookies, logins e extensões.
Passo 1: Ativar a depuração remota no Chrome
- Abra o Chrome e navegue até
chrome://inspect/#remote-debugging - Clique em Ativar para iniciar o servidor de depuração
- Você deve ver: Servidor em execução em: 127.0.0.1:9222
[!TIP] O comando
skyvern init browserpode fazer isso automaticamente — ele abrechrome://inspect/#remote-debugging, espera você ativar e salva a configuração.
Passo 2: Conectar o Skyvern
Opção 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",
)
Opção B — Serviço Skyvern:
Adicione duas variáveis ao seu arquivo .env:
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Reinicie o serviço Skyvern skyvern run all e execute a tarefa pela UI ou código
Conectar o Skyvern Cloud ao seu navegador local
Deixe o Skyvern Cloud controlar um navegador Chrome em execução na sua máquina — com todos os seus cookies, logins e extensões existentes. Útil para automatizar sites onde você já está logado ou atrás de uma VPN.
# One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
Depois use a URL do túnel na sua tarefa:
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] Sempre use
--api-keyao expor seu navegador via túnel. Sem isso, qualquer pessoa com a URL terá controle total do seu navegador. Veja a documentação de segurança.
Veja a documentação completa para todas as opções, configuração manual de túnel e solução de problemas.
Obter um esquema de saída consistente da sua execução
Você pode fazer isso adicionando o 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 úteis 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
Desempenho e Avaliação
O Skyvern tem desempenho SOTA no benchmark WebBench com 64,4% de precisão. O relatório técnico + avaliação podem ser encontrados aqui
Desempenho em tarefas WRITE (ex.: preencher formulários, fazer login, baixar arquivos, etc.)
O Skyvern é o agente com melhor desempenho em tarefas WRITE (ex.: preencher formulários, fazer login, baixar arquivos, etc.), que são usadas principalmente para tarefas adjacentes a RPA (Automação de Processos Robóticos).
Recursos do Skyvern
Tarefas do Skyvern
As tarefas são o bloco de construção fundamental dentro do Skyvern. Cada tarefa é uma única solicitação ao Skyvern, instruindo-o a navegar por um site e alcançar um objetivo específico.
As tarefas exigem que você especifique um url, prompt, e podem opcionalmente incluir um data schema (se você quiser que a saída esteja em conformidade com um esquema específico) e error codes (se você quiser que o Skyvern pare de executar em situações específicas).
Fluxos de trabalho do Skyvern
Fluxos de trabalho são uma forma de encadear várias tarefas para formar uma unidade coesa de trabalho.
Por exemplo, se você quisesse baixar todas as faturas mais recentes que 1º de janeiro, você poderia criar um fluxo de trabalho que primeiro navegasse até a página de faturas, depois filtrasse para mostrar apenas faturas mais recentes que 1º de janeiro, extraísse uma lista de todas as faturas elegíveis e iterasse por cada fatura para baixá-la.
Outro exemplo é se você quisesse automatizar a compra de produtos em uma loja de e-commerce. Você poderia criar um fluxo de trabalho que primeiro navegasse até o produto desejado, depois o adicionasse ao carrinho. Em segundo lugar, navegaria até o carrinho e validaria o estado do carrinho. Finalmente, passaria pelo processo de checkout para comprar os itens.
Os recursos suportados de fluxo de trabalho incluem:
- Tarefa de navegador
- Ação de navegador
- Extração de dados
- Validação
- Laços For
- Análise de arquivos
- Envio de e-mails
- Prompts de texto
- Bloco de solicitação HTTP
- Bloco de código personalizado
- Upload de arquivos para armazenamento de blocos
- (Em breve) Condicionais
Transmissão ao vivo
O Skyvern permite transmitir ao vivo a viewport do navegador para sua máquina local, para que você possa ver exatamente o que o Skyvern está fazendo na web. Isso é útil para depuração e para entender como o Skyvern está interagindo com um site, e intervir quando necessário
## Preenchimento de Formulários
O Skyvern é nativamente capaz de preencher campos de formulário em sites. Informações passadas via navigation_goal permitirão que o Skyvern compreenda as informações e preencha o formulário de acordo.
Extração de Dados
O Skyvern também é capaz de extrair dados de um site.
Você também pode especificar um data_extraction_schema diretamente no prompt principal para informar ao Skyvern exatamente quais dados deseja extrair do site, no formato jsonc. A saída do Skyvern será estruturada de acordo com o esquema fornecido.
Download de Arquivos
O Skyvern também é capaz de baixar arquivos de um site. Todos os arquivos baixados são automaticamente enviados para o armazenamento de blocos (se configurado), e você pode acessá-los via interface.
Autenticação
O Skyvern suporta vários métodos de autenticação diferentes para facilitar a automação de tarefas atrás de um login. Se quiser experimentar, entre em contato conosco por e-mail ou discord.
🔐 Suporte a 2FA (TOTP)
O Skyvern suporta vários métodos de 2FA diferentes para permitir que você automatize fluxos de trabalho que exigem 2FA.
Exemplos incluem:
- 2FA baseado em QR (ex.: Google Authenticator, Authy)
- 2FA baseado em e-mail
- 2FA baseado em SMS
🔐 Saiba mais sobre o suporte a 2FA aqui.
Integrações com Gerenciadores de Senhas
O Skyvern atualmente suporta as seguintes integrações com gerenciadores de senhas:
- Bitwarden
- Serviço de Credenciais Personalizado (API HTTP)
- 1Password
- LastPass
Protocolo de Contexto de Modelo (MCP)
O Skyvern suporta o Protocolo de Contexto de Modelo (MCP) para permitir que você use qualquer LLM que suporte MCP.
Veja a documentação do MCP aqui
Integração com Zapier / Make.com / N8N
O Skyvern suporta Zapier, Make.com e N8N para permitir que você conecte seus fluxos de trabalho do Skyvern a outros aplicativos.
🔐 Saiba mais sobre o suporte a 2FA aqui.
Exemplos do mundo real do Skyvern
Adoramos ver como o Skyvern está sendo usado no mundo real. Aqui estão alguns exemplos de como o Skyvern está sendo usado para automatizar fluxos de trabalho no mundo real. Envie PRs para adicionar seus próprios exemplos!
Download de faturas em vários sites diferentes
Agende uma demonstração para vê-lo ao vivo
Automatize o processo de candidatura a empregos
Automatize a compra de materiais para uma empresa de manufatura
Navegar em sites governamentais para registrar contas ou preencher formulários
Preenchendo formulários aleatórios de contato
Obtendo cotações de seguros de provedores de seguros em qualquer idioma
Configuração para Contribuidores
Certifique-se de ter o uv instalado.
- Execute isso para criar seu ambiente virtual (
.venv)uv sync --group dev - Realize a configuração inicial do servidor
uv run skyvern quickstart - Navegue até
http://localhost:8080no seu navegador para começar a usar a UI A CLI do Skyvern suporta ambientes Windows, WSL, macOS e Linux.
Documentação
Documentação mais extensa pode ser encontrada em nossa 📕 página de documentação. Por favor, informe-nos se algo não estiver claro ou estiver faltando abrindo uma issue ou entrando em contato por e-mail ou discord.
LLMs Suportados
| Provedor | Modelos Suportados |
|---|---|
| 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 | Quaisquer modelos GPT implantados na sua assinatura do 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 | Execute qualquer modelo hospedado localmente via Ollama |
| OpenRouter | Acesse modelos através do OpenRouter |
| Compatível com OpenAI | Qualquer endpoint de API personalizado que siga o formato da API da OpenAI (via liteLLM) |
Para configuração detalhada de LLM, incluindo todas as chaves de modelo disponíveis, variáveis de ambiente e configurações de múltiplos modelos, consulte a documentação de Configuração de LLM.
Contribuindo
Aceitamos PRs e sugestões! Não hesite em abrir um PR/issue ou entrar em contato conosco por e-mail ou discord. Dê uma olhada no nosso guia de contribuição e nas "Help Wanted" issues para começar!
Se você quiser conversar com o repositório do skyvern para ter uma visão geral de alto nível de como ele é estruturado, como desenvolver a partir dele e como resolver dúvidas de uso, confira o Code Sage.
Telemetria
Por padrão, o Skyvern coleta estatísticas básicas de uso para nos ajudar a entender como o Skyvern está sendo usado. Se você quiser desativar a telemetria, defina a variável de ambiente SKYVERN_TELEMETRY para false.
Licença
O repositório de código aberto do Skyvern é suportado por uma nuvem gerenciada. Toda a lógica principal que alimenta o Skyvern está disponível neste repositório de código aberto licenciado sob a Licença AGPL-3.0, com exceção de medidas anti-bot disponíveis em nossa oferta de nuvem gerenciada.
Se você tiver alguma dúvida ou preocupação sobre licenciamento, entre em contato conosco e teremos prazer em ajudar.