diff --git a/docs/docs.json b/docs/docs.json index 1a3fd3f8..f9cf5278 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -33,18 +33,6 @@ "running-automations/extract-structured-data" ] }, - { - "group": "Self-Hosted Deployment", - "pages": [ - "self-hosted/overview", - "self-hosted/docker", - "self-hosted/llm-configuration", - "self-hosted/browser", - "self-hosted/proxy", - "self-hosted/kubernetes", - "self-hosted/storage" - ] - }, { "group": "Multi-Step Automations", "pages": [ @@ -61,7 +49,8 @@ "going-to-production/proxy-geolocation", "going-to-production/error-handling", "going-to-production/reliability-tips", - "going-to-production/captcha-bot-detection" + "going-to-production/captcha-bot-detection", + "integrations/mcp" ] }, { @@ -71,6 +60,19 @@ "debugging/troubleshooting-guide", "debugging/faq" ] + }, + { + "group": "Self-Hosted Deployment", + "pages": [ + "self-hosted/overview", + "self-hosted/docker", + "self-hosted/llm-configuration", + "self-hosted/browser", + "self-hosted/proxy", + "self-hosted/kubernetes", + "self-hosted/storage", + "integrations/local-llms" + ] } ] }, @@ -95,6 +97,15 @@ "cloud/configure-blocks", "cloud/run-a-workflow" ] + }, + { + "group": "Integrations", + "pages": [ + "integrations/zapier", + "integrations/make", + "integrations/n8n", + "integrations/workato" + ] } ] }, diff --git a/docs/images/make/make1.mp4 b/docs/images/make/make1.mp4 new file mode 100644 index 00000000..4065f19a Binary files /dev/null and b/docs/images/make/make1.mp4 differ diff --git a/docs/images/make/make2.mp4 b/docs/images/make/make2.mp4 new file mode 100644 index 00000000..87aa234d Binary files /dev/null and b/docs/images/make/make2.mp4 differ diff --git a/docs/images/make/make3.png b/docs/images/make/make3.png new file mode 100644 index 00000000..819ce180 Binary files /dev/null and b/docs/images/make/make3.png differ diff --git a/docs/images/make/make4.png b/docs/images/make/make4.png new file mode 100644 index 00000000..8efb9822 Binary files /dev/null and b/docs/images/make/make4.png differ diff --git a/docs/images/make/make5.png b/docs/images/make/make5.png new file mode 100644 index 00000000..d9893b17 Binary files /dev/null and b/docs/images/make/make5.png differ diff --git a/docs/images/n8n/n8n1.mp4 b/docs/images/n8n/n8n1.mp4 new file mode 100644 index 00000000..ed76e269 Binary files /dev/null and b/docs/images/n8n/n8n1.mp4 differ diff --git a/docs/images/n8n/n8n2.png b/docs/images/n8n/n8n2.png new file mode 100644 index 00000000..3bff98d0 Binary files /dev/null and b/docs/images/n8n/n8n2.png differ diff --git a/docs/images/n8n/n8n3.png b/docs/images/n8n/n8n3.png new file mode 100644 index 00000000..af427fc3 Binary files /dev/null and b/docs/images/n8n/n8n3.png differ diff --git a/docs/images/n8n/n8n4.png b/docs/images/n8n/n8n4.png new file mode 100644 index 00000000..b4c8e1a1 Binary files /dev/null and b/docs/images/n8n/n8n4.png differ diff --git a/docs/images/n8n/n8n5.png b/docs/images/n8n/n8n5.png new file mode 100644 index 00000000..b44b0aa6 Binary files /dev/null and b/docs/images/n8n/n8n5.png differ diff --git a/docs/images/zapier/zap1.gif b/docs/images/zapier/zap1.gif new file mode 100644 index 00000000..d1dcfff7 Binary files /dev/null and b/docs/images/zapier/zap1.gif differ diff --git a/docs/images/zapier/zap1.mp4 b/docs/images/zapier/zap1.mp4 new file mode 100644 index 00000000..14fdfa94 Binary files /dev/null and b/docs/images/zapier/zap1.mp4 differ diff --git a/docs/images/zapier/zap2.mp4 b/docs/images/zapier/zap2.mp4 new file mode 100644 index 00000000..03c0a043 Binary files /dev/null and b/docs/images/zapier/zap2.mp4 differ diff --git a/docs/integrations/local-llms.mdx b/docs/integrations/local-llms.mdx new file mode 100644 index 00000000..1d36ca4d --- /dev/null +++ b/docs/integrations/local-llms.mdx @@ -0,0 +1,140 @@ +--- +title: Local LLMs +subtitle: Run Skyvern with Ollama or any OpenAI-compatible endpoint +slug: integrations/local-llms +--- + +Skyvern supports local LLMs for self-hosted deployments. Use Ollama directly or route through LiteLLM to connect any model provider. + +--- + +## What you'll need + +- A self-hosted Skyvern deployment +- Ollama installed locally, or an OpenAI-compatible endpoint + +--- + +## Option A: Ollama + +Use Ollama to run open-source models locally. + +### Step 1: Start Ollama + +```bash +ollama pull llama3.1 +ollama serve +``` + +The API runs at `http://localhost:11434`. + +### Step 2: Configure Skyvern + +Add to your `.env` file: + +```bash +ENABLE_OLLAMA=true +OLLAMA_SERVER_URL=http://localhost:11434 +OLLAMA_MODEL=llama3.1 + +# Enable for vision models (qwen2-vl, llava, etc.) +OLLAMA_SUPPORTS_VISION=false +``` + +| Variable | Description | +|----------|-------------| +| `ENABLE_OLLAMA` | Enable Ollama integration. | +| `OLLAMA_SERVER_URL` | Ollama server URL. Defaults to `http://localhost:11434`. | +| `OLLAMA_MODEL` | Model name. Check available models with `ollama list`. | +| `OLLAMA_SUPPORTS_VISION` | Enable vision support for multimodal models like `qwen2-vl` or `llava`. | + +### Step 3: Verify the connection + +```bash +curl -s http://localhost:11434/api/tags | jq . +``` + +--- + +## Option B: LiteLLM + +Use LiteLLM as an OpenAI-compatible proxy to connect any model provider. + +### Step 1: Start LiteLLM + +```bash +litellm --model ollama/llama3.1 --host 0.0.0.0 --port 4000 +``` + +### Step 2: Configure Skyvern + +Add to your `.env` file: + +```bash +ENABLE_OPENAI_COMPATIBLE=true +OPENAI_COMPATIBLE_MODEL_NAME=llama3.1 +OPENAI_COMPATIBLE_API_KEY=sk-test +OPENAI_COMPATIBLE_API_BASE=http://localhost:4000/v1 +``` + +| Variable | Description | +|----------|-------------| +| `ENABLE_OPENAI_COMPATIBLE` | Enable OpenAI-compatible provider. | +| `OPENAI_COMPATIBLE_MODEL_NAME` | Model identifier. | +| `OPENAI_COMPATIBLE_API_KEY` | API key for the proxy. | +| `OPENAI_COMPATIBLE_API_BASE` | Base URL. Must end with `/v1`. | +| `OPENAI_COMPATIBLE_SUPPORTS_VISION` | Enable vision support for multimodal models. | +| `OPENAI_COMPATIBLE_REASONING_EFFORT` | Set to `low`, `medium`, or `high`. | + +### Step 3: Verify the connection + +```bash +curl -s http://localhost:4000/v1/models \ + -H "Authorization: Bearer sk-test" | jq . +``` + +--- + +## Step 4: Start Skyvern + +After configuring your `.env`, start the server: + +```bash +# With Docker +docker compose up -d + +# Or locally +skyvern run server +``` + +--- + +## Troubleshooting + +| Issue | Solution | +|-------|----------| +| Model not responding | Ensure `ollama serve` is running and the model exists (`ollama list`). | +| LiteLLM 401 error | Set `OPENAI_COMPATIBLE_API_KEY` to a value the proxy accepts. | +| Model not visible | Set `ENABLE_OLLAMA=true` or `ENABLE_OPENAI_COMPATIBLE=true` and restart. | +| Wrong base URL | Confirm `OPENAI_COMPATIBLE_API_BASE` ends with `/v1`. | + +--- + +## Next steps + + + + Get started with Skyvern + + + Learn the task API + + diff --git a/docs/integrations/make.mdx b/docs/integrations/make.mdx new file mode 100644 index 00000000..0d479161 --- /dev/null +++ b/docs/integrations/make.mdx @@ -0,0 +1,120 @@ +--- +title: Make.com +subtitle: Integrate browser automations into Make scenarios +slug: integrations/make +--- + +Connect Skyvern to 2,000+ apps through Make. Trigger browser automations from any scenario, or route Skyvern's results into downstream modules. + +## Available Modules + +- **Run a Task** — Run an automation using **Skyvern 1.0** (simple, single-step goals) +- **Run a Task V2** — Run an automation using **Skyvern 2.0** (complex, multi-step goals) +- **Run a Workflow** — Run a pre-built Skyvern workflow with parameters +- **Get a Task / Get a Task V2** — Retrieve results from a previously run task +- **Get a Workflow** — Retrieve results from a previously run workflow +- **List Organizations** — List all organizations in your account +- **Make an API Call** — Execute a custom API request with your credentials + +## Setup + + + + Create a new scenario or edit an existing one, click **+**, and search for "Skyvern". + + + + + + + + Click **Create a connection** and paste your API key from [Settings](https://app.skyvern.com/settings/api-keys). + + + + + + + + Fill in the fields for your chosen module. See the field reference below. + + + + Click **Run once** and monitor progress in your [Skyvern dashboard](https://app.skyvern.com). + + + +## Field reference + +### Run a Task + +- **URL** (required) — The starting page for the automation +- **Navigation Goal** — What Skyvern should do on the page. Omit if only extracting data. +- **Data Extraction Goal** — What data to pull from the page +- **Navigation Payload** — JSON input data for forms. Lets you reuse the same task with different data. +- **Extracted Information Schema** — JSON schema defining the shape of extracted data +- **Webhook Callback URL** — URL to notify when the task finishes +- **Max Steps** — Cap the number of steps to control costs + + +The navigation goal describes what to do *after* loading the URL. Don't include "go to website X" — use the URL field instead. + + + + Configure task fields in Make.com + + +### Run a Workflow + +First, create your workflow in the [Skyvern UI](https://app.skyvern.com). + +- **Workflow** (required) — Select the workflow to run +- **Parameters** — Fill in any parameters defined in your workflow + + + Configure workflow fields in Make.com + + +### Get a Task / Workflow + +Retrieve the output of a completed run. + +- **Task ID** (required) — Starts with `tsk_` +- **Workflow Run ID** (required) — Starts with `wr_` + + + Enter Task ID or Workflow Run ID in Make.com + + +## Next steps + + + + Create reusable multi-step automations in Skyvern + + + Get notified when tasks complete + + diff --git a/docs/integrations/mcp.mdx b/docs/integrations/mcp.mdx new file mode 100644 index 00000000..00c48d9d --- /dev/null +++ b/docs/integrations/mcp.mdx @@ -0,0 +1,156 @@ +--- +title: MCP Server +subtitle: Connect AI assistants to browser automation via Model Context Protocol +slug: going-to-production/mcp +--- + +The Skyvern MCP server lets AI assistants like Claude Desktop, Cursor, and Windsurf control a browser. Your AI can fill out forms, extract data, download files, and run multi-step workflows, all through natural language. + + +Requires Python 3.11, 3.12, or 3.13. + + +## What you can do + +The MCP server exposes 31 tools across 5 categories: + +| Category | Key tools | What they do | +|----------|-----------|--------------| +| **Session management** | `session_create`, `session_close`, `session_list`, `session_connect` | Open, manage, and reuse browser sessions | +| **Browser actions** | `act`, `navigate`, `click`, `type`, `scroll`, `select_option`, `press_key`, `wait` | Control the browser with natural language or CSS/XPath selectors | +| **Data extraction** | `extract`, `screenshot`, `evaluate` | Pull structured data from pages, capture screenshots, run JavaScript | +| **Validation** | `validate` | Check page conditions using AI (returns true/false) | +| **Workflows** | `workflow_create`, `workflow_run`, `workflow_status`, `workflow_get`, `workflow_update`, `workflow_delete` | Build and execute multi-step automations | + +Your AI assistant decides which tools to call based on your instructions. For example, asking "go to Hacker News and get the top post title" triggers `session_create`, `navigate`, `extract`, and `session_close` automatically. + +## Setup + +### Option A: Setup wizard (recommended) + +```bash +pip install skyvern +skyvern init +``` + +The wizard will: +1. Ask whether to use Skyvern Cloud or a local server +2. Configure your LLM provider (if local) +3. Detect your MCP clients (Claude Desktop, Cursor, Windsurf) +4. Write the MCP configuration file for each client automatically + + +If you chose local mode, start the server before using MCP: + +```bash +skyvern run server +``` + + +### Option B: Manual configuration + +Add this to your MCP client's configuration file: + +```json +{ + "mcpServers": { + "Skyvern": { + "env": { + "SKYVERN_BASE_URL": "https://api.skyvern.com", + "SKYVERN_API_KEY": "YOUR_SKYVERN_API_KEY" + }, + "command": "/usr/bin/python3", + "args": ["-m", "skyvern", "run", "mcp"] + } + } +} +``` + +Replace `/usr/bin/python3` with the output of `which python3` on your machine. For local mode, set `SKYVERN_BASE_URL` to `http://localhost:8000` and find your API key in the `.env` file after running `skyvern init`. + + + +| Client | Path | +|--------|------| +| **Claude Desktop** (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` | +| **Claude Desktop** (Linux) | `~/.config/Claude/claude_desktop_config.json` | +| **Cursor** | `~/.cursor/mcp.json` | +| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | + + + +## See it in action + +**Claude Desktop** looking up the top Hacker News posts: + + + +**Cursor** finding programming jobs: + + + +**Windsurf** searching Form 5500 and downloading files: + + + +## Troubleshooting + + +The Skyvern MCP server requires Python 3.11, 3.12, or 3.13. Check your version with `python3 --version`. If you have multiple Python versions installed, make sure the `command` in your MCP config points to a supported version: + +```bash +which python3.11 +# Use this path in your MCP config +``` + +You can also use `pipx` to install in an isolated environment: + +```bash +pipx install skyvern +``` + + + +Make sure the Skyvern server is running before using MCP tools: + +```bash +skyvern run server +``` + +Confirm the server is reachable at `http://localhost:8000`. If you changed the port, update `SKYVERN_BASE_URL` in your MCP config to match. + + + +Verify that the `command` path in your MCP config is correct: + +```bash +which python3 +``` + +Use the full absolute path (e.g., `/usr/bin/python3` or `/Users/you/.pyenv/shims/python3`), not just `python3`. Restart your MCP client after editing the config file. + + +## Next steps + + + + Learn the API for running browser automations + + + Get started with the Skyvern SDK + + diff --git a/docs/integrations/n8n.mdx b/docs/integrations/n8n.mdx new file mode 100644 index 00000000..5a64cceb --- /dev/null +++ b/docs/integrations/n8n.mdx @@ -0,0 +1,112 @@ +--- +title: n8n +subtitle: Run browser automations in your n8n workflows +slug: integrations/n8n +--- + +Connect Skyvern to n8n's open-source automation platform. Trigger browser automations from any workflow, or pipe Skyvern's results into downstream nodes. + +## Available Operations + +- **Task → Dispatch a Task** — Run a browser automation with a prompt +- **Task → Get a Task** — Retrieve results from a previously run task +- **Workflow → Dispatch a Workflow Run** — Run a pre-built Skyvern workflow with parameters +- **Workflow → Get a Workflow Run** — Retrieve results from a previously run workflow + +## Setup + + + + Create a new workflow or edit an existing one, click **+**, search for "Skyvern", and click *Install* → *Add to workflow*. + + + + + + + + Click *Select credential* → "Create new credential" and paste your API key from [Settings](https://app.skyvern.com/settings/api-keys). + + + + Fill in the fields for your chosen operation. See the field reference below. + + + + Run the workflow and monitor progress in your [Skyvern dashboard](https://app.skyvern.com). + + + +## Field reference + +### Dispatch a Task + + + Configure Dispatch a Task fields in n8n + + +- **User Prompt** (required) — What Skyvern should do +- **URL** — The starting page. If omitted, Skyvern navigates based on the prompt. +- **Webhook Callback URL** — URL to notify when the task finishes + +Under **Task Options**: + +- **Engine** — Defaults to **Skyvern 2.0**. + - **Skyvern 1.0** — Simple, single-step tasks + - **Skyvern 2.0** — Complex, multi-step goals with dynamic planning + - **OpenAI CUA** / **Anthropic CUA** — Third-party computer-use agents + +### Dispatch a Workflow Run + + + Configure Dispatch a Workflow Run fields in n8n + + +First, create your workflow in the [Skyvern UI](https://app.skyvern.com). + +- **Workflow Name or ID** (required) — Select from the dropdown or specify an ID with an expression +- **Workflow Run Parameters** — Loaded dynamically from the selected workflow +- **Webhook Callback URL** — URL to notify when the workflow finishes + +### Get a Task + + + Enter Task ID field in n8n + + +- **Task ID** (required) — The ID of the task run + +### Get a Workflow Run + + + Enter Workflow Run ID field in n8n + + +- **Workflow Name or ID** (required) — Select the workflow from the dropdown +- **Workflow Run ID** (required) — Starts with `wr_` + +## Next steps + + + + Create reusable multi-step automations in Skyvern + + + Get notified when tasks complete + + diff --git a/docs/integrations/workato.mdx b/docs/integrations/workato.mdx new file mode 100644 index 00000000..c1180083 --- /dev/null +++ b/docs/integrations/workato.mdx @@ -0,0 +1,118 @@ +--- +title: Workato +subtitle: Run browser automations in your Workato recipes +slug: integrations/workato +--- + +Connect Skyvern to Workato's enterprise automation platform. Trigger browser automations from any recipe, or route Skyvern's results into downstream actions. + +## Available Actions + +- **Create and Run Task** — Run an automation using **Skyvern 1.0** (simple, single-step goals) +- **Create and Run Task V2** — Run an automation using **Skyvern 2.0** (complex, multi-step goals) +- **Run a Workflow** — Run a pre-built Skyvern workflow with parameters +- **Get Task / Get Task V2** — Retrieve results from a previously run task +- **Get Workflow** — Retrieve results from a previously run workflow + +## Setup + + + + Go to the Community Library tab, search for "Skyvern" under custom connectors, and click **Install** → "release latest version". + + + Search for Skyvern in Workato Community Library + + + Skyvern connector page in Workato + + + + + Create a new recipe or edit an existing one, add an action, and search for "Skyvern". + + + Add Skyvern action to Workato recipe + + + List of available Skyvern actions in Workato + + + + + Paste your API key from [Settings](https://app.skyvern.com/settings/api-keys) and save the connection. + + + Connect Skyvern account in Workato + + + + + Fill in the fields for your chosen action. See the field reference below. + + + + Click **Save** then **Test recipe** and monitor progress in your [Skyvern dashboard](https://app.skyvern.com). + + + Test Workato recipe with Skyvern + + + + +## Field reference + +### Create and Run a Task + +- **URL** (required) — The starting page for the automation +- **Navigation Goal** — What Skyvern should do on the page. Omit if only extracting data. +- **Data Extraction Goal** — What data to pull from the page +- **Navigation Payload** — JSON input data for forms. Lets you reuse the same task with different data. +- **Extracted Information Schema** — JSON schema defining the shape of extracted data +- **Webhook Callback URL** — URL to notify when the task finishes +- **Max Steps** — Cap the number of steps to control costs + + +The navigation goal describes what to do *after* loading the URL. Don't include "go to website X" — use the URL field instead. + + + + Configure task fields in Workato + + +### Run a Workflow + +First, create your workflow in the [Skyvern UI](https://app.skyvern.com). + +- **Workflow** (required) — Select the workflow to run +- **Parameters** — Fill in any parameters defined in your workflow + + + Select workflow in Workato + + +### Get Task / Workflow + +Retrieve the details of a completed run. + +- **Task ID** (required) — Starts with `tsk_` +- **Workflow Run ID** (required) — Starts with `wr_` + +## Next steps + + + + Create reusable multi-step automations in Skyvern + + + Get notified when tasks complete + + diff --git a/docs/integrations/zapier.mdx b/docs/integrations/zapier.mdx new file mode 100644 index 00000000..24f04319 --- /dev/null +++ b/docs/integrations/zapier.mdx @@ -0,0 +1,129 @@ +--- +title: Zapier +subtitle: Trigger browser automations from Zapier workflows +slug: integrations/zapier +--- + +Connect Skyvern to 7,000+ apps through Zapier. Trigger browser automations from any Zap, or feed Skyvern's results into downstream steps. + +## Available Triggers + +- **New or Updated Skyvern Workflow** — Starts a Zap whenever a workflow is created or modified. + +## Available Actions + +- **Create and Run a Task** — Run an automation using **Skyvern 1.0** (simple, single-step goals) +- **Create and Run Task V2** — Run an automation using **Skyvern 2.0** (complex, multi-step goals) +- **Run a Workflow** — Run a pre-built Skyvern workflow with parameters +- **Get a Task / Get a Task V2** — Retrieve results from a previously run task +- **Get a Workflow** — Retrieve results from a previously run workflow + +## Setup + + + + Create a new Zap or edit an existing one, search for "Skyvern" in the Apps section, and choose the action or trigger you want. + + + + + + + + Click *Sign in* on the left panel and paste your API key from [Settings](https://app.skyvern.com/settings/api-keys). + + + + + + + + Fill in the fields for your chosen action. See the field reference below. + + + + Review "Data In" to verify what will be sent, click **Test step**, and monitor progress in your [Skyvern dashboard](https://app.skyvern.com). + + + Test the Zapier step + + + + +## Field reference + +### Create and Run a Task + +- **URL** (required) — The starting page for the automation +- **Navigation Goal** — What Skyvern should do on the page. Omit if only extracting data. +- **Data Extraction Goal** — What data to pull from the page +- **Navigation Payload** — JSON input data for forms. Lets you reuse the same task with different data. +- **Extracted Information Schema** — JSON schema defining the shape of extracted data +- **Webhook Callback URL** — URL to notify when the task finishes +- **Max Steps** — Cap the number of steps to control costs + + +The navigation goal describes what to do *after* loading the URL. Don't include "go to website X" — use the URL field instead. + + + + Configure task fields in Zapier + + +### Run a Workflow + +First, create your workflow in the [Skyvern UI](https://app.skyvern.com). + +- **Workflow** (required) — Select the workflow to run +- **Parameters** — Fill in any parameters defined in your workflow + + + Select workflow in Zapier + + + Configure workflow parameters in Zapier + + +### Get a Task / Workflow + +Retrieve the output of a completed run. + +- **Task ID** (required) — Starts with `tsk_` +- **Workflow Run ID** (required) — Starts with `wr_` + + + Enter Task ID field in Zapier + + +## Next steps + + + + Create reusable multi-step automations in Skyvern + + + Get notified when tasks complete + +