mcp.hasdata.com/api/mcp

Web scraping in Cursor,
in one JSON block

Paste it into ~/.cursor/mcp.json and the server connects itself, and 57 scraping tools land in the agent's schema. Proxies and parsing stay on our side.

1,000 free credits. No credit card required.

57 tools· 1–15 credits per call· nothing runs locally
~/.cursor/mcp.json user scope
{
"mcpServers": {
"hasdata": {
"url": "https://mcp.hasdata.com/api/mcp",
"headers": { "x-api-key": "${env:HASDATA_API_KEY}" }
}
}
}
MCPsConnected 1
hasdata User 57 tools enabled
ClientsClients

Put the MCP server where the job runs.

Configure hasdata 1 source
Source
cursor-probe
.cursor/mcp.json
Environments
LocalConnected · Logout
Tools

Enable or disable individual tools.

hasdata_google_serp_serp_getSearchResults
hasdata_google_maps_search_performMapSearch
hasdata_amazon_product_getProductDetails
hasdata_web_scraping_web_scraping_scrapeWebPage
hasdata_youtube_transcript_getYoutubeTranscript
+ 52 more
ReloadDone
~/.cursor/mcp.json

Yours, in every project. It never sees the dialog.

hasdataUser57 tools enabled
.cursor/mcp.json

The team's, via pull. It arrives Disabled. One flip in Configure and it reads hasdata (Workspace) from then on.

hasdatacursor-probeDisabled
cursor.com/agents

The cloud's. No dialog here, on purpose. Automations read their MCP from the dashboard, not from files on your machine.

a schedule a Slack message a commit a failing test → opens a PR

Every reply is the next call's input.

Fifty-seven tools in one conversation, and each answer opens the question that follows it. No wiring between calls, no scratchpad on the side to hold the values.

Find homes for sale in Austin, 400k to 700k, at least 3 beds
Zillow search for homes in Austin, TX
price[min]=400000 · price[max]=700000 · beds[min]=3
8507 Shenandoah Dr$400,0003/21,300 sqft
7913 Tisdale Dr$400,0004/21,332 sqft
8507 Contour Dr$400,0003/21,214 sqft
1010 Bird Creek Dr$400,0005/31,905 sqft
12321 Yarmont Way$400,0003/21,533 sqft
+ 36 more in the same reply

Price, beds and size. That's the whole card, and the rest sits deeper.

Pull the full history on 7913 Tisdale Dr
Zillow property details for 7913 Tisdale Dr
↳ row 2 of the list
listed Apr 22 $425,000
price cut Jun 4 $400,000 (−5.9%)
109 days on Zillow · 524 views · 16 saves
tax assessment $509,517 · tax $2,600.15 (+4.4%)
1952 · SINGLE_FAMILY · 4 bd / 2 ba · 0.28 acre lot
Travis County · SUNSET VIEW · 30.351713, −97.71823

Asking 400. Assessed at 509. None of it is on the card in step one.

What grocery stores are near it?
Google Maps search for "grocery store"
ll: "@30.351713,-97.71823,14z" ↳ the coordinates above
H-E-B4.4 (1,895)
Dia's Market4.7 (396)
99 Ranch Market4.4 (2,843)
MT Supermarket4.3 (2,451)

Zillow doesn't say what's within walking distance. Maps does, from the coordinates the last call returned.

one job · zillow_listing → zillow_property → google_maps_search · maps 5 credits, 20 rows per call

Already parsed, field by field.

All Scraper APIs
Search

Search, every surface of it

The Google results page, Light SERP, AI Mode, AI Overview, News, Shopping, Images, Events and short videos. Plus Bing and Trends.

positiontitlelinksnippet
Local & leads

Businesses, phone included

Google Maps places, reviews, author reviews, photos and posts. Plus Yelp and YellowPages.

phonewebsiteratingaddress
Listings & stays

Homes, stays and fares

Zillow, Redfin, Airbnb, Booking, Google Hotels, Google Flights.

pricebedsareadaysOnZillow
Commerce

Products and their sellers

Amazon search, product, seller and seller inventory. Plus Shopify.

currentPricebeforePrice
Video & social

Channels, posts and transcripts

YouTube search, video, channel and transcript. TikTok profile, posts and keyword search. Instagram.

viewslikesfollowersCounthashtags
Jobs

Openings and employers

Indeed for the openings, Glassdoor for the employers behind them.

companylocationsalarybenefits
Universal

Anything with a URL

Any public URL through the Web Scraping API. Markdown for reading, or name the fields and get typed JSON. A site we don't parse out of the box is a custom scraper away.

markdowntextemailslinks

1,000 free credits is a finished job.

100 SERPs
the parsed page of Google, position to snippet
100 × 10 credits, the free tier exactly
~4,000 rows
Maps businesses with phones
200 pages × 5 credits · 20 per page
1,000 pages
read as clean markdown
1 credit each with jsRendering false, datacenter proxy
Free
$0 /mo
One-time free trial
1,000 credits to start
1,000 credits, one time
1 concurrent request
Pay only for successful requests
One balance across MCP and REST
Start free
Startup
$49 /mo
$0.24 / 1k credits
200K credits / month
200K credits / month
15 concurrent requests
Pay only for successful requests
One balance across MCP and REST
Get started
Business
Recommended
$99 /mo
$0.10 / 1k credits
1M credits / month
1M credits / month
30 concurrent requests
Pay only for successful requests
One balance across MCP and REST
Get started
Growth
$249 /mo
$0.08 / 1k credits
3M credits / month
50 concurrent requests
Pay only for successful requests
One balance across MCP and REST
Get started
Monthly credit volume
Free 1M 5M 20M 60M 100M
Best fit
Business
credits / mo
1M
Concurrency
30
$ / 1k credits
$0.10
$99 /mo
Get Started
Enterprise
Custom price based on required volume

Past 100M credits a month, or terms the self-serve plans do not cover. We shape the contract around your workload.

Credits rollover
Unused credits carry into the next billing period.
Concurrency 2000+
Parallel request limits set to your peak load.
#1 request priority
Highest speed, always first in the queue.
Personal manager
A direct line to the founding team.
SSO
SAML single sign-on for the whole team.
SOC-2 compliance
Security review, DPA, and audit reports.
Talk to sales Quote within one business day

Frequently asked
questions.

The short answers. Everything longer lives in the docs and on Discord.

How do I scrape websites in Cursor?

Add the HasData MCP server to the global ~/.cursor/mcp.json or the workspace .cursor/mcp.json. Cursor's agent discovers 57 scraping tools (SERP, Maps, Amazon, any public URL) and calls them by name inside the chat. Proxies, rendering and parsing run on HasData's side.

The server from my repo says Disabled

That's how a workspace server arrives. .cursor/mcp.json is read, but nothing runs until you enable it once in Configure. After that it shows as hasdata (Workspace) with a green switch and stays on.

Where did the workspace server go?

It lives with the folder. Close the workspace and its entry leaves the list. Open it again and the server is back.

My Automation doesn't see the server

An Automation never reads ~/.cursor/mcp.json or the repo's .cursor/mcp.json. Add the endpoint once at cursor.com/agents and every cloud run picks it up.

Will Cursor ask before calling a tool?

In our runs it never asked. The agent calls, then the step unfolds into the exact request URL, the status, and the raw JSON. A stricter run mode can ask first. To keep a server out of one conversation, open / → MCP and flip it off.

Can I stop the agent picking expensive tools?

In one live run the agent chose the 10-credit full SERP where the 5-credit light one would have done. If you don't need a tool, switch it off. Configure lists every tool with its own switch, and a disabled tool never enters the schema.

The config from the Claude Code page doesn't work here

Cursor speaks a different dialect. There is no type field, and the variable is written ${env:HASDATA_API_KEY}, not ${HASDATA_API_KEY}.

What does a call cost?

From 1 credit for a plain page read to 15 depending on the tool, from one balance shared with the REST API. You start with 1,000 free, no card.

One JSON block away.

Web scraping in Cursor, minus the infrastructure. No headless browsers, no proxy pools, no parsers to maintain, just structured data back.

Get started → Documentation

One JSON block · 1,000 free credits · no card