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
- OAuth app
- Your own MrScraper MCP server app
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>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_nameyour code passes. See Configure connections.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.
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.actionsconst connector = 'mrscrapermcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'mrscrapermcp_status',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "mrscrapermcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize MrScraper MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="mrscrapermcp_status",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolmrscrapermcp_scraperapiRetrieves a known page through MrScraper's Scraper API as HTML, Markdown, a screenshot, or a combination.Read-onlyScraper 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-onlyAccount 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-onlyWeb 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
jsonhtmldefaultjson 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
No tools match.