Skyvern MCP Server for LLM Browser Control
Enable Claude, Windsurf, Cursor and other LLMs to control the browser with the Skyvern MCP server for seamless AI-driven web automation.
npx -y @integrations/mcpOverview
Skyvern MCP Server is a lightweight implementation of a Model Context Protocol (MCP) adapter that lets large language models (LLMs) such as Claude, Windsurf, Cursor and others control a real browser for automation and web scraping tasks. It exposes browser actions as MCP-compatible tools so an LLM can navigate pages, inspect DOM, click elements, type input, take screenshots, run JavaScript, and manage cookies or local storage — all via the MCP tooling interface.
This server is useful when you want to give an LLM safe, auditable, and structured access to the web. Instead of having the model generate raw scraping scripts or clipboard-based automation, the MCP server provides a stable set of tools and a predictable request/response surface that integrates cleanly into LLM workflows. That enables use cases such as autonomous web research, form completion, content extraction for downstream pipelines, and multi-step browsing tasks driven by reasoning-capable models.
Features
- Exposes a catalog of browser-control tools (open URL, click, type, evaluate JS, screenshot, query DOM)
- Implements MCP-compatible API surface for both HTTP and WebSocket tool invocations
- Browser automation backed by Playwright (Chromium) for reliable headless/headful control
- Session management for isolated browser contexts per request or conversation
- Configurable headless/headful mode, proxy, user agent and viewport settings
- Cookie and storage inspection / manipulation for authenticated scraping
- Dockerfile and example .env for quick deployment
Installation / Configuration
Prerequisites:
- Node.js 18+ (or the Node version specified in repo)
- Docker (optional, recommended for deployment)
Quick start (development):
# Install dependencies
# Copy example env and edit as needed
# Run server
Common .env configuration options (example):
PORT=8080
HEADLESS=true # set to false to run visible browser
BROWSER_PATH= # optional: path to Chromium binary
MAX_CONTEXTS=10
AUTH_TOKEN=changeme # simple token-based access to the MCP server
LOG_LEVEL=info
Run with Docker:
# build image from repo root or integrations/mcp folder
Notes:
- Tune MAX_CONTEXTS to limit concurrency and memory usage.
- Provide a system Chromium or let Playwright download the required browser during installation.
Available Tools
The server exposes a set of browser-action tools that an LLM can invoke. Tool signatures below are illustrative; consult the repo’s examples for exact JSON formats.
| Tool name | Purpose | Input (typical fields) | Output |
|---|---|---|---|
| browser.open | Navigate to a URL | url, waitUntil | navigation result/status |
| browser.screenshot | Capture page or element | url or selector, fullPage | base64 PNG |
| browser.query | Run DOM queries | selector, context | HTML/text or list of nodes |
| browser.click | Simulate click | selector, modifiers | click result/status |
| browser.type | Type text into field | selector, text, delay | typed status |
| browser.eval | Run arbitrary JS in page | script (string) | JSON-serializable result |
| browser.cookies.get | Read cookies | optional domain | cookie array |
| browser.cookies.set | Set cookies | cookie object(s) | status |
| browser.waitFor | Wait for selector or network | selector, timeout | status |
Example MCP invocation (generic JSON):
The server returns structured JSON with status, result, and optional diagnostics (screenshots, HTML snippets).
Available Resources
- GitHub repository: https://github.com/Skyvern-AI/skyvern/tree/main/integrations/mcp
- Example integrations and usage examples are included in the repo’s examples/ directory
- .env.example and Dockerfile for deployment templates
- Logs and tracing (configurable) to inspect exact actions performed by the model
Use Cases
- Web scraping with context: Drive the browser to perform multi-step extractions (search → open listing → extract details) while preserving session state and handling JS-rendered pages.
- Form automation: Have an LLM fill out multi-field forms, handle validation messages, and submit data, useful for automated testing or data entry tasks.
- Autonomous browsing assistants: Combine LLM reasoning with controlled browser actions to perform tasks like price comparison, travel planning, or research gathering.
- QA and regression testing: Use model-guided scripts to explore UI flows and generate synthetic user interactions for frontend testing.
- Data augmentation for retrieval: Fetch live page content to augment knowledge retrieval or do up-to-date fact-checking for downstream LLM prompts.
Getting Help
If you need details on tool payloads, error codes, or examples for a particular LLM integration (Claude/Windsurf/Cursor), check the examples directory in the repository or open an issue on GitHub. The MCP server includes verbose logging and example client snippets to accelerate integration