Scrapfly MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Scrapfly MCP listing page.

Scrapfly MCP Server

Scrapfly

Give your AI real-time access to any website

๐ŸŒ Landing Page โ€ข ๐Ÿ“– Documentation โ€ข ๐ŸŽฎ Live Demo โ€ข ๐Ÿ”‘ Get API Key


At a glance

Remote serverhttps://mcp.scrapfly.io/mcp (streamable HTTP, nothing to install)
Self-hostedGo binary (stdio or -http) or the Docker image of this repo, see Self-Hosted below
stdio-only clientsnpx mcp-remote https://mcp.scrapfly.io/mcp
AuthenticationOAuth2 sign-in on the remote server, or a Scrapfly API key (SCRAPFLY_API_KEY, Authorization: Bearer <key>)
Tools62: web scraping (5), account (2), Cloud Browser sessions (9), page interaction (17), WebMCP (2), credential vaults (15), alerts (12). Full list under Available Tools below.

Add it to any MCP client:

config.json
{
  "mcpServers": {
    "scrapfly": { "type": "http", "url": "https://mcp.scrapfly.io/mcp" }
  }
}

Tools that fetch pages need no setup beyond the key: web_get_page (quick fetch), web_scrape (full control: JS rendering, proxy pool, country, extraction) and screenshot.


What is Scrapfly MCP?

The Scrapfly MCP Server connects your AI assistants to live web data through the Model Context Protocol. Transform your AI from being limited by training data to having real-time access to any website.

โœจ What Your AI Can Do

CapabilityDescription
๐ŸŒ Scrape Live DataPull current prices, listings, news, or any webpage content in real-time
๐Ÿ›ก๏ธ Bypass Anti-Bot SystemsAutomatically handle CAPTCHAs, proxies, JavaScript rendering, and rate limits
โšก Extract Structured DataParse complex websites into clean JSON using AI-powered extraction
๐Ÿ“ธ Capture ScreenshotsTake visual snapshots of pages or specific elements for analysis

๐Ÿ† Why Scrapfly?

Built on battle-tested infrastructure used by thousands of developers:

  • 99.9% Uptime โ€” Enterprise-grade reliability
  • 100+ Countries โ€” Global proxy network with datacenter & residential IPs, in three proxy pools (Basic, Unblocker, Unblocker Ultra) or Auto, where the API picks the pool
  • Anti-Bot Bypass โ€” Advanced Unblocker technology defeats modern protections
  • OAuth2 Security โ€” Enterprise authentication for production deployments

๐Ÿ“– Learn more: Why Scrapfly MCP?


๐Ÿš€ Quick Install

Click one of the buttons below to install the MCP server in your preferred IDE:

Install in VS Code Install in VS Code Insiders Install in Visual Studio Install in Cursor


๐Ÿ“ฆ Manual Installation

Standard Configuration

Works with most MCP-compatible tools:

config.json
{
  "servers": {
    "scrapfly-cloud-mcp": {
      "type": "http",
      "url": "https://mcp.scrapfly.io/mcp"
    }
  }
}

Cloud Configuration (NPX)

For tools that require a local process:

config.json
{
  "mcpServers": {
    "scrapfly": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.scrapfly.io/mcp"
      ]
    }
  }
}

๐Ÿ”ง IDE-Specific Setup

VS Code

One-Click Install

Install in VS Code

Manual Install

Follow the VS Code MCP guide or use the CLI:

bash
code --add-mcp '{"name":"scrapfly-cloud-mcp","type":"http","url":"https://mcp.scrapfly.io/mcp"}'

After installation, Scrapfly tools will be available in GitHub Copilot Chat.

๐Ÿ“– Full guide: VS Code Integration

VS Code Insiders

One-Click Install

Install in VS Code Insiders

Manual Install

bash
code-insiders --add-mcp '{"name":"scrapfly-cloud-mcp","type":"http","url":"https://mcp.scrapfly.io/mcp"}'

๐Ÿ“– Full guide: VS Code Integration

Visual Studio

One-Click Install

Install in Visual Studio

Manual Install

  1. Open Visual Studio
  2. Navigate to GitHub Copilot Chat window
  3. Click the tools icon (๐Ÿ› ๏ธ) in the chat toolbar
  4. Click + Add Server to open the configuration dialog
  5. Configure:
    • Server ID: scrapfly-cloud-mcp
    • Type: http/sse
    • URL: https://mcp.scrapfly.io/mcp
  6. Click Save

๐Ÿ“– Full guide: Visual Studio MCP documentation

Cursor

One-Click Install

Install in Cursor

Manual Install

  1. Go to Cursor Settings โ†’ MCP โ†’ Add new MCP Server
  2. Use the standard configuration above
  3. Click Edit to verify or add arguments

๐Ÿ“– Full guide: Cursor Integration

Claude Code

Use the Claude Code CLI:

Terminal
claude mcp add scrapfly-cloud-mcp --url https://mcp.scrapfly.io/mcp

๐Ÿ“– Full guide: Claude Code Integration

Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

config.json
{
  "mcpServers": {
    "scrapfly": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.scrapfly.io/mcp"]
    }
  }
}

๐Ÿ“– Full guide: Claude Desktop Integration

Cline

Add to your Cline MCP settings:

config.json
{
  "scrapfly-cloud-mcp": {
    "type": "http",
    "url": "https://mcp.scrapfly.io/mcp"
  }
}

๐Ÿ“– Full guide: Cline Integration

Windsurf

Follow the Windsurf MCP documentation using the standard configuration.

๐Ÿ“– Full guide: Windsurf Integration

Zed

Add to your Zed settings:

config.json
{
  "context_servers": {
    "scrapfly-cloud-mcp": {
      "type": "http",
      "url": "https://mcp.scrapfly.io/mcp"
    }
  }
}

๐Ÿ“– Full guide: Zed Integration

OpenAI Codex

Create or edit ~/.codex/config.toml:

toml
[mcp_servers.scrapfly-cloud-mcp]
url = "https://mcp.scrapfly.io/mcp"

๐Ÿ“– More info: Codex MCP documentation

Gemini CLI

Follow the Gemini CLI MCP guide using the standard configuration.

OpenCode

Add to ~/.config/opencode/opencode.json:

config.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "scrapfly-cloud-mcp": {
      "type": "http",
      "url": "https://mcp.scrapfly.io/mcp",
      "enabled": true
    }
  }
}

๐Ÿ“– More info: OpenCode MCP documentation


๐Ÿ› ๏ธ Available Tools

The Scrapfly MCP Server exposes 62 tools in seven groups. Most tasks need only the first group.

Web scraping (5)

Stateless, one call per page.

ToolDescriptionUse Case
scraping_instruction_enhancedCheat-sheet of the scraping optionsOptional, when the right options are unclear
web_get_pageQuick page fetch with smart defaultsSimple scraping tasks
web_scrapeFull control: headers, JS rendering, country, proxy pool, extractionComplex scraping, login flows
screenshotOne-shot PNG of a URLVisual analysis, monitoring
check_if_blockedDecide whether a scrape result is a block pageRetry or escalate the proxy pool

Account (2)

ToolDescription
info_accountSubscription plan, API credit usage, concurrency
info_api_keyThe API key this server is authenticated with

Cloud Browser sessions (9)

A stateful real browser, kept between calls.

ToolDescription
cloud_browser_openStart a session at a URL
browser_unblockSame, through the anti-bot bypass first
cloud_browser_navigateLoad a new URL in the open session
cloud_browser_sessionsList active sessions
cloud_browser_closeClose the session
cloud_browser_screenshotPNG of the session, optionally of a CSS selector
cloud_browser_evalRun JavaScript and return its value
cloud_browser_downloadsFiles downloaded during the session
cloud_browser_performancePageSpeed-style lab run with mobile throttling

Page interaction (17)

Act on the open Cloud Browser session. Elements are addressed by the uid that take_snapshot returns.

take_snapshot, take_screenshot, find_elements, get_page_url, evaluate_script, click, hover, drag, fill, type_text, press_key, select_option, dropdown_options, scroll, scroll_to_text, go_back, wait

WebMCP (2)

For pages that register their own tools with navigator.modelContext.

list_webmcp_tools, call_webmcp_tool

Credential vaults (15)

Store logins for Cloud Browser sessions, optionally mirrored from 1Password.

cloud_browser_vault_create, cloud_browser_vault_list, cloud_browser_vault_get, cloud_browser_vault_update, cloud_browser_vault_delete, cloud_browser_vault_rotate, cloud_browser_vault_item_create, cloud_browser_vault_item_list, cloud_browser_vault_item_update, cloud_browser_vault_item_delete, cloud_browser_vault_service_link, cloud_browser_vault_service_update, cloud_browser_vault_service_sync, cloud_browser_vault_service_test, cloud_browser_vault_service_unlink

Alerts (12)

Create, test and snooze alert rules on your account metrics. Writes take a confirm step.

alert_metric_families, alert_preview, alert_create, alert_update, alert_delete, alert_get, alert_list, alert_count_active, alert_series, alert_test, alert_snooze, alert_unsnooze

๐Ÿ“– Full reference: Tools & API Specification

Proxy pools

web_scrape and web_get_page take a proxy_pool, which sets both the proxies and the Unblocker (anti-bot bypass):

proxy_poolWhat it runs
basicdatacenter proxies, Unblocker off
unblockerresidential proxies, Unblocker on
unblocker_ultraresidential proxies, Unblocker on, the only pool accepted by targets and anti-bot protections that have a price of their own
autothe API picks the pool before the request, from the target's profile: the Unblocker on datacenter proxies, or the pool the target needs; priced as the pool it runs on

Pick the pool a site needs: basic where datacenter proxies get through, unblocker or unblocker_ultra where it needs residential proxies and the Unblocker, auto to let the API pick. A target or an anti-bot protection with a price of its own refuses basic and unblocker with ERR::PROXY::UNBLOCKER_ULTRA_REQUIRED (HTTP 422, not billed): resend with proxy_pool=unblocker_ultra, or with proxy_pool=auto, which is accepted on every target, the ones that require unblocker_ultra included, where their price is added. public_tor_pool runs on the Tor network (.onion).

Deprecated: unblocker and asp

The unblocker input of web_scrape and its former name asp are deprecated: use proxy_pool (unblocker_ultra for the Unblocker). The migration guide covers requests written before the proxy pools, the pool names public_datacenter_pool and public_residential_pool included. Without a proxy_pool, the server sends the API no pool and, by default, asp=true, a request the guide covers as well.

Example: Scrape a Page

Code
User: "What are the top posts on Hacker News right now?"

AI: Uses web_get_page to fetch https://news.ycombinator.com and returns current top stories

Example: Extract Structured Data

Code
User: "Get all product prices from this Amazon page"

AI: Uses web_scrape with extraction_model="product_listing" to return structured JSON

๐Ÿ“– More examples: Real-World Examples


๐Ÿ” Authentication

Scrapfly MCP supports multiple authentication methods:

MethodBest ForDocumentation
OAuth2Production, multi-user appsOAuth2 Setup
API KeyPersonal use, developmentAPI Key Setup
Header AuthCustom integrationsHeader Auth

๐Ÿ”‘ Get your API key: Scrapfly Dashboard


๐Ÿ“Š Configuration Reference

SettingValue
Server Namescrapfly-cloud-mcp
TypeRemote HTTP Server
URLhttps://mcp.scrapfly.io/mcp
ProtocolMCP over HTTP/SSE

๐Ÿ–ฅ๏ธ Self-Hosted / Local Deployment

You can run the Scrapfly MCP server locally or self-host it.

CLI Arguments

FlagDescription
-http <address>Start HTTP server at the specified address (e.g., :8080). Takes precedence over PORT env var. In server-key mode this binds loopback (127.0.0.1) unless you also pass -allow-remote.
-apikey <key>Use this API key instead of the SCRAPFLY_API_KEY environment variable.
-allow-remoteServer-key HTTP mode only: permit binding a non-loopback interface. That mode performs no per-caller authentication โ€” every request uses the baked-in key โ€” so only enable this behind your own auth proxy.
-verify-sslVerify TLS certificates on outbound calls (default true). Set false only when targeting a host that serves a self-signed certificate.

Environment Variables

VariableDescription
PORTHTTP port to listen on. Used if -http flag is not set.
SCRAPFLY_API_KEYScrapfly API key baked into the server. When set, the server uses it for every request (server-key mode) and does not read a per-request key.
SCRAPFLY_ALLOW_REMOTE1/true is the env equivalent of -allow-remote.
SCRAPFLY_VERIFY_SSL0/false is the env equivalent of -verify-ssl=false.

Per-request key: start the server without a baked-in key (-http only) and each caller supplies their own key per request โ€” as Authorization: Bearer <key>, or ?key=<key> / ?apiKey=<key>. This path is authenticated; the server-key path above is not, which is why it stays on loopback by default.

Examples

bash
# Start HTTP server on port 8080
./scrapfly-mcp -http :8080

# Start HTTP server using PORT env var
PORT=8080 ./scrapfly-mcp

# Start with an API key. Prefer the environment variable: a key passed as a
# flag lands in your shell history and in the process list.
# Server-key mode has no per-caller auth, so it binds 127.0.0.1 here.
SCRAPFLY_API_KEY=... ./scrapfly-mcp -http :8080

# Same, but expose it on all interfaces โ€” only behind your own auth proxy.
SCRAPFLY_API_KEY=... ./scrapfly-mcp -http 0.0.0.0:8080 -allow-remote

# Start in stdio mode (for local MCP clients)
./scrapfly-mcp

Docker

bash
# Build
docker build -t scrapfly-mcp .

# Run (Smithery compatible - uses PORT env var)
docker run -p 8080:8080 scrapfly-mcp

# Run with custom port
docker run -e PORT=9000 -p 9000:9000 scrapfly-mcp

๐Ÿค Framework Integrations

Scrapfly MCP also works with AI frameworks and automation tools:

FrameworkDocumentation
LangChainLangChain Integration
LlamaIndexLlamaIndex Integration
CrewAICrewAI Integration
OpenAIOpenAI Integration
n8nn8n Integration
MakeMake Integration
ZapierZapier Integration

๐Ÿ“– All integrations: Integration Index


๐Ÿ“š Resources


๐Ÿ’ฌ Need Help?


Scrapfly
Made with โค๏ธ by Scrapfly
The Web Scraping API for Developers