MCP server — 26 tools live

Your agent is now
a scraping engineer

Ask in plain language. The agent works out the most efficient way to read each page, clears the anti-bot layer, validates its own output — and hands you structured data. 26 tools for Claude, Cursor and every MCP client.

$
agent sessionmcp connected
0
MCP tools
0
Tool categories
0
Extraction types
0.0×
Cheaper via smart routing
Connected from
Claude Desktop
Claude Code
Cursor
VS Code
Windsurf
Zed
Cline
n8n
LangGraph
OpenAI Agents
Claude Desktop
Claude Code
Cursor
VS Code
Windsurf
Zed
Cline
n8n
LangGraph
OpenAI Agents
Install

One config block.
Any MCP client.

Hosted and remote — nothing to install. Point your client at the server, pass your x-api-key, and all 26 tools show up in the next message.

Step 01

Paste one server block

Add the entry, restart Claude, and all 26 tools appear in the tool tray on the next message.

macOS, Windows and Linux
Your own key — never sent to the model
Hosted server, always up to date
{
  "mcpServers": {
    "jetscrape": {
      "url": "https://mcp.jetscrape.com/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}
Tool surface

26 tools across
seven categories

Typed, described and rate-aware, so the model picks the right one without prompting tricks. Discovery and extraction sit up front; templates, routines and jobs make the work repeatable.

Scraping core3 tools

The engine: structured extraction through Cloudflare, anti-bot and JS rendering.

scrape_unblockerget_htmlai_scrape
Smart discovery2 tools

Map how a page loads its content, then take the lightest route to the data.

discover_api_endpointsread_captured_response
AI helpers1 tool

Turn a plain-language description into a validated extraction schema.

generate_schema
Templates & configs11 tools

Save working selectors as named, reusable templates — bulk URLs included.

list_templateslist_available_configscreate_templateupdate_templateget_template_selectorscreate_template_selectorupdate_template_selectorget_template_urlsadd_template_urladd_template_bulk_urlsdelete_template_urls
Routines & jobs4 tools

Async dispatch with live progress, ETA and one-call reruns of any saved job.

create_template_routinerun_routineget_job_statuscheck_job
Public flows4 tools

Run shared flows and single nodes by id — with per-call overrides.

get_public_flowrun_public_flowrun_public_flow_noderun_public_node
Documentation1 tool

Semantic search over the docs so a stuck agent unblocks itself. No API key needed.

search_docs
Anatomy of a call

From one sentence
to structured data

Four hops. The agent picks the cheap path, proves the data is real, and saves the job for next time.

01You ask in plain language
No selectors, no CSS, no XPath. "Pull the product names and prices from this site" is a complete spec.
02The agent maps the page
discover_api_endpoints opens a real browser, scrolls and clicks, and works out how the page loads its content.
03It takes the lightest path
scrape_unblocker fetches over the most efficient route through the anti-bot layer — 0.66s and 2.8 KB instead of 7.82s and 5.9 KB.
04It checks its own work
Every response carries a diagnostics block. Empty fields and length mismatches are caught and retried without you.
prompt.txt
"pull the product names and
 prices from shop.example.com"

// no selectors
// no schema
// no code
user → agentplain language
discover_api_endpoints
{
  "url": "shop.example.com/search?q=coffee",
  "actions": ["scroll", "wait"]
}

→ lightest source selected
  content-type: application/json
  size: 2.8 KB
real browser3 sources mapped
scrape_unblocker
{
  "url": "<mapped source>",
  "selectors": [
    { "name":  "$.products[*].name"  },
    { "name":  "$.products[*].price",
      "transform": "regex:[0-9,.]+" }
  ]
}
anti-bot layer0.66s
result.json
{
  "rows": 148,
  "diagnostics": {
    "empty_fields": [],
    "length_mismatch": []
  },
  "saved": { "routine": "rtn_7f21c" }
}
agent → youdiagnostics clean
Deep dive

Built for agents that
run unattended

01 / Smart discovery

Stop parsing heavy pages. Read the data light.

discover_api_endpoints opens the page in a real browser and maps how it loads its content — scroll, click and form actions included, so lazy-loaded data shows up too. Measured against rendering the full page: 0.66s / 2.8 KB versus 7.82s / 5.9 KB.

How discovery works
discover.json
{
  "url": "shop.example.com/list",
  "actions": ["scroll", "click:.tab-reviews"]
}

→ 3 data sources mapped
  search results      2.8 KB  json
  reviews             1.1 KB  json
  analytics           —       skipped

// 11.8× cheaper than a full render
02 / No selectors

Describe the fields. Get the schema.

generate_schema turns "product name, price, pre-discount price" into a validated JSON schema, and ai_scrape extracts against it. Nobody writes a CSS selector — and feedback loops refine the schema in place.

See ai_scrape
ai_scrape.json
// generate_schema
"product name, price, pre-discount price"

→ {
    "name":       "string",
    "price":      "number",
    "listPrice":  "number"
  }

// ai_scrape(url, schema) → rows
03 / Self-verification

It catches the empty-data trap itself.

The classic scraping failure is a 200 OK full of nothing. Every response ships a diagnostics block listing empty fields and list-length mismatches, so the agent fixes the selector and retries — no human in the loop.

Read about diagnostics
diagnostics.json
"diagnostics": {
  "empty_fields": ["listPrice"],
  "length_mismatch": [
    { "field": "reviews", "got": 0, "want": 20 }
  ]
}

// agent repairs the selector and retries
// second pass → diagnostics clean
04 / Reuse

Set it up once. Run it forever.

Every working scrape is saved as a config plus a URL list plus a runnable routine. The agent never rebuilds the same job — run_routine reruns it in a single async call, and CSV bulk upload scales the URL list.

Templates & routines
routine.json
create_template_routine({ configId })
→ { "routineId": "rtn_7f21c" }

run_routine("rtn_7f21c")
→ { "jobId": "job_9d4", "async": true }

get_job_status("job_9d4")
→ { "progress": 0.62, "etaSeconds": 41 }
05 / Interaction

Content behind a click is still content.

Scroll, click, hover, type, wait and multi-field fill_form. Infinite-scroll lists, reviews hidden behind a tab, results behind a search form and login-gated pages all become scrapable.

Browser actions
actions.json
{
  "actions": [
    { "click": ".tab-reviews" },
    { "scroll": "bottom", "times": 4 },
    { "wait": "networkidle" }
  ]
}

// lazy-loaded content → captured
Under the hood

14 ways in,
14 ways to clean it

Fourteen extraction types and fourteen transform methods, all declared at selector level — so data arrives clean instead of being cleaned later. Every call is authenticated with your own x-api-key.

JSON PATHdotted path + GJSONnested JSON data
CSSTEXT · ATTRIBUTE · INNER_HTMLclassic markup
SCHEMAJSON-LD / Schema.orgrich results
NEXT.JS__NEXT_DATA__hydration payload
HTTPheader · raw bodymeta & redirects
GOJAinline JS expressionanything else
Transform pipeline47ms
// transforms run at selector level
{
  "selector": "$.products[*].price",
  "transform": [
    { "regex": "[0-9]+[.,][0-9]{2}" },
    { "replace": { ",": "." } },
    { "cast": "number" }
  ],
  "iterate": {
    "url": "?page={n}",   // auto pagination
    "until": "empty"
  }
}

// also: split · merge · base64 decode
// conditional assignment · dedupe
Pricing

Predictable, usage-based pricing

One page = one credit, whether an agent asked for it or your pipeline did. Lightweight requests cost a fraction of a fully rendered page.

Free
For testing and prototyping
$0
1,000 pages / month
  • MCP server access
  • HTML, JSON & Markdown output
  • 5 concurrent tool calls
  • Community support
Get started
Growth
For production agents
$50
50,000 pages / month
  • Everything in Free
  • Remote MCP endpoint
  • 20 concurrent tool calls
  • Scoped keys & budgets
  • Email support
Start free trial
Pro
For teams at scale
$250
300,000 pages / month
  • Everything in Growth
  • 50 concurrent tool calls
  • Audit log export
  • Priority support
  • Webhooks & streaming
Get started
Enterprise
Custom infrastructure
Custom
Unlimited pages
  • Everything in Pro
  • Dedicated proxies
  • Custom SLA (99.99%)
  • Self-hosted MCP option
  • Dedicated support engineer
Contact sales

Give your agent
the whole web

Free tier included. No credit card. Paste the config block and your first scrape is about ninety seconds away.

$claude mcp add jetscrape --transport http https://mcp.jetscrape.com/mcp