Scarpfly MCP

Live

OAUTH 2.1

WEB SCRAPING

Search

Any public webpage, JavaScript-rendered content, and browser session your research agent needs to act on lives in Scrapfly. Scarpfly MCP gives your agent per-user OAuth access to web scraping scoped to the authorizing Scrapfly account.

  • Acts as the user: Scraping credits and rate limits stay tied to the Scrapfly account that authorized the agent.
  • Credentials stay vaulted: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: User permissions enforced. 90-day audit trail.
Scarpfly MCP
agent · Acme Q3
Run
Scrape the pricing page at stripe.com/pricing and extract all plan names and prices.
S
scrapfly_scrape
1.2s
Research agent
Extracted 3 plans: Starter ($0/mo), Professional ($35/mo), Scale (custom). JavaScript-rendered content bypassed. Full HTML and structured data available.
Source: Scrapfly — stripe.com/pricing, JS rendering enabled
scarpflymcp
1
11:03
Message Claude...

Tools your agent reaches for on Scarpfly MCP, scoped per user.

CALL ANY TOOL
Scrape any URL with anti-bot bypass, take screenshots, and run cloud browser sessions. Every call scoped to the authorizing Scrapfly account.
scarpflymcp_browser_unblock
Browser Unblock
Unblock a URL using a headless browser with anti-scraping protection. Returns the page content after bypassing bot detection.
Parameters
Name
Type
Required
Description
url
string
Required
Target URL to fetch or interact with.
country
string
Optional
Two-letter ISO 3166-1 alpha-2 country code for the proxy exit node (e.g. US, DE, FR).
timeout
integer
Optional
Server-side timeout in milliseconds. Use alongside rendering_wait for JS-heavy pages.
scarpflymcp_call_webmcp_tool
Call Webmcp Tool
scarpflymcp_check_if_blocked
Check If Blocked
scarpflymcp_click
Click
scarpflymcp_cloud_browser_close
Cloud Browser Close
scarpflymcp_cloud_browser_downloads
Cloud Browser Downloads
scarpflymcp_cloud_browser_eval
Cloud Browser Eval
scarpflymcp_cloud_browser_navigate
Cloud Browser Navigate
scarpflymcp_cloud_browser_open
Cloud Browser Open
scarpflymcp_cloud_browser_performance
Cloud Browser Performance
scarpflymcp_cloud_browser_screenshot
Cloud Browser Screenshot
scarpflymcp_cloud_browser_sessions
Cloud Browser Sessions
scarpflymcp_drag
Drag
scarpflymcp_evaluate_script
Evaluate Script
scarpflymcp_fill
Fill
scarpflymcp_get_page_url
Get Page Url
scarpflymcp_hover
Hover
scarpflymcp_info_account
Info Account
scarpflymcp_info_api_key
Info Api Key
scarpflymcp_inspect_page
Inspect Page
scarpflymcp_list_webmcp_tools
List Webmcp Tools
scarpflymcp_press_key
Press Key
scarpflymcp_scraping_instruction_enhanced
Scraping Instruction Enhanced
scarpflymcp_screenshot
Screenshot
scarpflymcp_scroll
Scroll
scarpflymcp_select_option
Select Option
scarpflymcp_take_screenshot
Take Screenshot
scarpflymcp_take_snapshot
Take Snapshot
scarpflymcp_type_text
Type Text
scarpflymcp_web_get_page
Web Get Page

For more tools, view docs.

Build your Agent
Drop the toolkit in, point it at the user, and your agent can scrape any URL via Scrapfly without touching a credential.
Python · LlamaIndex
// Scalekit AgentKit — framework-agnostic
import { ScalekitClient } from "@scalekit/sdk";

const client = new ScalekitClient();
const token = await client.connections.getToken("scarpflymcp", userId);
const mcp = new MCPClient({ token });
// OpenAI SDK
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit/sdk";

const sk = new ScalekitClient();
const token = await sk.connections.getToken("scarpflymcp", userId);
const client = new OpenAI();
const resp = await client.responses.create({ tools: [{ type: "mcp", server_url: mcpUrl, headers: { Authorization: `Bearer ${token}` } }] });
// Anthropic SDK
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit/sdk";

const sk = new ScalekitClient();
const token = await sk.connections.getToken("scarpflymcp", userId);
const client = new Anthropic();
const resp = await client.beta.messages.create({ mcp_servers: [{ url: mcpUrl, authorization_token: token }] });
// Google GenAI SDK
import { GoogleGenAI } from "@google/genai";
import { ScalekitClient } from "@scalekit/sdk";

const sk = new ScalekitClient();
const token = await sk.connections.getToken("scarpflymcp", userId);
const ai = new GoogleGenAI();
const resp = await ai.models.generateContent({ tools: [{ mcpServers: [{ serverUrl: mcpUrl, httpOptions: { headers: { Authorization: `Bearer ${token}` } } }] }] });
Try these prompts
Paste any prompt into your research agent to start scraping web content via Scrapfly.
"Scrape the G2 reviews page for Salesforce and extract the top 10 most recent reviews with star ratings."
"Take a screenshot of our competitor's homepage and save it for the weekly competitive audit."
"Fetch all job postings from greenhouse.io/anthropic and extract role titles, locations, and apply links."
"Scrape the LinkedIn company page for our top 3 competitors and extract headcount and recent posts."
"Pull the sitemap from stripe.com and list all blog post URLs published in the last 6 months."
SEE HOW AUTH WORKS
Users authorize Scrapfly once. Their account credentials stay vaulted, every scrape is checked, and every action is logged.
1
Authorize
Your user connects
Scarpfly MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Scarpfly MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Scarpfly MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Scarpfly MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
Same per-user auth pattern across other search and web automation connectors.
SALES
Sales call prep agent
Pull Granola notes and Attio contact history to draft a pre-call brief before every sales meeting. Zero rep input.
ENGINEERING
Slack workflow agent (LangGraph)
LangGraph agent that drives multi-step Slack workflows: triggers, approvals, and follow-up actions per user identity.
ENGINEERING
Auto-release notes agent
Group merged GitHub PRs by feature, fix, or chore and publish release notes per tag. No manual changelog grooming.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
Other connector libraries treat auth as a demo afterthought. Scalekit starts with a security model and builds the connector on top.
Without Scalekit
With Scalekit
API key management
Hardcoded in env vars
Vaulted, per-user
Credential storage
Plaintext in config files
AES-256, per-user
Per-user scoping
Shared team key
Scoped to authorizing user
Audit trail
None
90-day log, per call
Revocation
Delete and redeploy
One API call
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does my agent need a Scrapfly API key?
No. Each user authorizes via their Scrapfly account. Scalekit vaults the resulting key and injects it per call. Your agent code never handles credentials.
What happens if a user revokes access?
The key is invalidated immediately. Subsequent scrape calls return an auth error. The audit log records the revocation event.
Can I use this in a multi-tenant research tool?
Yes. Keys and credits are isolated per user. Each call resolves the key scoped to the user making the request, so credit usage stays attributed correctly.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace scarpflymcp
Cursor Code REPL
# ~/.cursor/mcp.json
{
"mcpServers": {
"scarpflymcp": {
"url": "https://mcp.scalekit.com/scarpflymcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
Codex Code REPL
# ~/codex-mcp.json
{
"mcpServers": {
"scarpflymcp": {
"url": "https://mcp.scalekit.com/scarpflymcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
Copilot Code REPL
# .vscode/mcp.json
{
"servers": {
"scarpflymcp": {
"type": "http",
"url": "https://mcp.scalekit.com/scarpflymcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}