mcpField
S
Scrappey MCP Server

Scrappey MCP Server

Local
github.com/pim97Browser Automation1Updated 20w ago

About Scrappey MCP Server

Scrappey MCP Server connects AI models to Scrappey's browser-based automation and data extraction. It is intended for authorized testing, monitoring, and collection, with session management, browser actions, and page capture tools.

Key features

  1. 01Create and manage browser sessions
  2. 02Send browser-backed HTTP requests
  3. 03Automate clicks, typing, and navigation
  4. 04Handle JavaScript challenge pages
  5. 05Capture screenshots and videos
  6. 06Intercept network requests

Use cases

  1. 01Test an application login flow
  2. 02Monitor a service you operate
  3. 03Collect authorized website data

MCP support

Exposes Scrappey's browser automation and extraction capabilities as tools for MCP clients, including sessions, requests, browser actions, and screenshots.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"scrappey": {
"command": "npx",
"args": [
"-y",
"@anthropic/smithery-cli"
]
}
}
}
Run commandnpx -y @anthropic/smithery-cli

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@anthropic/smithery-cli

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Scrappey MCP Server

A Model Context Protocol (MCP) server for interacting with Scrappey.com's browser-backed web automation and data-extraction capabilities. Try it out directly at smithery.ai/server/@pim97/mcp-server-scrappey.

Overview

This MCP server provides a bridge between AI models and Scrappey's web automation platform, allowing you to:

  • Create and manage browser sessions
  • Send HTTP requests through Scrappey's browser-backed infrastructure
  • Execute browser actions (clicking, typing, scrolling, etc.)
  • Render pages that rely on JavaScript challenge pages from common bot-management systems (Cloudflare, Datadome, Kasada, etc.)
  • Complete interactive challenge widgets when a page requires them (Turnstile, reCAPTCHA, hCaptcha, etc.)
  • Take screenshots and record videos
  • Intercept network requests

This server is intended for legitimate development use — application and integration testing, monitoring your own services, and collecting data you are authorized to access. See Responsible Use.

Setup

Installation
npm install
npm run build
Configuration
  1. Get your Scrappey API key from Scrappey.com
  2. Set up your environment variable:
SCRAPPEY_API_KEY=your_api_key_here
Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "scrappey": {
      "command": "node",
      "args": ["path/to/dist/scrappey-mcp.js"],
      "env": {
        "SCRAPPEY_API_KEY": "your_api_key_here"
      }
    }
  }
}
Cursor IDE Configuration

Cursor supports MCP servers through its settings. Configure it in one of these ways:

Option 1: Via Cursor Settings UI

  1. Open Cursor Settings (Ctrl+, or Cmd+,)
  2. Search for "MCP" or "Model Context Protocol"
  3. Add a new MCP server with:
    • Name: scrappey
    • Command: node
    • Args: ["C:\\Users\\pim_d\\Desktop\\scrappey.com\\mcp-smith\\mcp-server-scrappey\\dist\\scrappey-mcp.js"]
    • Environment Variables: Add SCRAPPEY_API_KEY with your API key

Option 2: Via Settings JSON

  1. Open Cursor Settings (Ctrl+Shift+P or Cmd+Shift+P)
  2. Type "Preferences: Open User Settings (JSON)"
  3. Add the MCP server configuration:
{
  "mcp.servers": {
    "scrappey": {
      "command": "node",
      "args": ["C:\\Users\\pim_d\\Desktop\\scrappey.com\\mcp-smith\\mcp-server-scrappey\\dist\\scrappey-mcp.js"],
      "env": {
        "SCRAPPEY_API_KEY": "your_api_key_here"
      }
    }
  }
}

Note: Adjust the path to dist/scrappey-mcp.js based on where you installed the MCP server.

After configuration, restart Cursor to load the MCP server. You should see Scrappey tools available in the AI chat interface.

Available Tools

1. Create Session (scrappey_create_session)

Creates a new browser session that persists cookies and other state.

{
  "proxy": "http://user:pass@ip:port",
  "proxyCountry": "UnitedStates",
  "premiumProxy": true,
  "mobileProxy": false,
  "browser": [{"name": "firefox", "minVersion": 120, "maxVersion": 130}],
  "userAgent": "custom-user-agent"
}
2. Destroy Session (scrappey_destroy_session)

Properly closes a browser session to free resources.

{
  "session": "session_id_here"
}
3. List Sessions (scrappey_list_sessions)

List all active sessions for the current user.

{}

Response:

{
  "sessions": [{"session": "abc123", "lastAccessed": 1234567890}],
  "open": 1,
  "limit": 100
}
4. Check Session Active (scrappey_session_active)

Check if a specific session is currently active.

{
  "session": "session_id_here"
}
5. Send Request (scrappey_request)

Send browser-backed HTTP requests, with automatic handling of JavaScript challenge pages.

{
  "cmd": "request.get",
  "url": "https://example.com",
  "session": "session_id_here",
  "postData": {"key": "value"},
  "customHeaders": {"User-Agent": "custom-agent"},
  "cookies": "session=abc123",
  "proxyCountry": "Germany",
  "premiumProxy": true,
  "cloudflareBypass": true,
  "datadomeBypass": true,
  "automaticallySolveCaptchas": true,
  "alwaysLoad": ["recaptcha", "hcaptcha"],
  "screenshot": true,
  "cssSelector": ".product-title",
  "innerText": true,
  "includeLinks": true,
  "includeImages": true,
  "interceptFetchRequest": "https://api.example.com/data",
  "abortOnDetection": ["analytics.com", "tracking.js"],
  "whitelistedDomains": ["example.com"],
  "blockCookieBanners": true
}
6. Browser Actions (scrappey_browser_action)

Execute browser automation actions.

{
  "session": "session_id_here",
  "url": "https://example.com",
  "cmd": "request.get",
  "browserActions": [
    {"type": "wait_for_selector", "cssSelector": "#login-form"},
    {"type": "type", "cssSelector": "#username", "text": "myuser"},
    {"type": "type", "cssSelector": "#password", "text": "mypassword"},
    {"type": "solve_captcha", "captcha": "turnstile"},
    {"type": "click", "cssSelector": "#submit", "waitForSelector": ".dashboard"},
    {"type": "execute_js", "code": "document.querySelector('.user-data').innerText"}
  ],
  "mouseMovements": true
}
Supported Browser Action Types:
ActionDescription
clickClick on an element
typeType text into an input field
gotoNavigate to a URL
waitWait for specified milliseconds
wait_for_selectorWait for an element to appear
wait_for_functionWait for JavaScript condition to be true
wait_for_load_stateWait for page load state (domcontentloaded, networkidle, load)
wait_for_cookieWait for a cookie to be set
execute_jsExecute JavaScript code
scrollScroll to element or page bottom
hoverHover over an element
keyboardPress keyboard keys (enter, tab, etc.)
dropdownSelect option from dropdown
switch_iframeSwitch to an iframe
set_viewportChange browser viewport size
ifConditional action execution
whileLoop actions while condition is true
solve_captchaSolve various captcha types
remove_iframesRemove all iframes from page
Supported Interactive Challenge Types:
  • turnstile - Cloudflare Turnstile
  • recaptcha / recaptchav2 / recaptchav3 - Google reCAPTCHA
  • hcaptcha / hcaptcha_inside / hcaptcha_enterprise_inside - hCaptcha
  • funcaptcha - FunCaptcha/Arkose Labs
  • perimeterx - PerimeterX
  • mtcaptcha - MTCaptcha
  • custom - Custom image captcha
7. Screenshot (scrappey_screenshot)

Take a screenshot of a webpage.

{
  "url": "https://example.com",
  "session": "optional_session_id",
  "screenshotWidth": 1920,
  "screenshotHeight": 1080,
  "fullPage": true,
  "browserActions": [
    {"type": "wait", "wait": 2000}
  ],
  "premiumProxy": true
}

Challenge-Page Handling

Many sites serve JavaScript challenge pages before returning content. Scrappey renders these in a real browser so your automated requests receive the final page. The server is compatible with challenge pages from common bot-management systems:

  • Cloudflare - Bot Management, Turnstile, Challenge pages
  • Datadome
  • PerimeterX
  • Kasada
  • Akamai - Bot Manager
  • Incapsula - Imperva

Enable handling for a specific system per request:

{
  "cloudflareBypass": true,
  "datadomeBypass": true,
  "kasadaBypass": true
}

The option keys above (cloudflareBypass, etc.) are Scrappey API field names and are kept as-is for compatibility.

Proxy Options

{
  "proxy": "http://user:pass@ip:port",
  "proxyCountry": "UnitedStates",
  "premiumProxy": true,
  "mobileProxy": true,
  "noProxy": false
}

Supported Countries: UnitedStates, UnitedKingdom, Germany, France, and many more.

Error Codes

The server provides detailed error information:

CodeDescription
CODE-0001Server capacity full, try again
CODE-0002Cloudflare blocked
CODE-0007Turnstile/Proxy error
CODE-0010Datadome proxy blocked
CODE-0024Proxy timeout
CODE-0029Too many sessions open
CODE-0032Turnstile captcha failed

Typical Workflow

  1. Create a session:
{"name": "scrappey_create_session"}
  1. Navigate and interact:
{
  "name": "scrappey_browser_action",
  "session": "returned_session_id",
  "url": "https://example.com/login",
  "cmd": "request.get",
  "browserActions": [
    {"type": "type", "cssSelector": "#username", "text": "myuser"},
    {"type": "type", "cssSelector": "#password", "text": "mypass"},
    {"type": "click", "cssSelector": "#login-btn", "waitForSelector": ".dashboard"}
  ]
}
  1. Extract data:
{
  "name": "scrappey_request",
  "cmd": "request.get",
  "url": "https://example.com/data",
  "session": "returned_session_id",
  "cssSelector": ".product-list"
}
  1. Clean up:
{
  "name": "scrappey_destroy_session",
  "session": "returned_session_id"
}

Best Practices

  1. Reuse sessions for related requests to maintain state
  2. Destroy sessions when done to free resources
  3. Use premium proxies for more reliable connections
  4. Enable automatic challenge handling for sites that serve challenge pages
  5. Use appropriate wait times between actions so pages have time to load
  6. Monitor session limits to avoid hitting limits

Responsible Use

This server is a development tool for browser-based automation and data extraction. Use it only for lawful, authorized purposes, such as:

  • Testing and monitoring applications and integrations you own or operate
  • Collecting data you are permitted to access

When accessing third-party sites, follow each site's terms of service, robots directives, and rate limits, respect personal data and copyright, and comply with all applicable laws. You are responsible for how you use this server and your Scrappey account.

Deployment

Smithery Deployment
# Build
npm run build

# Deploy via Smithery CLI
npx @anthropic/smithery-cli deploy
Docker
docker build -t scrappey-mcp .
docker run -e SCRAPPEY_API_KEY=your_key scrappey-mcp

Resources

License

MIT License

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.