Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the MrScraper MCP server

Vendor MCP
Open markdown

The MrScraper MCP connector routes your AI agent's tool calls to MrScraper's own MCP server through Scalekit. Each user signs in to MrScraper once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 3 tools.

Tools
3
What they doRead · write · destructive
3 · 0 · 03 read0 write0 destructive
Users sign in with
OAuth app
Your own MrScraper MCP server app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the MrScraper MCP connection

    In AgentKit > Connections, create a MrScraper MCP connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    MrScraper MCP server connections use your own OAuth app. Register one with MrScraper MCP server and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the MrScraper MCP connection.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'mrscrapermcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize MrScraper MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'mrscrapermcp_status',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • mrscrapermcp_scraperapiRetrieves a known page through MrScraper's Scraper API as HTML, Markdown, a screenshot, or a combination.Read-only

    Scraper API

    Retrieves a known page through MrScraper's Scraper API as HTML, Markdown, a screenshot, or a combination. Matches the Python SDK's scraper_api options. Omit browser_rendering for automatic browser fallback; screenshot=true always enables it. super enables real-device routing independently. home_page maps to warmStart. Proxy, cookie, target-header, retry, and timeout options control page loading. Returns status_code, data, and sanitized headers.

    Inputs

    urlstringrequired
    Required absolute HTTP or HTTPS page URL.
    block_resourcesboolean
    Block images, CSS, and fonts during loading.default false
    browser_renderingboolean
    True forces browser rendering, false disables it; omit or use null for automatic fallback.
    bypass_proxyboolean
    Enable the API's proxy-bypass/resource-blocking behavior.default false
    cookie_jarstring
    Cookie configuration string, such as domain=example.com&country=us&max_used=100&max_age=50m.
    discard_token_secretstring
    Optional value for the x-discard-token-secret upstream header.default
    geo_codestring
    Proxy geolocation country code, such as US, ID, or SG.default US
    headersobject
    Target page request headers as an object or JSON string.
    home_pageboolean
    Visit the site's root before the target URL; sent as warmStart=true.default false
    htmlboolean
    Request HTML page content.default true
    markdownboolean
    Request Markdown page content.default false
    max_retriesinteger
    Maximum Web Unblocker retries; 0 disables retries.default 3
    proxystring
    Custom proxy in username:password@host:port form.
    proxy_countrystring
    Compatibility country option sent as proxyCountry.
    screenshotboolean
    Capture a screenshot; always enables browser rendering.default false
    streamboolean
    Ask the API to stream; the MCP server buffers the response into the normal envelope.
    superboolean
    Use real-device routing independently of browser rendering.default false
    timeoutinteger
    Page timeout in seconds (1–300); transport allows 30 additional seconds.default 120
    token_capinteger
    Optional nonnegative retry-token budget.
    use_proxyboolean
    Allow the service to use a configured proxy.default true
    wait_for_selectorstring
    CSS selector to wait for before returning page content.
  • mrscrapermcp_statusReturns the connected MrScraper account's identity (name, email, and verification state), subscription status, token limit, token usage, remaining tokens, and rate limit.Read-only

    Account Status

    Returns the connected MrScraper account's identity (name, email, and verification state), subscription status, token limit, token usage, remaining tokens, and rate limit. Use it to check the account and remaining quota, for example before a large batch of requests. It takes no input and reports account usage, not the progress of a request.

    Inputs

    This tool takes no inputs.

  • mrscrapermcp_websearchSearches Google from query text or a Google search URL passed as url.Read-only

    Web Search

    Searches Google from query text or a Google search URL passed as url. Matches the Python SDK's web_search options. Set raw=false and format=json for parsed results; the SDK-compatible default raw=true returns HTML. Google URLs supply q, gl, hl, and start; explicit region, language, and page override URL-derived values. render_js enables dynamic features; timeout controls the local request deadline. Returns status_code, data, and sanitized headers.

    Inputs

    urlstringrequired
    Required search query text or complete Google search URL.
    formatstring
    Response representation when raw=false.one of jsonhtmldefault json
    languagestring
    Language code; overrides hl from a Google search URL.
    pageinteger
    One-based result page; overrides the page derived from start in a Google URL.
    rawboolean
    SDK compatibility default: true requests HTML and overrides format. Set false for parsed JSON results.default true
    regionstring
    Country code; overrides gl from a Google search URL.
    render_jsboolean
    Render JavaScript-dependent search features.default false
    timeoutnumber
    Local upstream HTTP deadline in seconds; omitted from the JSON body.default 600