Scarpfly MCP connector
OAuth 2.1/DCRSearchAIDeveloper ToolsConnect to Scrapfly MCP. Scrape web pages, take screenshots, and control a cloud browser with anti-bot bypass, JS rendering, and proxy support.
Scarpfly MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set 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> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'scarpflymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Scarpfly MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'scarpflymcp_get_page_url',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "scarpflymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Scarpfly MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="scarpflymcp_get_page_url",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Scrape web — Fetch a URL with full control over headers, JS rendering, proxy country, anti-scraping protection, and output format
- Get web, page url — Quickly fetch a URL with sensible defaults and return the page content
- Text type — Type text at the current cursor position in the active cloud browser session
- Snapshot take — Take a DOM snapshot of the current page in the cloud browser session
- Screenshot take, cloud browser — Take a screenshot of the current page in the active cloud browser session
- Option select — Select an option in a dropdown element in the active cloud browser session
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
scarpflymcp_browser_unblock#Unblock a URL using a headless browser with anti-scraping protection. Returns the page content after bypassing bot detection.3 params
Unblock a URL using a headless browser with anti-scraping protection. Returns the page content after bypassing bot detection.
urlstringrequiredTarget URL to fetch or interact with.countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).timeoutintegeroptionalServer-side timeout in milliseconds. Use alongside rendering_wait for JS-heavy pages.scarpflymcp_call_webmcp_tool#Call a specific tool from a connected remote WebMCP server by name with provided input.2 params
Call a specific tool from a connected remote WebMCP server by name with provided input.
tool_namestringrequiredName of the WebMCP tool to call (from list_webmcp_tools)inputstringoptionalJSON-stringified parameters to pass to the tool. Omit for tools with no parameters.scarpflymcp_check_if_blocked#Check whether a URL returns blocked or captcha content by scraping it and analyzing the response.10 params
Check whether a URL returns blocked or captcha content by scraping it and analyzing the response.
contentstringrequiredPage content (HTML/text) from a scrape result. Use raw or clean_html format for best detection accuracy.urlstringrequiredTarget URL to fetch or interact with.countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).extraction_modelstringoptionalPre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.formatstringoptionalOutput format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.format_optionsarrayoptionalAdditional options (only available for markdown and text formats)proxy_poolstringoptionalProxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.rendering_waitintegeroptionalMilliseconds to wait after JS rendering before returning the response.response_headersobjectoptionalResponse headers from the scrape result. Enables header-based antibot detection.status_codeintegeroptionalHTTP status code from the scrape result (e.g. 403, 429, 503). Defaults to 200. Improves detection accuracy.scarpflymcp_click#Click an element in the active cloud browser session. Requires a uid obtained from take_snapshot.1 param
Click an element in the active cloud browser session. Requires a uid obtained from take_snapshot.
uidstringrequiredElement UID from take_snapshot. Used to target a specific element for interaction.scarpflymcp_cloud_browser_close#Close an active cloud browser session by session ID to free up resources.2 params
Close an active cloud browser session by session ID to free up resources.
session_idstringrequiredActive cloud browser session ID. Obtain from cloud_browser_open.user_close_requeststringrequiredVerbatim quote of the user's close instruction (e.g. "close the session", "stop the browser"). Must contain at least one of: close, end, stop, terminate, dispose, shut down, kill, quit, exit, fermer, arrêter, terminer. Rejected if empty or meta-phrase.scarpflymcp_cloud_browser_downloads#Retrieve files downloaded during an active cloud browser session.2 params
Retrieve files downloaded during an active cloud browser session.
filenamestringoptionalNo description.session_idstringoptionalActive cloud browser session ID. Obtain from cloud_browser_open.scarpflymcp_cloud_browser_eval#Fetch a URL in a cloud browser session and optionally execute JavaScript, with full scraping options available.9 params
Fetch a URL in a cloud browser session and optionally execute JavaScript, with full scraping options available.
expressionstringrequiredJavaScript expression to evaluate in the browser page.countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).extraction_modelstringoptionalPre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.formatstringoptionalOutput format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.format_optionsarrayoptionalAdditional options (only available for markdown and text formats)proxy_poolstringoptionalProxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.rendering_waitintegeroptionalMilliseconds to wait after JS rendering before returning the response.session_idstringoptionalActive cloud browser session ID. Obtain from cloud_browser_open.urlstringoptionalTarget URL to fetch or interact with.scarpflymcp_cloud_browser_open#Open a cloud browser session on a URL for multi-step interaction such as clicking, filling forms, and navigating pages.12 params
Open a cloud browser session on a URL for multi-step interaction such as clicking, filling forms, and navigating pages.
urlstringrequiredTarget URL to fetch or interact with.blacklistbooleanoptionalNo description.block_fontsbooleanoptionalNo description.block_imagesbooleanoptionalNo description.block_mediabooleanoptionalNo description.block_stylesbooleanoptionalNo description.cachebooleanoptionalNo description.countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).debugbooleanoptionalNo description.optimize_bandwidthbooleanoptionalNo description.proxy_poolstringoptionalProxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.timeoutintegeroptionalServer-side timeout in milliseconds. Use alongside rendering_wait for JS-heavy pages.scarpflymcp_cloud_browser_performance#Get Core Web Vitals and performance metrics for the current page in a cloud browser session.3 params
Get Core Web Vitals and performance metrics for the current page in a cloud browser session.
presetstringoptionalNo description.session_idstringoptionalActive cloud browser session ID. Obtain from cloud_browser_open.timeout_msintegeroptionalNo description.scarpflymcp_cloud_browser_screenshot#Take a screenshot of the current page in an active cloud browser session.10 params
Take a screenshot of the current page in an active cloud browser session.
countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).extraction_modelstringoptionalPre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.formatstringoptionalOutput format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.format_optionsarrayoptionalAdditional options (only available for markdown and text formats)full_pagebooleanoptionalCapture the full scrollable page, not just the viewport. Default: false.proxy_poolstringoptionalProxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.rendering_waitintegeroptionalMilliseconds to wait after JS rendering before returning the response.selectorstringoptionalCSS selector of an element to screenshot. If provided, only that element is captured.session_idstringoptionalActive cloud browser session ID. Obtain from cloud_browser_open.urlstringoptionalTarget URL to fetch or interact with.scarpflymcp_cloud_browser_sessions#List all active cloud browser sessions for the current account.0 params
List all active cloud browser sessions for the current account.
scarpflymcp_drag#Drag an element to another element in the active cloud browser session. Requires uids obtained from take_snapshot.2 params
Drag an element to another element in the active cloud browser session. Requires uids obtained from take_snapshot.
from_uidstringrequiredElement UID to drag from. Obtain via take_snapshot.to_uidstringrequiredElement UID to drag to. Obtain via take_snapshot.scarpflymcp_evaluate_script#Evaluate a JavaScript expression in the active cloud browser session and return the result.1 param
Evaluate a JavaScript expression in the active cloud browser session and return the result.
expressionstringrequiredJavaScript expression to evaluatescarpflymcp_fill#Fill a form field in the active cloud browser session. Requires a uid obtained from take_snapshot.2 params
Fill a form field in the active cloud browser session. Requires a uid obtained from take_snapshot.
uidstringrequiredElement UID from take_snapshot. Used to target a specific element for interaction.valuestringrequiredText to fill inscarpflymcp_get_page_url#Get the current URL of the active cloud browser session.1 param
Get the current URL of the active cloud browser session.
dummystringoptionalUnused placeholder field required by the MCP protocol. Pass any string value.scarpflymcp_hover#Hover over an element in the active cloud browser session. Requires a uid obtained from take_snapshot.1 param
Hover over an element in the active cloud browser session. Requires a uid obtained from take_snapshot.
uidstringrequiredElement UID from take_snapshot. Used to target a specific element for interaction.scarpflymcp_info_account#Retrieve Scrapfly account details including plan, remaining credits, and usage limits.1 param
Retrieve Scrapfly account details including plan, remaining credits, and usage limits.
dummystringoptionalUnused placeholder field required by the MCP protocol. Pass any string value.scarpflymcp_info_api_key#Retrieve information about the current Scrapfly API key including permissions and rate limits.1 param
Retrieve information about the current Scrapfly API key including permissions and rate limits.
dummystringoptionalUnused placeholder field required by the MCP protocol. Pass any string value.scarpflymcp_inspect_page#Inspect the current page in a cloud browser session and optionally answer a question about its content.3 params
Inspect the current page in a cloud browser session and optionally answer a question about its content.
full_pagebooleanoptionalNo description.questionstringoptionalNo description.session_idstringoptionalActive cloud browser session ID. Obtain from cloud_browser_open.scarpflymcp_list_webmcp_tools#List all tools available on the connected remote WebMCP server.1 param
List all tools available on the connected remote WebMCP server.
dummystringoptionalUnused placeholder field required by the MCP protocol. Pass any string value.scarpflymcp_press_key#Press a keyboard key in the active cloud browser session (e.g. Enter, Tab, Escape).1 param
Press a keyboard key in the active cloud browser session (e.g. Enter, Tab, Escape).
keystringrequiredKey to press: Enter, Tab, Escape, ArrowDown, etc.scarpflymcp_scraping_instruction_enhanced#Get enhanced instructions on how to configure Scrapfly options for a specific scraping task or target site.1 param
Get enhanced instructions on how to configure Scrapfly options for a specific scraping task or target site.
dummystringoptionalUnused placeholder field required by the MCP protocol. Pass any string value.scarpflymcp_screenshot#Take a screenshot of a URL using Scrapfly's headless browser. Supports full-page capture, custom resolution, and visual deficiency simulation.15 params
Take a screenshot of a URL using Scrapfly's headless browser. Supports full-page capture, custom resolution, and visual deficiency simulation.
urlstringrequiredTarget URL to fetch or interact with.auto_scrollbooleanoptionalIf true, automatically scroll the page to load lazy content.cachebooleanoptionalIf true, enable response caching.cache_clearbooleanoptionalIf true, bypass & clear cache for this request.cache_ttlintegeroptionalThe cache time-to-live in seconds.capturestringoptionalThe capture to use for the screenshot. Either fullpage or a CSS selector countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).formatstringoptionalImage format for the screenshot. Accepted values: jpg, png, webp, gif.jsstringoptionalJavaScript code to execute on the page after load.optionsarrayoptionalScreenshot options to use for the screenshot.rendering_waitintegeroptionalMilliseconds to wait after JS rendering before returning the response.resolutionstringoptionalThe resolution to use for the screenshot. e.g. 1920x1080vision_deficiency_typestringoptionalThe vision deficiency to use for the screenshot.wait_for_selectorstringoptionalCSS selector to wait for before returning the response. Use when the target content loads asynchronously.webhookstringoptionalThe webhook to call after the request completes.scarpflymcp_scroll#Scroll the page or a specific element in the active cloud browser session by pixel delta.3 params
Scroll the page or a specific element in the active cloud browser session by pixel delta.
deltaXnumberoptionalHorizontal scroll pixels (optional)deltaYnumberoptionalVertical scroll pixels (optional, e.g. 500 to scroll down)uidstringoptionalElement UID from take_snapshot. Used to target a specific element for interaction.scarpflymcp_select_option#Select an option in a dropdown element in the active cloud browser session. Requires a uid obtained from take_snapshot.2 params
Select an option in a dropdown element in the active cloud browser session. Requires a uid obtained from take_snapshot.
uidstringrequiredElement UID from take_snapshot. Used to target a specific element for interaction.valuestringrequiredOption value or text to selectscarpflymcp_take_screenshot#Take a screenshot of the current page in the active cloud browser session.1 param
Take a screenshot of the current page in the active cloud browser session.
dummystringoptionalUnused placeholder field required by the MCP protocol. Pass any string value.scarpflymcp_take_snapshot#Take a DOM snapshot of the current page in the cloud browser session. Returns element uids needed for click, fill, hover, drag, and scroll operations.1 param
Take a DOM snapshot of the current page in the cloud browser session. Returns element uids needed for click, fill, hover, drag, and scroll operations.
dummystringoptionalUnused placeholder field required by the MCP protocol. Pass any string value.scarpflymcp_type_text#Type text at the current cursor position in the active cloud browser session.1 param
Type text at the current cursor position in the active cloud browser session.
textstringrequiredText to typescarpflymcp_web_get_page#Quickly fetch a URL with sensible defaults and return the page content. Best for simple one-shot page retrieval.10 params
Quickly fetch a URL with sensible defaults and return the page content. Best for simple one-shot page retrieval.
powstringrequiredProof-of-work token for anti-bot bypass. Use scraping_instruction_enhanced to get guidance on the correct value.urlstringrequiredTarget URL to fetch or interact with.capture_flagsarrayoptionalScreenshot flags to use for the screenshot.capture_pagebooleanoptionalIf true, also capture the page as a screenshot.countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).extraction_modelstringoptionalPre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.formatstringoptionalOutput format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.format_optionsarrayoptionalAdditional options (only available for markdown and text formats)proxy_poolstringoptionalProxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.rendering_waitintegeroptionalMilliseconds to wait after JS rendering before returning the response.scarpflymcp_web_scrape#Fetch a URL with full control over headers, JS rendering, proxy country, anti-scraping protection, and output format.26 params
Fetch a URL with full control over headers, JS rendering, proxy country, anti-scraping protection, and output format.
powstringrequiredProof-of-work token for anti-bot bypass. Use scraping_instruction_enhanced to get guidance on the correct value.urlstringrequiredTarget URL to fetch or interact with.aspbooleanoptionalEnable Anti Scraping Protection.bodystringoptionalRequest body for POST/PUT/PATCH requests.cachebooleanoptionalEnable caching of the response.cache_clearbooleanoptionalIf true, bypass & clear cache for this URL.cache_ttlintegeroptionalCache TTL in seconds when cache is true.cookiesstringoptionalCookies to send with the request.countrystringoptionalTwo-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).extraction_modelstringoptionalPre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.extraction_promptstringoptionalCustom AI prompt for extracting specific data from the page. Avoid if the model can process the data directly.formatstringoptionalOutput format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.format_optionsarrayoptionalAdditional options (only available for markdown and text formats)headersobjectoptionalHTTP headers to send.jsstringoptionalJavaScript code to execute on the page after load.js_scenarioarrayoptionalA schema for validating a sequence of browser actions (JS Scenario) for the Scrapfly API.langarrayoptionalLanguages to use for the request (Accept-Language header). Empty for auto-detection/Proxy Location alignmentmethodstringoptionalHTTP method for the request. Accepted values: GET, POST, PUT, PATCH, OPTIONS, HEAD.proxy_poolstringoptionalProxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.render_jsbooleanoptionalEnable JavaScript rendering with a headless browser.rendering_waitintegeroptionalMilliseconds to wait after JS rendering before returning the response.retrybooleanoptionalIf false, disable automatic retry on transient errors.screenshot_flagsarrayoptionalScreenshot flags to use for the screenshot.screenshotsstringoptionalScreenshots with target (fullpage, selector). Example: [{ 'name': 'my_screenshot', 'target': 'fullpage' }, { 'name': 'my_screenshot2', 'target': 'selector', 'css_selector': '#price' }]timeoutintegeroptionalServer-side timeout in milliseconds. Use alongside rendering_wait for JS-heavy pages.wait_for_selectorstringoptionalCSS selector to wait for before returning the response. Use when the target content loads asynchronously.