Skip to main content
The Skyvern MCP server lets AI assistants like Claude Desktop, Claude Code, Codex, 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.

What you can do

The MCP server exposes 75+ tools across many categories. Here are the key ones:
CategoryKey toolsWhat they do
Browser session managementskyvern_browser_session_create, skyvern_browser_session_close, skyvern_browser_session_list, skyvern_browser_session_get, skyvern_browser_session_connectOpen, manage, and reuse browser sessions — including connecting to a local browser via CDP
Browser actionsskyvern_act, skyvern_navigate, skyvern_click, skyvern_type, skyvern_hover, skyvern_scroll, skyvern_select_option, skyvern_press_key, skyvern_waitControl the browser with natural language, CSS/XPath selectors, or both (hybrid mode)
Data extractionskyvern_extract, skyvern_screenshot, skyvern_evaluatePull structured JSON from pages, capture screenshots, run JavaScript
Validationskyvern_validateAssert page conditions in natural language (returns true/false with reasoning)
Credentials & loginskyvern_login, skyvern_credential_list, skyvern_credential_get, skyvern_credential_deleteLog in with stored credentials (supports Skyvern vault, Bitwarden, 1Password, Azure Key Vault) with automatic 2FA/TOTP
Workflowsskyvern_workflow_create, skyvern_workflow_run, skyvern_workflow_status, skyvern_workflow_get, skyvern_workflow_update, skyvern_workflow_delete, skyvern_workflow_cancelBuild, run, and manage multi-step automations with 23 block types
Additional tools cover tab management, iframe switching, drag-and-drop, file upload, clipboard access, network/console inspection, HAR recording, web storage, auth state persistence, folder management, and cached script management. 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 skyvern_browser_session_create, skyvern_navigate, skyvern_extract, and skyvern_browser_session_close automatically.

Which setup should I use?

Cloud setup (recommended)Local mode
Best forMost users — Skyvern Cloud handles everythingSelf-hosting Skyvern with your own infrastructure
Install requiredNonePython 3.11+ and pip install skyvern
How it connectsYour AI client connects to Skyvern Cloud over HTTPSA local Python process runs on your machine
API keyFrom app.skyvern.comFrom your self-hosted Skyvern instance
If you have a Skyvern Cloud account, use the cloud setup below. It takes 30 seconds and works immediately.

Quick start

Get your API key from Settings in the Skyvern dashboard, then pick your client below.
claude mcp add-json skyvern '{"type":"http","url":"https://api.skyvern.com/mcp/","headers":{"x-api-key":"YOUR_SKYVERN_API_KEY"}}' --scope user
That’s it — no Python, no pip install, no local server. Your AI assistant connects directly to Skyvern Cloud over HTTPS. Claude Desktop on macOS and Windows can use the one-click Skyvern bundle; Linux and advanced setups can still use mcp-remote with Node.js >= 20.
Prefer a CLI? For Skyvern Cloud, pip install skyvern then run skyvern setup. For the local self-hosted path, run skyvern quickstart or skyvern init and choose Claude Code during the MCP step.

Switch an existing MCP config

If you already have a Skyvern MCP entry and just need to switch to another API key or base URL, use the CLI instead of hand-editing JSON or TOML:
pip install skyvern
skyvern mcp switch --dry-run
skyvern mcp switch
The switcher scans supported local config files created by skyvern setup or manual setup, shows which ones already contain a Skyvern entry, lets you choose which apps to update, and writes a backup before changing anything. Today it can update:
  • Claude Code project .mcp.json
  • Claude Code global ~/.claude.json
  • Claude Desktop JSON config
  • Cursor ~/.cursor/mcp.json
  • Windsurf ~/.codeium/windsurf/mcp_config.json
  • Codex ~/.codex/config.toml
skyvern mcp switch preserves the existing transport shape. Remote configs keep using https://.../mcp/; local stdio configs keep SKYVERN_BASE_URL and SKYVERN_API_KEY in the launched process environment. After switching, restart your AI client. If a config file exists but does not already contain a Skyvern entry, run skyvern setup or use the manual setup snippets on this page first.

Alternative: Local mode (self-hosted)

Use this if you are self-hosting Skyvern and want the MCP server to talk to your own instance instead of Skyvern Cloud. This runs a lightweight Python process on your machine that connects to your local Skyvern server.
Local mode requires Python 3.11, 3.12, or 3.13.
pip install skyvern
Run the setup wizard from your project or repo root:
skyvern quickstart
# or: skyvern init
Choose:
  1. local
  2. Claude Code during the MCP setup step
When you do that, Skyvern will:
  • generate local SKYVERN_BASE_URL and SKYVERN_API_KEY
  • write .mcp.json in the current project when you run inside a repo or app directory
  • pin the MCP command to the active Python interpreter with python -m skyvern run mcp
  • install bundled Claude Code skills into .claude/skills/, including /qa
This path stays fully local. Claude Code talks to your local Skyvern server over stdio, so localhost targets work directly and you do not need Skyvern Cloud, mcp-remote, or browser tunneling. Before using MCP, start your local Skyvern server if skyvern init did not already do it:
skyvern run server

Manual local MCP config

If you want to configure your client manually instead of using the wizard, use stdio transport:
{
  "mcpServers": {
    "skyvern": {
      "command": "/usr/bin/python3",
      "args": ["-m", "skyvern", "run", "mcp"],
      "env": {
        "SKYVERN_BASE_URL": "http://localhost:8000",
        "SKYVERN_API_KEY": "YOUR_SKYVERN_API_KEY"
      }
    }
  }
}
Write this to .mcp.json in your project root, or to ~/.claude.json for a user-level config. Replace /usr/bin/python3 with the Python interpreter from the environment where you installed Skyvern.
skyvern init and skyvern quickstart can write the local MCP config for you. In a project directory, choosing Claude Code defaults to project-local .mcp.json and installs .claude/skills/qa.
ClientFormatPath
Claude Desktop (macOS)JSON~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Linux)JSON~/.config/Claude/claude_desktop_config.json
Claude Code (project)JSON.mcp.json in project root
Claude Code (global)JSON~/.claude.json
Codex (global)TOML~/.codex/config.toml
Codex (project)TOML.codex/config.toml in trusted project
CursorJSON~/.cursor/mcp.json
WindsurfJSON~/.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:

Connect to your local browser

You can point your AI assistant at a browser running on your machine instead of a cloud browser. This lets you automate internal tools on localhost, reuse existing login sessions, and verify local dev changes — all through the same MCP tools. Start a local browser with a tunnel so Skyvern Cloud can reach it:
skyvern browser serve --tunnel --use-local-profile
This launches Chrome with your existing cookies and logins, and creates an ngrok tunnel. Your AI assistant can then connect to it:
“Connect to my local browser and check if the dashboard at localhost:3000 renders correctly”
The --use-local-profile flag clones auth-relevant data from your default Chrome profile (cookies, saved passwords, local storage) so the browser starts pre-authenticated. Your original profile is never modified.
This is especially powerful during development: make a code change, then ask your AI assistant to navigate to localhost:3000 and verify it works — fix code and validate in the same prompt.
Always use --api-key when exposing your browser via tunnel. Without it, anyone with the ngrok URL has full browser control.
Private Claude Desktop bundles do not auto-update. Download the latest skyvern-claude-desktop.mcpb again, then reinstall it by double-clicking the bundle or using Settings > Extensions.

QA your frontend changes

For the local self-hosted path, run skyvern quickstart or skyvern init, choose local, then choose Claude Code during the MCP step. That writes local stdio MCP config and installs Claude Code skills — including /qa, which reads your git diff, generates browser tests, and runs them against your dev server.
pip install skyvern
skyvern quickstart
# or: skyvern init
Then make a frontend change and type /qa in Claude Code. It will:
  1. Read your git diff and the full source of each changed file
  2. Generate targeted test cases (plus regression tests for adjacent behavior)
  3. Open a browser against your running dev server
  4. Run the tests — navigate, click, fill forms, check the DOM
  5. Report pass/fail with screenshots
For localhost testing, start your local Skyvern backend and frontend. You do not need skyvern browser serve --tunnel for this path.
The /qa skill uses skyvern_evaluate for fast DOM assertions (~10ms each) and skyvern_act for natural-language interactions. Tests are generated fresh from each diff — no test files to maintain.

Troubleshooting

Double-check that your API key is correct. You can find or regenerate it at Settings. Make sure there are no extra spaces or newlines when pasting the key.If you recently regenerated your API key, run skyvern mcp switch if you installed the CLI, or update the MCP config manually, then restart your AI client.
Skyvern browser sessions take a few seconds to start. If a tool call times out, try again — the first call in a new session is slower than subsequent ones.If timeouts persist, check that your Skyvern account is active and has available credits at app.skyvern.com.
The Skyvern MCP server requires Python 3.11, 3.12, or 3.13. Check your version with python3 --version. Skyvern’s generated local config already pins the active interpreter path automatically. If you are editing the config manually, make sure the command points to a supported version:
which python3.11
# Use this path in your MCP config
You can also use pipx to install in an isolated environment:
pipx install skyvern
Make sure the Skyvern server is running before using MCP tools:
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.You do not need Skyvern Cloud or browser tunneling for this path. Claude Code talks to the local MCP process over stdio, and that process talks to your local Skyvern server.
Verify that the command path in your MCP config is correct:
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.If you used the wizard, re-run skyvern init or skyvern setup claude-code --local from the same Python environment to regenerate the config with the correct interpreter path.