The Scrapfly MCP connector routes your AI agent's tool calls to Scrapfly's own MCP server through Scalekit. Each user signs in to Scrapfly once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 31 tools.
- Tools
- 31
- What they doRead · write · destructive
- 15 · 15 · 115 read15 write1 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own Scrapfly MCP server app
What you can do
- Scrape web pages: fetch any URL with JavaScript rendering, proxy country, and anti-bot settings, and return the content
- Get past blocks: unblock protected pages with a headless browser and check whether a URL returns a captcha
- Drive a cloud browser: open sessions, navigate, click, type, fill forms, scroll, and select options on live pages
- Capture screenshots and page state: screenshot URLs or live sessions, take page snapshots, and read performance metrics
- Check account usage: view plan details, remaining credits, and API key permissions
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 Scrapfly MCP connection
In AgentKit > Connections, create a Scrapfly 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
Scrapfly MCP server connections use your own OAuth app. Register one with Scrapfly MCP server and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the Scrapfly 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 = 'scarpflymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Scrapfly 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: 'scarpflymcp_cloud_browser_performance',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 = "scarpflymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Scrapfly MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="scarpflymcp_cloud_browser_performance",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_toolscarpflymcp_check_if_blockedCheck whether a URL returns blocked or captcha content by scraping it and analyzing the response.Read-onlyCheck If Blocked
Check whether a URL returns blocked or captcha content by scraping it and analyzing the response.
Inputs
contentstringrequired- Page content (HTML/text) from a scrape result. Use raw or clean_html format for best detection accuracy.
urlstringrequired- Target URL to fetch or interact with.
countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).default
extraction_modelstring- Pre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.one of
articleeventfood_recipehotelhotel_listingjob_listingjob_postingorganizationproductproduct_listingreal_estate_propertyreal_estate_property_listingreview_listsearch_engine_resultssocial_media_postsoftwarestockvehicle_advehicle_ad_listingdefault formatstring- Output format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.one of
jsontextmarkdownclean_htmlrawdefaultmarkdown format_optionsarray- Additional options (only available for markdown and text formats)
proxy_poolstring- Proxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.one of
public_datacenter_poolpublic_residential_pooldefaultpublic_datacenter_pool rendering_waitinteger- Milliseconds to wait after JS rendering before returning the response.
response_headersobject- Response headers from the scrape result. Enables header-based antibot detection.
status_codeinteger- HTTP status code from the scrape result (e.g. 403, 429, 503). Defaults to 200. Improves detection accuracy.
scarpflymcp_cloud_browser_performanceGet Core Web Vitals and performance metrics for the current page in a cloud browser session.Read-onlyCloud Browser Performance
Get Core Web Vitals and performance metrics for the current page in a cloud browser session.
Inputs
presetstring- No description.one of
mobiledesktop session_idstring- Active cloud browser session ID. Obtain from cloud_browser_open.
timeout_msinteger- No description.
scarpflymcp_cloud_browser_screenshotTake a screenshot of the current page in an active cloud browser session.Read-onlyCloud Browser Screenshot
Take a screenshot of the current page in an active cloud browser session.
Inputs
countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).default
extraction_modelstring- Pre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.one of
articleeventfood_recipehotelhotel_listingjob_listingjob_postingorganizationproductproduct_listingreal_estate_propertyreal_estate_property_listingreview_listsearch_engine_resultssocial_media_postsoftwarestockvehicle_advehicle_ad_listingdefault formatstring- Output format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.one of
jsontextmarkdownclean_htmlrawdefaultmarkdown format_optionsarray- Additional options (only available for markdown and text formats)
full_pageboolean- Capture the full scrollable page, not just the viewport. Default: false.
proxy_poolstring- Proxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.one of
public_datacenter_poolpublic_residential_pooldefaultpublic_datacenter_pool rendering_waitinteger- Milliseconds to wait after JS rendering before returning the response.
selectorstring- CSS selector of an element to screenshot. If provided, only that element is captured.
session_idstring- Active cloud browser session ID. Obtain from cloud_browser_open.
urlstring- Target URL to fetch or interact with.
scarpflymcp_cloud_browser_sessionsList all active cloud browser sessions for the current account.Read-onlyCloud Browser Sessions
List all active cloud browser sessions for the current account.
Inputs
This tool takes no inputs.
scarpflymcp_get_page_urlGet the current URL of the active cloud browser session.Read-onlyGet Page Url
Get the current URL of the active cloud browser session.
Inputs
dummystring- Unused placeholder field required by the MCP protocol. Pass any string value.
scarpflymcp_info_accountRetrieve Scrapfly account details including plan, remaining credits, and usage limits.Read-onlyInfo Account
Retrieve Scrapfly account details including plan, remaining credits, and usage limits.
Inputs
dummystring- Unused placeholder field required by the MCP protocol. Pass any string value.
scarpflymcp_info_api_keyRetrieve information about the current Scrapfly API key including permissions and rate limits.Read-onlyInfo Api Key
Retrieve information about the current Scrapfly API key including permissions and rate limits.
Inputs
dummystring- Unused placeholder field required by the MCP protocol. Pass any string value.
scarpflymcp_inspect_pageInspect the current page in a cloud browser session and optionally answer a question about its content.Read-onlyInspect Page
Inspect the current page in a cloud browser session and optionally answer a question about its content.
Inputs
full_pageboolean- No description.
questionstring- No description.
session_idstring- Active cloud browser session ID. Obtain from cloud_browser_open.
scarpflymcp_list_webmcp_toolsList all tools available on the connected remote WebMCP server.Read-onlyList Webmcp Tools
List all tools available on the connected remote WebMCP server.
Inputs
dummystring- Unused placeholder field required by the MCP protocol. Pass any string value.
scarpflymcp_scraping_instruction_enhancedGet enhanced instructions on how to configure Scrapfly options for a specific scraping task or target site.Read-onlyScraping Instruction Enhanced
Get enhanced instructions on how to configure Scrapfly options for a specific scraping task or target site.
Inputs
dummystring- Unused placeholder field required by the MCP protocol. Pass any string value.
scarpflymcp_screenshotTake a screenshot of a URL using Scrapfly's headless browser.Read-onlyScreenshot
Take a screenshot of a URL using Scrapfly's headless browser. Supports full-page capture, custom resolution, and visual deficiency simulation.
Inputs
urlstringrequired- Target URL to fetch or interact with.
auto_scrollboolean- If true, automatically scroll the page to load lazy content.
cacheboolean- If true, enable response caching.
cache_clearboolean- If true, bypass & clear cache for this request.
cache_ttlinteger- The cache time-to-live in seconds.
capturestring- The capture to use for the screenshot. Either fullpage or a CSS selector default
fullpage countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).default
formatstring- Image format for the screenshot. Accepted values: jpg, png, webp, gif.one of
jpgpngwebpgifdefaultjpg jsstring- JavaScript code to execute on the page after load.
optionsarray- Screenshot options to use for the screenshot.
rendering_waitinteger- Milliseconds to wait after JS rendering before returning the response.
resolutionstring- The resolution to use for the screenshot. e.g. 1920x1080default
1920x1080 vision_deficiency_typestring- The vision deficiency to use for the screenshot.one of
nonedeuteranopiaprotanopiatritanopiaachromatopsiablurredVisionreducedContrastdefaultnone wait_for_selectorstring- CSS selector to wait for before returning the response. Use when the target content loads asynchronously.
webhookstring- The webhook to call after the request completes.
scarpflymcp_take_screenshotTake a screenshot of the current page in the active cloud browser session.Read-onlyTake Screenshot
Take a screenshot of the current page in the active cloud browser session.
Inputs
dummystring- Unused placeholder field required by the MCP protocol. Pass any string value.
scarpflymcp_take_snapshotTake a DOM snapshot of the current page in the cloud browser session.Read-onlyTake 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.
Inputs
dummystring- Unused placeholder field required by the MCP protocol. Pass any string value.
scarpflymcp_web_get_pageQuickly fetch a URL with sensible defaults and return the page content.Read-onlyWeb Get Page
Quickly fetch a URL with sensible defaults and return the page content. Best for simple one-shot page retrieval.
Inputs
powstringrequired- Proof-of-work token for anti-bot bypass. Use scraping_instruction_enhanced to get guidance on the correct value.
urlstringrequired- Target URL to fetch or interact with.
capture_flagsarray- Screenshot flags to use for the screenshot.
capture_pageboolean- If true, also capture the page as a screenshot.default
false countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).default
extraction_modelstring- Pre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.one of
articleeventfood_recipehotelhotel_listingjob_listingjob_postingorganizationproductproduct_listingreal_estate_propertyreal_estate_property_listingreview_listsearch_engine_resultssocial_media_postsoftwarestockvehicle_advehicle_ad_listingdefault formatstring- Output format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.one of
jsontextmarkdownclean_htmlrawdefaultmarkdown format_optionsarray- Additional options (only available for markdown and text formats)
proxy_poolstring- Proxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.one of
public_datacenter_poolpublic_residential_pooldefaultpublic_datacenter_pool rendering_waitinteger- Milliseconds to wait after JS rendering before returning the response.
scarpflymcp_web_scrapeFetch a URL with full control over headers, JS rendering, proxy country, anti-scraping protection, and output format.Read-onlyWeb Scrape
Fetch a URL with full control over headers, JS rendering, proxy country, anti-scraping protection, and output format.
Inputs
powstringrequired- Proof-of-work token for anti-bot bypass. Use scraping_instruction_enhanced to get guidance on the correct value.
urlstringrequired- Target URL to fetch or interact with.
aspboolean- Enable Anti Scraping Protection.default
true bodystring- Request body for POST/PUT/PATCH requests.
cacheboolean- Enable caching of the response.
cache_clearboolean- If true, bypass & clear cache for this URL.
cache_ttlinteger- Cache TTL in seconds when cache is true.
cookiesstring- Cookies to send with the request.
countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).default
extraction_modelstring- Pre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.one of
articleeventfood_recipehotelhotel_listingjob_listingjob_postingorganizationproductproduct_listingreal_estate_propertyreal_estate_property_listingreview_listsearch_engine_resultssocial_media_postsoftwarestockvehicle_advehicle_ad_listingdefault extraction_promptstring- Custom AI prompt for extracting specific data from the page. Avoid if the model can process the data directly.
formatstring- Output format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.one of
jsontextmarkdownclean_htmlrawdefaultmarkdown format_optionsarray- Additional options (only available for markdown and text formats)
headersobject- HTTP headers to send.
jsstring- JavaScript code to execute on the page after load.
js_scenarioarray- A schema for validating a sequence of browser actions (JS Scenario) for the Scrapfly API.
langarray- Languages to use for the request (Accept-Language header). Empty for auto-detection/Proxy Location alignment
methodstring- HTTP method for the request. Accepted values: GET, POST, PUT, PATCH, OPTIONS, HEAD.one of
GETPOSTPUTPATCHOPTIONSHEADdefaultGET proxy_poolstring- Proxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.one of
public_datacenter_poolpublic_residential_pooldefaultpublic_datacenter_pool render_jsboolean- Enable JavaScript rendering with a headless browser.default
true rendering_waitinteger- Milliseconds to wait after JS rendering before returning the response.
retryboolean- If false, disable automatic retry on transient errors.default
true screenshot_flagsarray- Screenshot flags to use for the screenshot.
screenshotsstring- Screenshots with target (fullpage, selector). Example: [{ 'name': 'my_screenshot', 'target': 'fullpage' }, { 'name': 'my_screenshot2', 'target': 'selector', 'css_selector': '#price' }]
timeoutinteger- Server-side timeout in milliseconds. Use alongside rendering_wait for JS-heavy pages.
wait_for_selectorstring- CSS selector to wait for before returning the response. Use when the target content loads asynchronously.
scarpflymcp_browser_unblockUnblock a URL using a headless browser with anti-scraping protection.WriteBrowser Unblock
Unblock a URL using a headless browser with anti-scraping protection. Returns the page content after bypassing bot detection.
Inputs
urlstringrequired- Target URL to fetch or interact with.
countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).
timeoutinteger- Server-side timeout in milliseconds. Use alongside rendering_wait for JS-heavy pages.
scarpflymcp_call_webmcp_toolCall a specific tool from a connected remote WebMCP server by name with provided input.WriteCall Webmcp Tool
Call a specific tool from a connected remote WebMCP server by name with provided input.
Inputs
tool_namestringrequired- Name of the WebMCP tool to call (from list_webmcp_tools)
inputstring- JSON-stringified parameters to pass to the tool. Omit for tools with no parameters.
scarpflymcp_clickClick an element in the active cloud browser session.WriteClick
Click an element in the active cloud browser session. Requires a uid obtained from take_snapshot.
Inputs
uidstringrequired- Element UID from take_snapshot. Used to target a specific element for interaction.
scarpflymcp_cloud_browser_downloadsRetrieve files downloaded during an active cloud browser session.WriteCloud Browser Downloads
Retrieve files downloaded during an active cloud browser session.
Inputs
filenamestring- No description.
session_idstring- Active cloud browser session ID. Obtain from cloud_browser_open.
scarpflymcp_cloud_browser_evalFetch a URL in a cloud browser session and optionally execute JavaScript, with full scraping options available.WriteCloud Browser Eval
Fetch a URL in a cloud browser session and optionally execute JavaScript, with full scraping options available.
Inputs
expressionstringrequired- JavaScript expression to evaluate in the browser page.
countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).default
extraction_modelstring- Pre-built AI extraction model to apply. Accepted values: article, event, food_recipe, hotel, product, job_posting, organization, and more.one of
articleeventfood_recipehotelhotel_listingjob_listingjob_postingorganizationproductproduct_listingreal_estate_propertyreal_estate_property_listingreview_listsearch_engine_resultssocial_media_postsoftwarestockvehicle_advehicle_ad_listingdefault formatstring- Output format for the scraped content. Accepted values: markdown, text, clean_html, json, raw.one of
jsontextmarkdownclean_htmlrawdefaultmarkdown format_optionsarray- Additional options (only available for markdown and text formats)
proxy_poolstring- Proxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.one of
public_datacenter_poolpublic_residential_pooldefaultpublic_datacenter_pool rendering_waitinteger- Milliseconds to wait after JS rendering before returning the response.
session_idstring- Active cloud browser session ID. Obtain from cloud_browser_open.
urlstring- Target URL to fetch or interact with.
scarpflymcp_cloud_browser_openOpen a cloud browser session on a URL for multi-step interaction such as clicking, filling forms, and navigating pages.WriteCloud Browser Open
Open a cloud browser session on a URL for multi-step interaction such as clicking, filling forms, and navigating pages.
Inputs
urlstringrequired- Target URL to fetch or interact with.
blacklistboolean- No description.
block_fontsboolean- No description.
block_imagesboolean- No description.
block_mediaboolean- No description.
block_stylesboolean- No description.
cacheboolean- No description.
countrystring- Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).
debugboolean- No description.
optimize_bandwidthboolean- No description.
proxy_poolstring- Proxy pool to route the request through. Accepted values: public_datacenter_pool, public_residential_pool.
timeoutinteger- Server-side timeout in milliseconds. Use alongside rendering_wait for JS-heavy pages.
scarpflymcp_dragDrag an element to another element in the active cloud browser session.WriteDrag
Drag an element to another element in the active cloud browser session. Requires uids obtained from take_snapshot.
Inputs
from_uidstringrequired- Element UID to drag from. Obtain via take_snapshot.
to_uidstringrequired- Element UID to drag to. Obtain via take_snapshot.
scarpflymcp_evaluate_scriptEvaluate a JavaScript expression in the active cloud browser session and return the result.WriteEvaluate Script
Evaluate a JavaScript expression in the active cloud browser session and return the result.
Inputs
expressionstringrequired- JavaScript expression to evaluate
scarpflymcp_fillFill a form field in the active cloud browser session.WriteFill
Fill a form field in the active cloud browser session. Requires a uid obtained from take_snapshot.
Inputs
uidstringrequired- Element UID from take_snapshot. Used to target a specific element for interaction.
valuestringrequired- Text to fill in
scarpflymcp_hoverHover over an element in the active cloud browser session.WriteHover
Hover over an element in the active cloud browser session. Requires a uid obtained from take_snapshot.
Inputs
uidstringrequired- Element UID from take_snapshot. Used to target a specific element for interaction.
scarpflymcp_press_keyPress a keyboard key in the active cloud browser session (e.g.WritePress Key
Press a keyboard key in the active cloud browser session (e.g. Enter, Tab, Escape).
Inputs
keystringrequired- Key to press: Enter, Tab, Escape, ArrowDown, etc.
scarpflymcp_scrollScroll the page or a specific element in the active cloud browser session by pixel delta.WriteScroll
Scroll the page or a specific element in the active cloud browser session by pixel delta.
Inputs
deltaXnumber- Horizontal scroll pixels (optional)
deltaYnumber- Vertical scroll pixels (optional, e.g. 500 to scroll down)
uidstring- Element UID from take_snapshot. Used to target a specific element for interaction.
scarpflymcp_select_optionSelect an option in a dropdown element in the active cloud browser session.WriteSelect Option
Select an option in a dropdown element in the active cloud browser session. Requires a uid obtained from take_snapshot.
Inputs
uidstringrequired- Element UID from take_snapshot. Used to target a specific element for interaction.
valuestringrequired- Option value or text to select
scarpflymcp_type_textType text at the current cursor position in the active cloud browser session.WriteType Text
Type text at the current cursor position in the active cloud browser session.
Inputs
textstringrequired- Text to type
scarpflymcp_cloud_browser_closeClose an active cloud browser session by session ID to free up resources.DestructiveCloud Browser Close
Close an active cloud browser session by session ID to free up resources.
Inputs
session_idstringrequired- Active cloud browser session ID. Obtain from cloud_browser_open.
user_close_requeststringrequired- Verbatim 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.
No tools match.