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.
+
+
+
+
+
+
+### 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
+
+
+
+
+
+### Get a Task / Workflow
+
+Retrieve the output 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/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
+
+
+
+
+
+- **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
+
+
+
+
+
+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
+
+
+
+
+
+- **Task ID** (required) — The ID of the task run
+
+### Get a Workflow Run
+
+
+
+
+
+- **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".
+
+
+
+
+
+
+
+
+
+
+ Create a new recipe or edit an existing one, add an action, and search for "Skyvern".
+
+
+
+
+
+
+
+
+
+
+ Paste your API key from [Settings](https://app.skyvern.com/settings/api-keys) and save the connection.
+
+
+
+
+
+
+
+ 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).
+
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+### 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
+
+
+
+
+
+### 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).
+
+
+
+
+
+
+
+## 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.
+
+
+
+
+
+
+### 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
+
+
+
+
+
+
+
+
+### Get a Task / Workflow
+
+Retrieve the output 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
+
+