Scrapfly MCP Server
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
| Capability | Description |
|---|
| 🌐 Scrape Live Data | Pull current prices, listings, news, or any webpage content in real-time |
| 🛡️ Bypass Anti-Bot Systems | Automatically handle CAPTCHAs, proxies, JavaScript rendering, and rate limits |
| ⚡ Extract Structured Data | Parse complex websites into clean JSON using AI-powered extraction |
| 📸 Capture Screenshots | Take visual snapshots of pages or specific elements for analysis |
🏆 Why Scrapfly?
Built on battle-tested infrastructure used by thousands of developers:
📖 Learn more: Why Scrapfly MCP?
🚀 Quick Install
Click one of the buttons below to install the MCP server in your preferred IDE:
📦 Manual Installation
Standard Configuration
Works with most MCP-compatible tools:
{
"servers": {
"scrapfly-cloud-mcp": {
"type": "http",
"url": "https://mcp.scrapfly.io/mcp"
}
}
}
Cloud Configuration (NPX)
For tools that require a local process:
{
"mcpServers": {
"scrapfly": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.scrapfly.io/mcp"
]
}
}
}
🔧 IDE-Specific Setup
One-Click Install
Manual Install
Follow the VS Code MCP guide or use the CLI:
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
One-Click Install
Manual Install
code-insiders --add-mcp '{"name":"scrapfly-cloud-mcp","type":"http","url":"https://mcp.scrapfly.io/mcp"}'
📖 Full guide: VS Code Integration
One-Click Install
Manual Install
- Open Visual Studio
- Navigate to GitHub Copilot Chat window
- Click the tools icon (🛠️) in the chat toolbar
- Click + Add Server to open the configuration dialog
- Configure:
- Server ID:
scrapfly-cloud-mcp
- Type:
http/sse
- URL:
https://mcp.scrapfly.io/mcp
- Click Save
📖 Full guide: Visual Studio MCP documentation
One-Click Install
Manual Install
- Go to
Cursor Settings → MCP → Add new MCP Server
- Use the standard configuration above
- Click Edit to verify or add arguments
📖 Full guide: Cursor Integration
Use the Claude Code CLI:
claude mcp add scrapfly-cloud-mcp --url https://mcp.scrapfly.io/mcp
📖 Full guide: Claude Code Integration
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"scrapfly": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.scrapfly.io/mcp"]
}
}
}
📖 Full guide: Claude Desktop Integration
Add to your Cline MCP settings:
{
"scrapfly-cloud-mcp": {
"type": "http",
"url": "https://mcp.scrapfly.io/mcp"
}
}
📖 Full guide: Cline Integration
Follow the Windsurf MCP documentation using the standard configuration.
📖 Full guide: Windsurf Integration
Add to your Zed settings:
{
"context_servers": {
"scrapfly-cloud-mcp": {
"type": "http",
"url": "https://mcp.scrapfly.io/mcp"
}
}
}
📖 Full guide: Zed Integration
Create or edit ~/.codex/config.toml:
[mcp_servers.scrapfly-cloud-mcp]
url = "https://mcp.scrapfly.io/mcp"
📖 More info: Codex MCP documentation
Follow the Gemini CLI MCP guide using the standard configuration.
Add to ~/.config/opencode/opencode.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 provides 5 powerful tools covering 99% of web scraping use cases:
| Tool | Description | Use Case |
|---|
scraping_instruction_enhanced | Cheat-sheet of the scraping options | Optional — when the right options are unclear |
web_get_page | Quick page fetch with smart defaults | Simple scraping tasks |
web_scrape | Full control with browser automation | Complex scraping, login flows |
screenshot | Capture page screenshots | Visual analysis, monitoring |
info_account | Check usage & quota | Account management |
📖 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_pool | What it runs |
|---|
basic | datacenter proxies, Unblocker off |
unblocker | residential proxies, Unblocker on |
unblocker_ultra | residential proxies, Unblocker on, the only pool accepted by targets and anti-bot protections that have a price of their own |
auto | the 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
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
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:
🔑 Get your API key: Scrapfly Dashboard
📊 Configuration Reference
| Setting | Value |
|---|
| Server Name | scrapfly-cloud-mcp |
| Type | Remote HTTP Server |
| URL | https://mcp.scrapfly.io/mcp |
| Protocol | MCP over HTTP/SSE |
🖥️ Self-Hosted / Local Deployment
You can run the Scrapfly MCP server locally or self-host it.
CLI Arguments
| Flag | Description |
|---|
-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-remote | Server-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-ssl | Verify TLS certificates on outbound calls (default true). Set false only when targeting a host that serves a self-signed certificate. |
Environment Variables
| Variable | Description |
|---|
PORT | HTTP port to listen on. Used if -http flag is not set. |
SCRAPFLY_API_KEY | Scrapfly 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_REMOTE | 1/true is the env equivalent of -allow-remote. |
SCRAPFLY_VERIFY_SSL | 0/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
# 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
# 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:
📖 All integrations: Integration Index
📚 Resources
💬 Need Help?