Scarpfly MCP

Coming soon

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.
scrapfly_scrape

Scrape any URL with optional JS rendering and anti-bot bypass.

scrapfly_screenshot

Take a screenshot of any URL in a real browser context.

scrapfly_extract

Extract structured data from raw HTML using Scrapfly's parser.

scrapfly_session_create

Create a persistent cloud browser session for multi-step scraping.

scrapfly_account_get

Check remaining credits and account quota for the current user.

scrapfly_sitemap_get

Fetch a site's sitemap and enumerate all discoverable URLs.

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.
No items found.
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>" }
}
}
}