Web scraping MCP server

One web scraping MCP server for 165 live data APIs

https://api.reefapi.com/mcp
live · Claude, ChatGPT, Cursor & any MCP client

ReefAPI's MCP server is one connection that gives an AI agent structured, live web data from 165 web APIs — Amazon, Instagram, Zillow, Reddit, Google Maps and more — through five discovery and call tools. The agent uses search_engines and the schema tools to find an engine and its exact inputs, then call_engine runs the request and returns a clean { ok, data, meta, error } JSON envelope. There is no per-site scraper to build and no proxy pool to manage: rotation, residential IPs and anti-bot handling live inside each engine on the server side. You connect once with your ReefAPI key; the same key and the same credit pool cover every engine, and failed or blocked calls cost nothing.

The interface

Five tools: discover, then call

The server exposes exactly five tools. Four are keyless discovery tools an agent uses to find the right engine and build a correct request; the fifth runs it. This discovery-first flow is why an agent can work across 165 APIs without any of them hard-coded into its prompt.

1search_engines(keywords)keyless

Find the right engine from a plain-language need ("amazon reviews", "rental listings", "tweets about X"). Returns matching engines and what each can do. Keyless — the agent explores before it commits a call.

2get_catalog()keyless

List every engine and category available on the account. Lets an agent enumerate the full surface instead of guessing brand names.

3get_engine_schema(engine)keyless

For one engine, list its actions with descriptions — e.g. amazon → offers, reviews, search, product. The agent picks the action that fits the task.

4get_action_schema(engine, action)keyless

The exact input contract for one action: required and optional params, types, enums and what the response returns. The agent builds a correct call from this, not from a guess.

5call_engine(engine, action, params)needs your key

Run the call. Returns the live result as a clean { ok, data, meta, error } envelope. This is the only tool that spends credits — it authenticates with the user's ReefAPI key. Failed or blocked calls cost 0.

Flow: search_enginesget_engine_schema get_action_schemacall_engine. The agent never has to know the engine roster in advance — it discovers what it needs at call time.

Connect once

Add the server to your client

The remote MCP endpoint is https://api.reefapi.com/mcp (streamable-HTTP). Point any MCP client at it and authorize with your ReefAPI key.

1Claude Desktop / Cursor

Drop the JSON below into claude_desktop_config.json (Claude) or ~/.cursor/mcp.json (Cursor), then restart the client.

2Claude Code

Run the claude mcp add command below — one line registers the remote server for the CLI.

3ChatGPT

Settings → Connectors → add a connector by URL. Paste the endpoint and authorize with your ReefAPI key.

Claude Desktop · Cursor
// claude_desktop_config.json  (Claude Desktop)
// ~/.cursor/mcp.json          (Cursor — same shape)
{
  "mcpServers": {
    "reefapi": {
      "url": "https://api.reefapi.com/mcp",
      "headers": { "Authorization": "Bearer ak_live_your_key" }
    }
  }
}
Claude Code (CLI)
# Claude Code (CLI) — add the remote server once
claude mcp add --transport http reefapi https://api.reefapi.com/mcp \
  --header "Authorization: Bearer ak_live_your_key"

Discovery tools work without a key; calls authenticate with your ReefAPI key. Get one free at reefapi.com/signup — 1,000 credits, no card.

In practice

What a prompt turns into

Each natural-language ask resolves to one call_engine tool call and comes back as a clean JSON envelope the agent can reason over directly.

1

Get the current buy-box and offers for Amazon ASIN B0C1234567.

Tool call
call_engine("amazon", "offers", {
  "asin": "B0C1234567", "domain": "com"
})
Response (shape)
{
  "ok": true,
  "data": {
    "asin": "B0C1234567",
    "buybox": { "price": 29.99, "currency": "USD", "seller": "Amazon.com" },
    "offers": [
      { "price": 27.40, "condition": "new", "seller": "TechDeals", "prime": true }
    ]
  },
  "meta": { "engine": "amazon", "credits": 1 },
  "error": null
}
2

Collect recent Reddit comments discussing the Anker 737 power bank.

Tool call
call_engine("reddit", "search_comments", {
  "query": "Anker 737 power bank", "sort": "new", "limit": 25
})
Response (shape)
{
  "ok": true,
  "data": {
    "query": "Anker 737 power bank",
    "comments": [
      { "id": "kd9f2a1", "author": "gadget_nomad", "subreddit": "batteries",
        "body": "The 737 holds a charge for weeks — worth it.",
        "score": 42, "created_utc": 1752600000 }
    ]
  },
  "meta": { "engine": "reddit", "credits": 1 },
  "error": null
}
3

Find Zillow listings in Austin, TX under $600k with 3+ beds.

Tool call
call_engine("zillow", "search", {
  "location": "Austin, TX", "max_price": 600000, "beds_min": 3
})
Response (shape)
{
  "ok": true,
  "data": {
    "location": "Austin, TX", "count": 128,
    "listings": [
      { "zpid": "70982315", "address": "1204 Maple St, Austin, TX 78702",
        "price": 549000, "beds": 3, "baths": 2, "sqft": 1680,
        "status": "for_sale" }
    ]
  },
  "meta": { "engine": "zillow", "credits": 1 },
  "error": null
}
Auth & credits

One key, one pool, no charge for misses

Discovery is free

search_engines, get_catalog and both schema tools are keyless and unmetered. The agent explores the whole surface at no cost before it spends a credit.

Failed calls cost 0

If a call errors, times out or is blocked upstream, it returns ok:false with credits:0 in meta. You only pay for calls that return usable data.

One key, one pool

Every engine draws from the same ReefAPI account and the same shared credit balance — over MCP or over REST, there is nothing extra to provision per site.

Blocked / failed call — never charged
{
  "ok": false,
  "data": null,
  "meta": { "engine": "amazon", "credits": 0 },
  "error": { "code": "UPSTREAM_BLOCKED", "message": "Target returned a challenge; try again." }
}

See the full credit table and free tier on pricing.

No MCP client?

The same engines over plain HTTP

MCP is a convenience layer over the REST gateway, not a separate product. Every engine is reachable at POST https://api.reefapi.com/<engine>/v1/<action> with an x-api-key header — same params, same credit pool, same envelope.

REST equivalent of the Amazon example
# Same engines, same envelope — over plain HTTP (no MCP client)
curl -X POST https://api.reefapi.com/amazon/v1/offers \
  -H "x-api-key: ak_live_your_key" \
  -H "content-type: application/json" \
  -d '{ "asin": "B0C1234567", "domain": "com" }'
FAQ

MCP server questions

What is an MCP server for web data?

MCP (Model Context Protocol) is the open standard AI clients use to reach outside tools. ReefAPI's MCP server exposes every one of its live web-data APIs as MCP tools, so an agent connected once can search, fetch and parse from real sites and get clean JSON back — without you writing per-site scrapers.

Which MCP clients can connect?

Any client that speaks remote streamable-HTTP MCP: Claude Desktop, Claude Code, ChatGPT (Connectors), Cursor, and other MCP-aware agents. Discovery tools are keyless; call_engine authenticates with your ReefAPI key.

Do I pay for discovery calls?

No. search_engines, get_catalog, get_engine_schema and get_action_schema are free — the agent can explore the whole surface at no cost. Only call_engine spends credits, and failed or blocked calls cost 0.

Do I still need proxies or a headless browser?

No. Proxy rotation, residential IPs, browser fingerprinting and anti-bot handling live inside each engine on the server side. The agent just calls a tool; the wall-clearing is done for you.

Can I use the same engines without MCP?

Yes. Every engine is also a REST endpoint: POST https://api.reefapi.com/<engine>/v1/<action> with your x-api-key. Same key, same credit pool, same { ok, data, meta, error } envelope.