{
  "data": {
    "category": {
      "area": "web-data",
      "capabilities": [
        "web.scrape",
        "web.extract",
        "web.crawl",
        "scraping.proxies",
        "scraping.js-render",
        "scraping.anti-bot",
        "scraping.actors"
      ],
      "description": "Hosted APIs that fetch a page for you, render JavaScript and get past anti-bot checks through rotating proxies, then hand back HTML, Markdown or structured JSON. Also page-to-Markdown readers, crawlers and scraper marketplaces. Compared on price per successful request, success rate on protected sites and what the terms let you do with the output.",
      "indexed": [
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/alterlab-mcp-server.json",
          "kind": "mcp",
          "name": "alterlab.io MCP server",
          "slug": "alterlab-mcp-server",
          "url": "https://www.anchorterminal.com/tools/alterlab-mcp-server"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/anakin-mcp.json",
          "kind": "mcp",
          "name": "Anakin",
          "slug": "anakin-mcp",
          "url": "https://www.anchorterminal.com/tools/anakin-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/apolloai-intelligence.json",
          "kind": "mcp",
          "name": "Apollo Intelligence",
          "slug": "apolloai-intelligence",
          "url": "https://www.anchorterminal.com/tools/apolloai-intelligence"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crawlconsole.json",
          "kind": "mcp",
          "name": "CrawlConsole",
          "slug": "crawlconsole",
          "url": "https://www.anchorterminal.com/tools/crawlconsole"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crawlie.json",
          "kind": "mcp",
          "name": "Crawlie",
          "slug": "crawlie",
          "url": "https://www.anchorterminal.com/tools/crawlie"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crawlio-browser.json",
          "kind": "mcp",
          "name": "crawlio-browser",
          "slug": "crawlio-browser",
          "url": "https://www.anchorterminal.com/tools/crawlio-browser"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/geekflare-mcp.json",
          "kind": "mcp",
          "name": "geekflare.com MCP server",
          "slug": "geekflare-mcp",
          "url": "https://www.anchorterminal.com/tools/geekflare-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/glasser.json",
          "kind": "mcp",
          "name": "Glasser",
          "slug": "glasser",
          "url": "https://www.anchorterminal.com/tools/glasser"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/glim.json",
          "kind": "mcp",
          "name": "glim.sh",
          "slug": "glim",
          "url": "https://www.anchorterminal.com/tools/glim"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gmapsextractor-google-maps-scraper.json",
          "kind": "mcp",
          "name": "Google Maps Scraper",
          "slug": "gmapsextractor-google-maps-scraper",
          "url": "https://www.anchorterminal.com/tools/gmapsextractor-google-maps-scraper"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/earnidle-mcp.json",
          "kind": "mcp",
          "name": "IDLE Protocol",
          "slug": "earnidle-mcp",
          "url": "https://www.anchorterminal.com/tools/earnidle-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/litescrape-mcp-server.json",
          "kind": "mcp",
          "name": "Litescrape",
          "slug": "litescrape-mcp-server",
          "url": "https://www.anchorterminal.com/tools/litescrape-mcp-server"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mcp-gera-jobs.json",
          "kind": "mcp",
          "name": "mcp-gera-jobs",
          "slug": "mcp-gera-jobs",
          "url": "https://www.anchorterminal.com/tools/mcp-gera-jobs"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openaeo-audit.json",
          "kind": "mcp",
          "name": "OpenAEO",
          "slug": "openaeo-audit",
          "url": "https://www.anchorterminal.com/tools/openaeo-audit"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/oxylabs-mcp.json",
          "kind": "mcp",
          "name": "oxylabs-mcp",
          "slug": "oxylabs-mcp",
          "url": "https://www.anchorterminal.com/tools/oxylabs-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rampify-mcp.json",
          "kind": "mcp",
          "name": "Rampify",
          "slug": "rampify-mcp",
          "url": "https://www.anchorterminal.com/tools/rampify-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/replynodes-mcp.json",
          "kind": "mcp",
          "name": "ReplyNodes",
          "slug": "replynodes-mcp",
          "url": "https://www.anchorterminal.com/tools/replynodes-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapeer-mcp-server.json",
          "kind": "mcp",
          "name": "Scrapeer",
          "slug": "scrapeer-mcp-server",
          "url": "https://www.anchorterminal.com/tools/scrapeer-mcp-server"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapeunblocker-mcp.json",
          "kind": "mcp",
          "name": "scrapeunblocker-mcp",
          "slug": "scrapeunblocker-mcp",
          "url": "https://www.anchorterminal.com/tools/scrapeunblocker-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/see-geo-seegeo.json",
          "kind": "mcp",
          "name": "seegeo",
          "slug": "see-geo-seegeo",
          "url": "https://www.anchorterminal.com/tools/see-geo-seegeo"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ilien-mcp.json",
          "kind": "mcp",
          "name": "Svipall",
          "slug": "ilien-mcp",
          "url": "https://www.anchorterminal.com/tools/ilien-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tooltrace-mcp-server.json",
          "kind": "mcp",
          "name": "tooltrace.io MCP server",
          "slug": "tooltrace-mcp-server",
          "url": "https://www.anchorterminal.com/tools/tooltrace-mcp-server"
        }
      ],
      "indexedCount": 22,
      "json": "https://www.anchorterminal.com/categories/web-scrapers.json",
      "name": "Web scraping \u0026 crawling",
      "slug": "web-scrapers",
      "test": "",
      "title": "Web scraping and crawling APIs for AI agents",
      "toolCount": 14,
      "tools": [
        "apify-mcp",
        "firecrawl-mcp",
        "zenrows",
        "spider-cloud",
        "scrapfly",
        "scrapegraphai",
        "olostep",
        "bright-data",
        "scrapingbee",
        "scrapeless",
        "jina-reader",
        "scrape-do",
        "scrapingdog",
        "scrapingant"
      ],
      "url": "https://www.anchorterminal.com/categories/web-scrapers"
    },
    "tools": [
      {
        "slug": "apify-mcp",
        "name": "Apify MCP Server",
        "vendor": "Apify",
        "vendorUrl": "https://apify.com",
        "kind": "mcp",
        "category": "web-scrapers",
        "summary": "Exposes thousands of Apify Store Actors (scrapers, crawlers, automations) as dynamically discovered MCP tools, hosted at mcp.apify.com or run locally; supports OAuth, API tokens and agentic payments (x402 prepaid tokens, Skyfire).",
        "url": "https://www.anchorterminal.com/tools/apify-mcp",
        "markdownUrl": "https://www.anchorterminal.com/tools/apify-mcp.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/apify-mcp.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/apify-mcp.json",
        "repo": "https://github.com/apify/apify-mcp-server",
        "license": "MIT",
        "transports": [
          "stdio",
          "streamable-http"
        ],
        "remoteUrl": "https://mcp.apify.com",
        "packages": [
          {
            "registry": "npm",
            "name": "@apify/actors-mcp-server"
          }
        ],
        "auth": "mixed",
        "authNotes": "OAuth on mcp.apify.com, or an Apify API token as `Authorization: Bearer`. Tokens can be scoped to account or per-resource permissions, given an expiry date and rotated with a 24-hour overlap. The Apify API also accepts the token as a `token` query parameter. Without a token, an agent can pay with AGI prepaid tokens (bought over x402 or MPP), direct x402 (`?payment=x402`, Pay Per Event Actors only) or Skyfire PAY tokens. `?tools=` selects categories or single tools.",
        "pricing": "freemium",
        "pricingNotes": "MCP server itself is free; Actor runs are billed on Apify plans: Free $0 with $5/month usage credit ($0.20 per compute unit), Starter $19/mo, Scale $199/mo ($0.16/CU), Business $999/mo ($0.13/CU), 10% off annual (https://apify.com/pricing).",
        "priceSummary": "$1 / call",
        "where": "both",
        "x402": {
          "level": "yes",
          "evidence": "AGI (agi.apify.com) sells a prepaid, spend-capped Apify token over x402 or MPP, minimum $1, usable as `Authorization: Bearer` against mcp.apify.com and api.apify.com for any Actor. Direct x402 on `mcp.apify.com?payment=x402` signs a $1.00 USDC prepayment on Base, covers Pay Per Event Actors only (not Standby), and refunds unused balance after 60 minutes of inactivity (https://github.com/apify/apify-mcp-server#-agentic-payments; https://apify.com/pricing, checked 2026-10-01).",
          "endpoints": [
            {
              "url": "https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1\u0026currency=usd",
              "priceUsd": 1,
              "network": "eip155:8453"
            },
            {
              "url": "https://mcp.apify.com?payment=x402",
              "priceUsd": 1,
              "network": "eip155:8453"
            }
          ]
        },
        "toolCount": 35,
        "popularity": {
          "githubStars": 8600,
          "npmWeekly": 15257,
          "pypiWeekly": null,
          "asOf": "2026-09-26"
        },
        "docsUrl": "https://github.com/apify/apify-mcp-server#readme",
        "registryName": "com.apify/apify-mcp-server",
        "capabilities": [
          "scraping.actors",
          "web.crawl"
        ],
        "tags": [
          "official",
          "hosted",
          "local",
          "open-source",
          "x402",
          "aggregator"
        ],
        "lastRelease": "2026-09-30",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 78.6,
          "grade": "A",
          "agentReady": true,
          "rank": 11,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 1,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 92,
            "maintenance": 95,
            "payments": 95,
            "reliability": 65,
            "schema": 92,
            "security": 62,
            "transparency": 88
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": -3,
          "negativeNotes": [
            "-3: v0.16.0 on 2026-09-17 renamed get-actor-log to get-actor-run-log with no deprecation period, and the old name is now ignored without an error. It was flagged as breaking in the changelog on release day, so the lowest deduction (https://github.com/apify/apify-mcp-server/blob/master/CHANGELOG.md)."
          ],
          "verdict": "x402 on Apify's own domains, a prepaid token from agi.apify.com for any Actor and per-run payment on mcp.apify.com for Pay Per Event Actors. API and Actor runs timed out for about 12 hours on 21 and 22 July 2026.",
          "strengths": [
            "x402 on Apify's own domains, a prepaid token from agi.apify.com for any Actor and per-run payment on mcp.apify.com for Pay Per Event Actors",
            "12 tools by default out of 35, `?tools=` to pick categories, and readOnly, destructive and idempotent hints on every tool",
            "Scoped API tokens with expiry and a 24-hour rotation overlap, plus OAuth on the hosted server",
            "18 releases between 21 July and 30 September 2026, with breaking changes flagged in the changelog",
            "Free plan with $5 of monthly usage and no card"
          ],
          "weaknesses": [
            "API and Actor runs timed out for about 12 hours on 21 and 22 July 2026",
            "No prompt-injection guidance for scraped content or third-party Actor READMEs",
            "Telemetry and Sentry on by default",
            "Direct x402 and Skyfire cover Pay Per Event Actors only, not Standby Actors",
            "No SLA published for any self-serve plan"
          ],
          "agentNotes": [
            "Call fetch-actor-details before call-actor to get the input schema and the price",
            "Use apify--web-fetch for one known URL and apify--rag-web-browser for search and read",
            "Read results with get-dataset-items and set `fields` and `limit`. The default is 20 rows",
            "Buy an AGI token for anything that isn't a Pay Per Event Actor. Direct `?payment=x402` refuses the rest",
            "Ask for `get-actor-run-log`, not `get-actor-log`. The old name is ignored without an error"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 8,
          "avgRating": 3.4,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "A",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 78.6
            }
          ],
          "editorialScores": {
            "ergonomics": 92,
            "maintenance": 95,
            "payments": 95,
            "reliability": 65,
            "schema": 92,
            "security": 62,
            "transparency": 75
          },
          "provenanceScore": 100
        },
        "connect": {
          "claudeCode": "claude mcp add --transport http apify https://mcp.apify.com --header \"Authorization: Bearer ${APIFY_TOKEN}\"",
          "config": {
            "mcpServers": {
              "apify": {
                "headers": {
                  "Authorization": "Bearer ${APIFY_TOKEN}"
                },
                "url": "https://mcp.apify.com"
              }
            }
          },
          "x402": "curl -s -i -X POST 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1\u0026currency=usd'\n# 402 -\u003e pay with PAYMENT-SIGNATURE (USDC, eip155:8453) -\u003e token in response\n# then: Authorization: Bearer \u003cprepaid token\u003e against https://mcp.apify.com"
        },
        "letme": {
          "capability": "https://letme.dev/scraping.actors",
          "tool": "https://letme.dev/apify-mcp"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Compute unit, pay as you go",
            "unit": "compute-unit",
            "usd": 0.2
          }
        ],
        "provenance": {
          "legalEntity": "Apify Technologies s.r.o.",
          "domain": "apify.com",
          "domainRegistered": "2009-06-02",
          "endpointOnVendorDomain": true,
          "terms": "https://docs.apify.com/legal/general-terms-and-conditions",
          "privacy": "https://docs.apify.com/legal/privacy-policy",
          "statusPage": "https://status.apify.com",
          "changelog": "https://github.com/apify/apify-mcp-server/releases",
          "securityTxt": "valid",
          "checked": "2026-10-01",
          "score": 100
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/apify-mcp.json",
        "live": {
          "slug": "apify-mcp",
          "probe": {
            "target": "https://mcp.apify.com",
            "method": "mcp-initialize",
            "lastAt": "2026-10-04T23:32:43.006092778Z",
            "lastOk": true,
            "lastStatus": 401,
            "lastMs": 248,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 99.9,
            "p50ms24h": 257,
            "p95ms24h": 315,
            "samples24h": 272,
            "samples30d": 2051,
            "days": [
              {
                "date": "2026-09-27",
                "probes": 132,
                "ok": 132
              },
              {
                "date": "2026-09-28",
                "probes": 285,
                "ok": 284
              },
              {
                "date": "2026-09-29",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-09-30",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 247
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.apify.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T23:27:39.855889541Z"
          },
          "versions": [
            {
              "registry": "github",
              "name": "apify/actors-mcp-server",
              "version": "v0.17.1",
              "released": "2026-09-30",
              "seenAt": "2026-10-01T13:17:39.020905395Z"
            },
            {
              "registry": "github",
              "name": "apify/apify-mcp-server",
              "version": "v0.17.1",
              "released": "2026-09-30",
              "seenAt": "2026-10-04T16:20:38.328591493Z"
            },
            {
              "registry": "mcp-registry",
              "name": "com.apify/apify-mcp-server",
              "version": "0.17.1",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "@apify/actors-mcp-server",
              "version": "0.17.1",
              "seenAt": "2026-10-04T16:20:37.506823059Z"
            }
          ],
          "githubStars": 9581,
          "npmWeekly": 29490,
          "securityTxt": {
            "url": "https://apify.com/.well-known/security.txt",
            "state": "valid",
            "expires": "2035-01-01T00:00:00.000Z",
            "checkedAt": "2026-10-04T15:16:02.090332654Z"
          },
          "domain": {
            "domain": "apify.com",
            "registered": "2009-06-02",
            "source": "https://rdap.verisign.com/com/v1/domain/apify.com",
            "checkedAt": "2026-10-04T13:08:53.704775538Z"
          },
          "pages": [
            {
              "url": "https://raw.githubusercontent.com/apify/apify-mcp-server/master/CHANGELOG.md",
              "kind": "deprecations",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:27.270582075Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "db81e3a831d2"
            },
            {
              "url": "https://apify.com/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:41:13.429473827Z",
              "changedAt": "2026-10-04T15:41:13.429473827Z",
              "fingerprint": "afc8fbe80222"
            },
            {
              "url": "https://docs.apify.com/legal/privacy-policy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:43:12.033940291Z",
              "changedAt": "2026-10-03T15:31:21.810791643Z",
              "fingerprint": "9c93506c6ab7"
            },
            {
              "url": "https://docs.apify.com/legal/general-terms-and-conditions",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:43:09.82487995Z",
              "changedAt": "2026-10-03T15:31:19.543950962Z",
              "fingerprint": "ba43983c7610"
            }
          ],
          "mcpTools": {
            "url": "https://mcp.apify.com",
            "checkedAt": "2026-10-04T22:19:23.93460184Z",
            "status": "auth",
            "note": "asks for credentials before listing its tools",
            "changedAt": "2026-09-28T21:55:37.935476956Z"
          },
          "updatedAt": "2026-10-04T23:32:43.006092778Z"
        }
      },
      {
        "slug": "firecrawl-mcp",
        "name": "Firecrawl MCP",
        "vendor": "Firecrawl (Mendable)",
        "vendorUrl": "https://www.firecrawl.dev",
        "kind": "mcp",
        "category": "web-scrapers",
        "summary": "Official Firecrawl server for scraping pages to markdown/JSON, mapping and crawling sites, web search, browser interaction, monitoring and an autonomous research agent.",
        "url": "https://www.anchorterminal.com/tools/firecrawl-mcp",
        "markdownUrl": "https://www.anchorterminal.com/tools/firecrawl-mcp.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/firecrawl-mcp.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/firecrawl-mcp.json",
        "repo": "https://github.com/firecrawl/firecrawl-mcp-server",
        "license": "MIT",
        "transports": [
          "stdio",
          "streamable-http",
          "sse"
        ],
        "remoteUrl": "https://mcp.firecrawl.dev/v2/mcp",
        "packages": [
          {
            "registry": "npm",
            "name": "firecrawl-mcp"
          }
        ],
        "auth": "mixed",
        "authNotes": "Hosted endpoints take OAuth (`https://mcp.firecrawl.dev/v2/mcp-oauth`) or `Authorization: Bearer \u003cFIRECRAWL_API_KEY\u003e` on `https://mcp.firecrawl.dev/v2/mcp`. The same URL with no credential is the keyless tier (scrape, search, parse, rate-limited per IP). The search-only endpoint `/v2/mcp-search` has its own OAuth identity. Locally, FIRECRAWL_API_KEY or FIRECRAWL_OAUTH_TOKEN, or FIRECRAWL_API_URL for self-hosted. The README says never to put a key in the server URL. Endpoint- and format-locked keys are Enterprise only.",
        "pricing": "freemium",
        "pricingNotes": "Free 1,000 credits a month, no card. Hobby $19 a month or $16 billed yearly (5,000 credits), Standard $99 or $83 (100,000), Growth $399 or $333 (500,000), Scale $749 or $599 (1 million). Scrape, crawl and map cost 1 credit a page, search 2 per 10 results, interact 2 per browser-minute, monitor 1 per page per check, and JSON, question or highlight formats add 4 a page. $5 top-ups on paid plans only. A scrape with no result isn't charged, but a page returning 403 or 404 costs 1 credit (https://www.firecrawl.dev/pricing).",
        "priceSummary": "$19 / mo",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402 support in README, docs or pricing (checked 2026-09-25).",
          "endpoints": []
        },
        "toolCount": 26,
        "popularity": {
          "githubStars": 7500,
          "npmWeekly": 28853,
          "pypiWeekly": null,
          "asOf": "2026-09-26"
        },
        "docsUrl": "https://github.com/firecrawl/firecrawl-mcp-server#readme",
        "llmsTxt": "https://docs.firecrawl.dev/llms.txt",
        "openapi": "https://docs.firecrawl.dev/api-reference/v2-openapi.json",
        "registryName": "io.github.firecrawl/firecrawl-mcp-server",
        "capabilities": [
          "web.search",
          "web.fetch",
          "web.crawl",
          "web.extract"
        ],
        "tags": [
          "official",
          "hosted",
          "local",
          "open-source",
          "freemium",
          "llms-txt"
        ],
        "lastRelease": "2026-10-01",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 75.5,
          "grade": "BB",
          "agentReady": true,
          "rank": 34,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 2,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 92,
            "maintenance": 87,
            "payments": 50,
            "reliability": 70,
            "schema": 88,
            "security": 67,
            "transparency": 76
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "high",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Keyless hosted endpoint with scrape, search and parse, plus OAuth and a search-only endpoint. No x402 or other machine payment.",
          "strengths": [
            "Keyless hosted endpoint with scrape, search and parse, plus OAuth and a search-only endpoint",
            "Four incidents since July 2026, the longest 56 minutes",
            "Rate limits published per plan and per endpoint",
            "Public v2 OpenAPI, llms.txt and readOnly or destructive hints on every tool",
            "firecrawl-mcp 3.27.2 on 1 October 2026, after more than 20 releases since July"
          ],
          "weaknesses": [
            "No x402 or other machine payment",
            "No prompt-injection guidance for scraped pages outside retained Alexandria results",
            "403 and 404 responses cost a credit",
            "Open issues report 132 undescribed parameters and a schema mismatch",
            "Privacy policy last revised December 2024, with no retention period for scraped content"
          ],
          "agentNotes": [
            "Use `firecrawl_map` to list URLs, then scrape the few you need instead of crawling a whole site",
            "On the keyless endpoint only scrape, search and parse work. A 429 carries a `signup_url` for the human",
            "Ask for markdown only. JSON, question and highlight formats add 4 credits a page",
            "Poll `firecrawl_check_crawl_status` rather than waiting on a long crawl inside one call",
            "Check the URL before scraping. Dead pages still cost a credit"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 8,
          "avgRating": 3.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "high",
              "grade": "BB",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 75.5
            }
          ],
          "editorialScores": {
            "ergonomics": 92,
            "maintenance": 87,
            "payments": 50,
            "reliability": 70,
            "schema": 88,
            "security": 67,
            "transparency": 60
          },
          "provenanceScore": 92
        },
        "connect": {
          "claudeCode": "claude mcp add --transport http firecrawl https://mcp.firecrawl.dev/v2/mcp",
          "config": {
            "mcpServers": {
              "firecrawl": {
                "args": [
                  "-y",
                  "firecrawl-mcp"
                ],
                "command": "npx",
                "env": {
                  "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}"
                }
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.search",
          "tool": "https://letme.dev/firecrawl-mcp"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Hobby plan",
            "unit": "month",
            "usd": 19,
            "note": "5,000 credits. $16 a month billed yearly"
          },
          {
            "item": "Standard plan",
            "unit": "month",
            "usd": 99,
            "note": "100,000 credits. $83 a month billed yearly"
          },
          {
            "item": "Extra credits on Hobby",
            "unit": "1k-pages",
            "usd": 5,
            "note": "one credit scrapes one page"
          }
        ],
        "provenance": {
          "legalEntity": "SideGuide Technologies, Inc. (d/b/a Firecrawl)",
          "domain": "firecrawl.dev",
          "domainRegistered": "2024-04-08",
          "endpointOnVendorDomain": true,
          "terms": "https://firecrawl.dev/terms-of-service",
          "privacy": "https://firecrawl.dev/privacy-policy",
          "statusPage": "https://status.firecrawl.dev",
          "changelog": "https://firecrawl.dev/changelog",
          "securityTxt": "valid",
          "checked": "2026-09-26",
          "score": 92
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/firecrawl-mcp.json",
        "live": {
          "slug": "firecrawl-mcp",
          "probe": {
            "target": "https://mcp.firecrawl.dev/v2/mcp",
            "method": "mcp-initialize",
            "lastAt": "2026-10-04T23:32:47.434892767Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 252,
            "lastNote": "initialize answered",
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 252,
            "p95ms24h": 290,
            "samples24h": 272,
            "samples30d": 2051,
            "days": [
              {
                "date": "2026-09-27",
                "probes": 132,
                "ok": 132
              },
              {
                "date": "2026-09-28",
                "probes": 285,
                "ok": 285
              },
              {
                "date": "2026-09-29",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-09-30",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.firecrawl.dev",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:01.76749658Z"
          },
          "versions": [
            {
              "registry": "github",
              "name": "firecrawl/firecrawl-mcp-server",
              "version": "v3.2.1",
              "released": "2025-09-26",
              "seenAt": "2026-10-04T16:27:08.694881485Z"
            },
            {
              "registry": "mcp-registry",
              "name": "io.github.firecrawl/firecrawl-mcp-server",
              "version": "3.27.3",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "firecrawl-mcp",
              "version": "3.27.3",
              "seenAt": "2026-10-04T16:27:07.836823407Z"
            }
          ],
          "githubStars": 7550,
          "npmWeekly": 189581,
          "securityTxt": {
            "url": "https://firecrawl.dev/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-06-10T00:00:00.000Z",
            "checkedAt": "2026-10-04T15:15:38.390602548Z"
          },
          "llmsTxt": {
            "url": "https://docs.firecrawl.dev/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:45.993583711Z"
          },
          "domain": {
            "domain": "firecrawl.dev",
            "registered": "2024-04-08",
            "source": "https://pubapi.registry.google/rdap/domain/firecrawl.dev",
            "checkedAt": "2026-10-04T13:08:05.084729774Z"
          },
          "pages": [
            {
              "url": "https://firecrawl.dev/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:43.44271991Z",
              "changedAt": "2026-10-04T15:44:43.44271991Z",
              "fingerprint": "f365a314c8cc"
            },
            {
              "url": "https://www.firecrawl.dev/pricing",
              "kind": "deprecations",
              "status": 200,
              "checkedAt": "2026-10-04T15:50:17.215694523Z",
              "changedAt": "2026-10-04T15:50:17.215694523Z",
              "fingerprint": "59c60c10f7e3"
            },
            {
              "url": "https://firecrawl.dev/privacy-policy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:47.075047354Z",
              "changedAt": "2026-10-04T15:44:47.075047354Z",
              "fingerprint": "c8532b5714ba"
            },
            {
              "url": "https://firecrawl.dev/terms-of-service",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:47.948137801Z",
              "changedAt": "2026-10-04T15:44:47.948137801Z",
              "fingerprint": "c54c86b53a0b"
            }
          ],
          "mcpTools": {
            "url": "https://mcp.firecrawl.dev/v2/mcp",
            "checkedAt": "2026-10-04T22:19:41.267062117Z",
            "status": "ok",
            "protocol": "2025-11-25",
            "tools": [
              {
                "name": "firecrawl_scrape",
                "title": "Firecrawl scrape",
                "description": "\nScrape one URL and return its content: markdown by default, or HTML, links, screenshots, branding data, a targeted answer, or JSON matching a supplied schema. Use it when the request identifies a page and needs its content or defined fields. Use `firecrawl_search` when additional web sources are needed; on an authenticated session, `firecrawl_map` lists a site's URLs and `firecrawl_crawl` collects a set of pages.\n\nFirecrawl may serve recently indexed content; set `maxAge: 0` for a live fetch or a smaller `maxAge` to bound staleness. A successful response does not by itself confirm the page is still current. Browser actions can change the live page when interactive actions are enabled. Authenticated responses can include a `metadata.scrapeId` for optional scrape feedback.\n\nOn an authenticated session with Alexandria access, `firecrawl_search` with `sources` unset and `firecrawl_find_tools` can discover providers for the same fields across several pages; a matching provider returns typed records in one call. Keyless sessions have no provider matches.\n\nAlexandria mode, on an authenticated session with Alexandria access: `alexandria` selects catalogued capability execution and is mutually exclusive with `url`.\n",
                "inputSchema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "additionalProperties": false,
                  "properties": {
                    "alexandria": {
                      "anyOf": [
                        {
                          "properties": {
                            "capability": {
                              "description": "Capability address as returned by search or discover, e.g. \"series/observations\".",
                              "minLength": 1,
                              "type": "string"
                            },
                            "options": {
                              "additionalProperties": {},
                              "description": "Capability options as declared by its contract.",
                              "propertyNames": {
                                "type": "string"
                              },
                              "type": "object"
                            },
                            "provider": {
                              "description": "Provider slug, e.g. \"fred\".",
                              "minLength": 1,
                              "type": "string"
                            },
                            "version": {
                              "description": "Optional published workflow version. Omit to use the latest version.",
                              "maxLength": 128,
                              "minLength": 1,
                              "type": "string"
                            }
                          },
                          "required": [
                            "provider",
                            "capability"
                          ],
                          "type": "object"
                        },
                        {
                          "items": {
                            "properties": {
                              "capability": {
                                "description": "Capability address as returned by search or discover, e.g. \"series/observations\".",
                                "minLength": 1,
                                "type": "string"
                              },
                              "options": {
                                "additionalProperties": {},
                                "description": "Capability options as declared by its contract.",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "type": "object"
                              },
                              "provider": {
                                "description": "Provider slug, e.g. \"fred\".",
                                "minLength": 1,
                                "type": "string"
                              },
                              "version": {
                                "description": "Optional published workflow version. Omit to use the latest version.",
                                "maxLength": 128,
                                "minLength": 1,
                                "type": "string"
                              }
                            },
                            "required": [
                              "provider",
                              "capability"
                            ],
                            "type": "object"
                          },
                          "maxItems": 10,
                          "minItems": 1,
                          "type": "array"
                        }
                      ],
                      "description": "Catalogued Alexandria capability invocation, mutually exclusive with url. One {provider, capability, options} object or an array of 1-10, with contracts available through firecrawl_search or firecrawl_find_tools. Each call may include version to pin a published workflow; omitting it uses latest. Only requestId and timeout are supported alongside alexandria. The selected contract marks required inputs and any requiresOneOf groups (at least one member per group); it may include example.request/example.response and response.key (which may differ from records). Where pagination is declared, its fields govern paging with the same filters; catalogue next is separate from provider pagination. Returns per-capability results in data.alexandria with data, records, or an error with a code; individual capabilities can fail even when the outer response succeeds. Requires an API key on a team with Alexandria enabled. Some providers require accepted terms; blocked requests return the applicable requirements."
                    },
                    "domainTools": {
                      "description": "URL mode only: include domain-matched Alexandria tools for the page in tools on the returned document. Ignored with alexandria.",
                      "type": "boolean"
                    },
                    "excludeTags": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "formats": {
                      "items": {
                        "enum": [
                          "markdown",
                          "html",
                          "rawHtml",
                          "screenshot",
                          "links",
                          "summary",
                          "changeTracking",
                          "branding",
                          "json",
                          "query",
                          "audio"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "includeTags": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "jsonOptions": {
                      "additionalProperties": false,
                      "properties": {
                        "prompt": {
                          "type": "string"
                        },
                        "schema": {
                          "additionalProperties": false,
                          "propertyNames": {
                            "type": "string"
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "location": {
                      "additionalProperties": false,
                      "properties": {
                        "country": {
                          "type": "string"
                        },
                        "languages": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "lockdown": {
                      "type": "boolean"
                    },
                    "maxAge": {
                      "type": "number"
                    },
                    "mobile": {
                      "type": "boolean"
                    },
                    "onlyMainContent": {
                      "type": "boolean"
                    },
                    "parsers": {
                      "items": {
                        "enum": [
                          "pdf"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "pdfOptions": {
                      "additionalProperties": false,
                      "properties": {
                        "maxPages": {
                          "maximum": 10000,
                          "minimum": 1,
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "profile": {
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "saveChanges": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "name"
                      ],
                      "type": "object"
                    },
                    "proxy": {
                      "enum": [
                        "basic",
                        "stealth",
                        "enhanced",
                        "auto"
                      ],
                      "type": "string"
                    },
                    "queryOptions": {
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "default": "freeform",
                          "enum": [
                            "directQuote",
                            "freeform"
                          ],
                          "type": "string"
                        },
                        "prompt": {
                          "maxLength": 10000,
                          "type": "string"
                        }
                      },
                      "required": [
                        "prompt"
                      ],
                      "type": "object"
                    },
                    "redactPII": {
                      "type": "boolean"
                    },
                    "removeBase64Images": {
                      "type": "boolean"
                    },
                    "requestId": {
                      "description": "Idempotency key bound to one Alexandria execution payload. Generated when omitted and returned with the result.",
                      "pattern": "^[A-Za-z0-9._:-]{1,128}$",
                      "type": "string"
                    },
                    "screenshotOptions": {
                      "additionalProperties": false,
                      "properties": {
                        "fullPage": {
                          "type": "boolean"
                        },
                        "quality": {
                          "type": "number"
                        },
                        "viewport": {
                          "additionalProperties": false,
                          "properties": {
                            "height": {
                              "type": "number"
                            },
                            "width": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "width",
                            "height"
                          ],
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "skipTlsVerification": {
                      "type": "boolean"
                    },
                    "storeInCache": {
                      "type": "boolean"
                    },
                    "timeout": {
                      "description": "Execution timeout in milliseconds.",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991,
                      "type": "integer"
                    },
                    "toolDetail": {
                      "description": "URL mode only: domain discovery detail, summary by default; compact returns provider/capability/description, full includes contracts. Ignored with alexandria.",
                      "enum": [
                        "compact",
                        "summary",
                        "full"
                      ],
                      "type": "string"
                    },
                    "url": {
                      "format": "uri",
                      "type": "string"
                    },
                    "waitFor": {
                      "type": "number"
                    },
                    "zeroDataRetention": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "outputSchema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "additionalProperties": false,
                  "description": "A scraped document, or the Alexandria execution envelope when `alexandria` was passed.",
                  "properties": {
                    "actions": {
                      "description": "Results of the browser actions that ran during the scrape."
                    },
                    "agent_hints": {
                      "description": "Optional response guidance from the Firecrawl API.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "answer": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Targeted answer to the question that was asked of the page."
                    },
                    "attributes": {
                      "description": "Values collected by the requested attribute selectors."
                    },
                    "audio": {
                      "description": "Audio extracted from the page."
                    },
                    "blocks": {
                      "description": "Typed PDF layout blocks, when `parsers[].blocks` is set."
                    },
                    "branding": {
                      "description": "Branding data extracted from the page."
                    },
                    "changeTracking": {
                      "description": "Change-tracking comparison against the previous scrape."
                    },
                    "creditsCost": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Credits this call consumed."
                    },
                    "data": {
                      "description": "Alexandria mode: per-capability results in `data.alexandria`, each with `data`, `records`, or an `error`."
                    },
                    "delivery": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "`retained` when the full result stayed server-side instead of being inlined."
                    },
                    "error": {
                      "description": "Error message or error object when the call did not succeed."
                    },
                    "estimatedTokens": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Estimated token cost of the full result."
                    },
                    "feedbackTool": {
                      "description": "Pointer to the feedback tool for reporting how this result served the task."
                    },
                    "highlights": {
                      "description": "Highlighted passages from the page."
                    },
                    "html": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Processed HTML of the page."
                    },
                    "idleTtlSeconds": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Seconds a retained workspace stays available while idle."
                    },
                    "images": {
                      "description": "Images found on the page."
                    },
                    "inlineTokenBudget": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Token budget above which a result is retained rather than inlined."
                    },
                    "json": {
                      "description": "Structured data matching the requested JSON schema or prompt."
                    },
                    "links": {
                      "description": "Links found on the page."
                    },
                    "markdown": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Page content as markdown."
                    },
                    "menu": {
                      "description": "Menu data extracted from the page."
                    },
                    "message": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Guidance that accompanies the result."
                    },
                    "metadata": {
                      "description": "Page metadata; authenticated responses can include `metadata.scrapeId` for scrape feedback."
                    },
                    "nextTool": {
                      "description": "A follow-up tool call (`{name, arguments}`) that continues or inspects this result."
                    },
                    "pages": {
                      "description": "Physical PDF pages, when `parsers[].pages` is set."
                    },
                    "product": {
                      "description": "Product data extracted from the page."
                    },
                    "rawHtml": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Unprocessed HTML of the page."
                    },
                    "receipt": {
                      "description": "Billing receipt for the execution."
                    },
                    "requestId": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Identifier of this Alexandria execution."
                    },
                    "responseBytes": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Size of the full result in bytes."
                    },
                    "scrape_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Identifier of the underlying scrape."
                    },
                    "screenshot": {
                      "description": "Screenshot of the page."
                    },
                    "success": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Whether the API call succeeded."
                    },
                    "summary": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Summary of the page content."
                    },
                    "tokenEstimateMethod": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "How `estimatedTokens` was derived."
                    },
                    "tools": {
                      "description": "Domain-matched Alexandria tools for the page, when `domainTools` is set."
                    },
                    "video": {
                      "description": "Video extracted from the page."
                    },
                    "warning": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Non-fatal warning about the result."
                    },
                    "workspaceId": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Workspace holding a retained result, for inspection through virtual Bash."
                    }
                  },
                  "type": "object"
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true,
                  "title": "Firecrawl scrape"
                }
              },
              {
                "name": "firecrawl_search",
                "title": "Firecrawl web search",
                "description": "\nSearch web, news, or image sources and return ranked results with query-relevant highlights. Each web result is a title, URL, and description; use `firecrawl_scrape` on a result URL when the excerpt is not enough.\n\nAuthenticated search also returns matching Alexandria data providers in data.tools (companies, people, jobs, finance and filings, public records and government spending, real estate, places and restaurants, retail and prices, package registries and developer data, news, research, and more). Prefer a provider over scraping pages when the task needs the same fields across several entities, exact figures or timestamps, provenance, or many records; use web results when they already answer the question. A search with sources: [\"web\"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false.\n\nOn an authenticated session, tool matches describe available capabilities; `firecrawl_find_tools` returns their contracts and `firecrawl_scrape` with an `alexandria` body executes a selected capability. Keyless sessions get no Alexandria matches in data.tools.\n\nFor a programming question, add `categories: [\"developer\"]`; its hits return in `data.web` with `category: \"developer\"`. `categories: [\"research\"]` restricts web results to research-affiliated websites; the `firecrawl_research_*` tools are a separate surface over paper abstracts and full text (PubMed, bioRxiv, medRxiv, arXiv). Query operators, domain filters, `categories`, `toolDetail` and `scrapeOptions` are described on their parameters. Returns source-type result groups and usage metadata. Authenticated responses can include an `id` for optional search feedback.\n",
                "inputSchema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "additionalProperties": false,
                  "properties": {
                    "categories": {
                      "description": "Limit results to specific source types. `research` restricts ordinary web results to research-affiliated websites and returns page snippets, which is separate from the `firecrawl_research_*` tools that search paper abstracts and full text across biomedical (PubMed, bioRxiv, medRxiv) and arXiv literature; `pdf` searches PDF results; `developer` searches an index built for coding agents over public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation. `developer` returns hits in `data.web` with `category: \"developer\"`; the other categories also filter `data.web`.",
                      "items": {
                        "enum": [
                          "research",
                          "pdf",
                          "developer"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "clientModel": {
                      "description": "Optional model identifier, if known.",
                      "maxLength": 128,
                      "minLength": 1,
                      "type": "string"
                    },
                    "domainTools": {
                      "description": "Include domain-matched tools for result URLs. Defaults to true when Alexandria is combined with web, news or images; semantic-only search leaves domain matching off.",
                      "type": "boolean"
                    },
                    "enterprise": {
                      "items": {
                        "enum": [
                          "default",
                          "anon",
                          "zdr"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "excludeDomains": {
                      "description": "Hostnames to leave out of results. Mutually exclusive with includeDomains.",
                      "items": {
                        "maxLength": 253,
                        "minLength": 1,
                        "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "filter": {
                      "type": "string"
                    },
                    "highlights": {
                      "description": "Return query-relevant page excerpts for web and news results when available (default). Highlights appear in web `description` and news `snippet`; otherwise, original snippets are returned. Set to false to keep the original search snippets.",
                      "type": "boolean"
                    },
                    "includeDomains": {
                      "description": "Hostnames to restrict results to. Mutually exclusive with excludeDomains.",
                      "items": {
                        "maxLength": 253,
                        "minLength": 1,
                        "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "limit": {
                      "maximum": 100,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "location": {
                      "type": "string"
                    },
                    "objective": {
                      "description": "Optional broader goal for this search, if known. Avoid sensitive information.",
                      "maxLength": 5000,
                      "minLength": 1,
                      "type": "string"
                    },
                    "query": {
                      "description": "Query for web and semantic tool discovery. Operators include quoted phrases, `-term`, `site:host`, `inurl:term`, `intitle:term`, and `related:host`; the set is non-exhaustive. Catalogue browsing is available through firecrawl_find_tools.",
                      "minLength": 1,
                      "type": "string"
                    },
                    "scrapeOptions": {
                      "additionalProperties": false,
                      "description": "Attach page content for web results in the same call. These fetches ignore maxAge, so use firecrawl_scrape when you need a live fetch. scrapeOptions fetches web pages, never Alexandria provider tools.",
                      "properties": {
                        "excludeTags": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "formats": {
                          "items": {
                            "enum": [
                              "markdown",
                              "html",
                              "rawHtml",
                              "screenshot",
                              "links",
                              "summary",
                              "changeTracking",
                              "branding",
                              "json",
                              "query",
                              "audio"
                            ],
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "includeTags": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "jsonOptions": {
                          "additionalProperties": false,
                          "properties": {
                            "prompt": {
                              "type": "string"
                            },
                            "schema": {
                              "additionalProperties": false,
                              "propertyNames": {
                                "type": "string"
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        },
                        "location": {
                          "additionalProperties": false,
                          "properties": {
                            "country": {
                              "type": "string"
                            },
                            "languages": {
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            }
                          },
                          "type": "object"
                        },
                        "lockdown": {
                          "type": "boolean"
                        },
                        "maxAge": {
                          "type": "number"
                        },
                        "mobile": {
                          "type": "boolean"
                        },
                        "onlyMainContent": {
                          "type": "boolean"
                        },
                        "parsers": {
                          "items": {
                            "enum": [
                              "pdf"
                            ],
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "pdfOptions": {
                          "additionalProperties": false,
                          "properties": {
                            "maxPages": {
                              "maximum": 10000,
                              "minimum": 1,
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        },
                        "profile": {
                          "additionalProperties": false,
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "saveChanges": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "type": "object"
                        },
                        "proxy": {
                          "enum": [
                            "basic",
                            "stealth",
                            "enhanced",
                            "auto"
                          ],
                          "type": "string"
                        },
                        "queryOptions": {
                          "additionalProperties": false,
                          "properties": {
                            "mode": {
                              "default": "freeform",
                              "enum": [
                                "directQuote",
                                "freeform"
                              ],
                              "type": "string"
                            },
                            "prompt": {
                              "maxLength": 10000,
                              "type": "string"
                            }
                          },
                          "required": [
                            "prompt"
                          ],
                          "type": "object"
                        },
                        "redactPII": {
                          "type": "boolean"
                        },
                        "removeBase64Images": {
                          "type": "boolean"
                        },
                        "screenshotOptions": {
                          "additionalProperties": false,
                          "properties": {
                            "fullPage": {
                              "type": "boolean"
                            },
                            "quality": {
                              "type": "number"
                            },
                            "viewport": {
                              "additionalProperties": false,
                              "properties": {
                                "height": {
                                  "type": "number"
                                },
                                "width": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "width",
                                "height"
                              ],
                              "type": "object"
                            }
                          },
                          "type": "object"
                        },
                        "skipTlsVerification": {
                          "type": "boolean"
                        },
                        "storeInCache": {
                          "type": "boolean"
                        },
                        "waitFor": {
                          "type": "number"
                        },
                        "zeroDataRetention": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "sources": {
                      "description": "Search sources; authenticated sessions default to web + alexandria, keyless sessions to web only. A search with sources: [\"web\"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false. Use [\"alexandria\"] alone for provider discovery without web results.",
                      "items": {
                        "anyOf": [
                          {
                            "enum": [
                              "web",
                              "images",
                              "news",
                              "alexandria",
                              "exchange"
                            ],
                            "type": "string"
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "type": {
                                "enum": [
                                  "web",
                                  "images",
                                  "news",
                                  "alexandria",
                                  "exchange"
                                ],
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          }
                        ]
                      },
                      "type": "array"
                    },
                    "tbs": {
                      "type": "string"
                    },
                    "toolDetail": {
                      "description": "Compact by default. Compact returns only provider, capability and description; full includes contracts. Inspect selected compact tools with firecrawl_find_tools providers and capabilities.",
                      "enum": [
                        "compact",
                        "summary",
                        "full"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "query"
                  ],
                  "type": "object"
                },
                "outputSchema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "additionalProperties": false,
                  "description": "Ranked search results grouped by source.",
                  "properties": {
                    "agent_hints": {
                      "description": "Optional response guidance from the Firecrawl API.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "creditsUsed": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Credits this search consumed."
                    },
                    "data": {
                      "description": "Ranked results grouped by source, such as `web`, `news`, `images`, and `alexandria`."
                    },
                    "error": {
                      "description": "Error message or error object when the call did not succeed."
                    },
                    "feedbackTool": {
                      "description": "Pointer to the feedback tool for this search."
                    },
                    "id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Search identifier, for optional `firecrawl_search_feedback`."
                    },
                    "nextTool": {
                      "description": "A follow-up tool call that continues this search."
                    },
                    "success": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Whether the API call succeeded."
                    },
                    "tools": {
                      "description": "Domain-matched Alexandria tools for the results."
                    },
                    "warning": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Non-fatal warning about the result."
                    }
                  },
                  "type": "object"
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true,
                  "title": "Firecrawl web search"
                }
              },
              {
                "name": "firecrawl_parse",
                "title": "Firecrawl file parsing",
                "description": "\nParse one supported document into markdown, HTML, links, summary, targeted answers, or JSON matching a schema. Supported inputs include common HTML, PDF, Word, RTF, OpenDocument, and spreadsheet files; PDF parsing can be bounded with `pdfOptions.maxPages`.\n\nLocal MCP reads `filePath` from the server filesystem. Hosted MCP uses two calls: first provide `filePath` to receive upload instructions, upload locally, then call again with the returned `uploadRef`; do not send both fields together. Remote web URLs belong in `firecrawl_scrape`.\n\nSet `redactPII` to request redaction of personally identifiable information in the returned content. `zeroDataRetention` requires an eligible authenticated account; omit it for anonymous keyless use. Returns upload instructions for hosted phase one or parsed document content for the final call. Authenticated final responses can include a `data.metadata.scrapeId` for optional parse feedback.\n",
                "inputSchema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "additionalProperties": false,
                  "properties": {
                    "contentType": {
                      "description": "Phase 1 MIME type override. If omitted, the server infers it from the file extension without reading the file.",
                      "type": "string"
                    },
                    "declaredSizeBytes": {
                      "description": "Optional phase 1 size declaration. Hosted MCP does not stat the file; provide this only if the caller already knows it.",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991,
                      "type": "integer"
                    },
                    "excludeTags": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "filePath": {
                      "description": "Phase 1 only: path to the local file on the caller/harness machine. Hosted MCP will not read or stat this path; it is used only to produce upload instructions.",
                      "minLength": 1,
                      "type": "string"
                    },
                    "formats": {
                      "items": {
                        "enum": [
                          "markdown",
                          "html",
                          "rawHtml",
                          "links",
                          "summary",
                          "json",
                          "query"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "includeTags": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "jsonOptions": {
                      "additionalProperties": false,
                      "properties": {
                        "prompt": {
                          "type": "string"
                        },
                        "schema": {
                          "additionalProperties": false,
                          "propertyNames": {
                            "type": "string"
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "maxAge": {
                      "description": "Ignored: parse never reuses or stores indexed content.",
                      "type": "number"
                    },
                    "onlyMainContent": {
                      "type": "boolean"
                    },
                    "parsers": {
                      "items": {
                        "enum": [
                          "pdf"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "pdfOptions": {
                      "additionalProperties": false,
                      "properties": {
                        "maxPages": {
                          "maximum": 10000,
                          "minimum": 1,
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    "proxy": {
                      "enum": [
                        "basic",
                        "auto"
                      ],
                      "type": "string"
                    },
                    "queryOptions": {
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "default": "freeform",
                          "enum": [
                            "directQuote",
                            "freeform"
                          ],
                          "type": "string"
                        },
                        "prompt": {
                          "maxLength": 10000,
                          "type": "string"
                        }
                      },
                      "required": [
                        "prompt"
                      ],
                      "type": "object"
                    },
                    "redactPII": {
                      "type": "boolean"
                    },
                    "removeBase64Images": {
                      "type": "boolean"
                    },
                    "skipTlsVerification": {
                      "type": "boolean"
                    },
                    "storeInCache": {
                      "type": "boolean"
                    },
                    "uploadRef": {
                      "description": "Phase 2 only: short-lived upload reference returned by phase 1 after the local PUT upload completes.",
                      "minLength": 1,
                      "type": "string"
                    },
                    "zeroDataRetention": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                },
                "outputSchema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "additionalProperties": false,
                  "description": "Parsed document content, or the upload instructions for the hosted two-call flow.",
                  "properties": {
                    "agent_hints": {
                      "description": "Optional response guidance from the Firecrawl API.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "data": {
                      "description": "Parsed document content; can include `data.metadata.scrapeId` for parse feedback."
                    },
                    "error": {
                      "description": "Error message or error object when the call did not succeed."
                    },
                    "message": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Guidance for the next call."
                    },
                    "mode": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Which phase of the hosted flow produced this response."
                    },
                    "nextToolCall": {
                      "description": "Hosted phase one: the second `firecrawl_parse` call to make once the upload succeeds, as `{name, arguments}`."
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Hosted phase one: constraints on completing the upload flow."
                    },
                    "raw": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Response body when it was not JSON."
                    },
                    "success": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Whether the API call succeeded."
                    },
                    "upload": {
                      "additionalProperties": false,
                      "description": "Hosted phase one: how to upload the local file.",
                      "properties": {
                        "command": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Local command that performs the upload. It carries no Firecrawl API key."
                        },
                        "expiresAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "When the upload URL expires."
                        },
                        "fields": {
                          "description": "Form fields the upload request must send, for a POST upload."
                        },
                        "headers": {
                          "description": "Headers the upload request must send."
                        },
                        "maxSizeBytes": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Largest file the upload URL accepts."
                        },
                        "method": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "HTTP method for the upload."
                        },
                        "uploadRef": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Reference to pass back on the second call."
                        },
                        "uploadUrl": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "URL to upload the local file to."
                        }
                      },
                      "type": "object"
                    },
                    "warning": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Non-fatal warning about the result."
                    }
                  },
                  "type": "object"
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": false,
                  "readOnlyHint": true,
                  "title": "Firecrawl file parsing"
                }
              }
            ],
            "schemaTokens": 6347,
            "changedAt": "2026-09-28T21:55:47.203996335Z",
            "check": {
              "checker": "anchor-check/1.0",
              "totalTokens": 6347,
              "counts": {
                "error": 0,
                "note": 0,
                "warn": 5
              },
              "findings": [
                {
                  "rule": "TC11",
                  "severity": "warn",
                  "tool": "firecrawl_parse",
                  "message": "none of its 19 parameters has a description",
                  "fix": "Describe each one: format, units, an example, and what happens when it's left out."
                },
                {
                  "rule": "TC11",
                  "severity": "warn",
                  "tool": "firecrawl_scrape",
                  "message": "none of its 27 parameters has a description",
                  "fix": "Describe each one: format, units, an example, and what happens when it's left out."
                },
                {
                  "rule": "TC11",
                  "severity": "warn",
                  "tool": "firecrawl_search",
                  "message": "none of its 16 parameters has a description",
                  "fix": "Describe each one: format, units, an example, and what happens when it's left out."
                },
                {
                  "rule": "TC22",
                  "severity": "warn",
                  "tool": "firecrawl_scrape",
                  "message": "the definition is about 2,695 tokens",
                  "fix": "Trim the description and parameter docs, or split the tool."
                },
                {
                  "rule": "TC22",
                  "severity": "warn",
                  "tool": "firecrawl_search",
                  "message": "the definition is about 2,231 tokens",
                  "fix": "Trim the description and parameter docs, or split the tool."
                }
              ]
            }
          },
          "updatedAt": "2026-10-04T23:32:47.434892767Z"
        }
      },
      {
        "slug": "zenrows",
        "name": "ZenRows",
        "vendor": "ZenRows",
        "vendorUrl": "https://www.zenrows.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Scraping API (Fetch, formerly Universal Scraper API) with JavaScript rendering, residential proxies and anti-bot bypass, plus Extract for structured JSON, Batch for bulk URL jobs and hosted Browser Sessions.",
        "url": "https://www.anchorterminal.com/tools/zenrows",
        "markdownUrl": "https://www.anchorterminal.com/tools/zenrows.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zenrows.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zenrows.json",
        "transports": [
          "http",
          "streamable-http",
          "stdio"
        ],
        "remoteUrl": "https://api.zenrows.com/v1/",
        "packages": [
          {
            "registry": "npm",
            "name": "@zenrows/mcp"
          },
          {
            "registry": "npm",
            "name": "zenrows"
          },
          {
            "registry": "pypi",
            "name": "zenrows"
          }
        ],
        "auth": "mixed",
        "authNotes": "The Fetch API takes the key as the apikey query parameter, so it ends up in the request URL. The hosted MCP at mcp.zenrows.com takes it as a Bearer header, or OAuth in clients that support it. The local stdio server reads ZENROWS_API_KEY, and with none set it provisions a Free account through POST https://app.zenrows.com/api/agent/signup, stores the key under ~/.zenrows/ and prints a claim URL, unless ZENROWS_AUTO_SIGNUP=false.",
        "pricing": "freemium",
        "pricingNotes": "Free 5,000 credits a month, no card, 5 concurrent requests. Build from $19 a month (45,000 credits), Launch from $69 (250,000), Growth from $199 (1.2 million), Scale from $549 (5 million), about 17 per cent less billed yearly. A standard request costs 1 credit, JavaScript rendering 5, premium proxies 10, both 25. Browser Sessions and residential proxies cost 25,000 credits a GB plus 5 credits a session-minute. Only successful requests are billed (https://www.zenrows.com/pricing).",
        "priceSummary": "$19 / mo",
        "where": "both",
        "x402": {
          "level": "partial",
          "evidence": "An agent storefront at agents.zenrows.com sells plans and prepaid credit ($5 minimum) settled over x402 (USDC on Base), MPP or card. It runs on ZeroClick's platform with its own buyer terms and proxies calls through a per-session storefront path. There's no per-call x402 price on api.zenrows.com (https://agents.zenrows.com/llms.txt, checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 44,
        "popularity": {
          "githubStars": 21,
          "npmWeekly": 34642,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.zenrows.com",
        "llmsTxt": "https://docs.zenrows.com/llms.txt",
        "registryName": "io.github.ZenRows/zenrows-mcp",
        "capabilities": [
          "web.scrape",
          "web.extract",
          "browser.hosted",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "no-card",
          "mcp",
          "llms-txt",
          "proxies",
          "x402",
          "python",
          "typescript"
        ],
        "lastRelease": "2026-09-18",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 75.1,
          "grade": "BB",
          "agentReady": true,
          "rank": 43,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 3,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 79,
            "maintenance": 87,
            "payments": 80,
            "reliability": 87,
            "schema": 83,
            "security": 41,
            "transparency": 75
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "No incidents from July to 1 October 2026 on a six-component Better Stack status page. The Fetch API only takes the key in the query string.",
          "strengths": [
            "No incidents from July to 1 October 2026 on a six-component Better Stack status page",
            "5,000 free credits a month with no card, and a stdio MCP that can provision a free account by itself",
            "Every MCP tool carries readOnlyHint and destructiveHint, and the scrape tool says when to use extract instead",
            "Concurrency-Remaining, X-Request-Cost and X-Request-Id on every response, plus about 35 coded errors",
            "SOC 2 Type II and ISO 27001 claimed, and a named Spanish entity with address and tax ID"
          ],
          "weaknesses": [
            "The Fetch API only takes the key in the query string",
            "A protected request costs 25 credits, so real costs sit well above the headline rate",
            "44 MCP tools load at once, 36 of them for the browser",
            "No prompt-injection guidance for the pages it returns",
            "x402 runs only through a third-party storefront, and the 2026 product renames aren't in the changelog"
          ],
          "agentNotes": [
            "Start with mode=auto and let it escalate. Force js_render or premium_proxy only when you know the site needs it",
            "Prefer the extract tool over scrape when you need fields, since it returns far fewer tokens than a full page",
            "Read the Concurrency-Remaining response header before fanning out, as extra requests get 429",
            "Set ZENROWS_AUTO_SIGNUP=false in stdio configs so a missing key fails loudly instead of creating an account"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 8,
          "avgRating": 3.8,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "BB",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 75.1
            }
          ],
          "editorialScores": {
            "ergonomics": 79,
            "maintenance": 87,
            "payments": 80,
            "reliability": 87,
            "schema": 83,
            "security": 41,
            "transparency": 53
          },
          "provenanceScore": 96
        },
        "connect": {
          "http": "curl \"https://api.zenrows.com/v1/?apikey=$ZENROWS_API_KEY\u0026url=https%3A%2F%2Fexample.com\u0026mode=auto\"",
          "claudeCode": "claude mcp add --transport http zenrows https://mcp.zenrows.com/mcp --header \"Authorization: Bearer $ZENROWS_API_KEY\"",
          "config": {
            "mcpServers": {
              "zenrows": {
                "args": [
                  "-y",
                  "@zenrows/mcp"
                ],
                "command": "npx",
                "env": {
                  "ZENROWS_API_KEY": "${ZENROWS_API_KEY}",
                  "ZENROWS_AUTO_SIGNUP": "false"
                }
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/zenrows"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Build plan (B1)",
            "unit": "month",
            "usd": 19,
            "note": "45,000 credits, 20 concurrent. $16 a month billed yearly"
          },
          {
            "item": "Launch plan (L1)",
            "unit": "month",
            "usd": 69,
            "note": "250,000 credits, 50 concurrent. $57 a month billed yearly"
          },
          {
            "item": "Growth plan (G1)",
            "unit": "month",
            "usd": 199,
            "note": "1.2 million credits, 100 concurrent"
          },
          {
            "item": "Standard request on Build B1",
            "unit": "1k-requests",
            "usd": 0.42,
            "note": "1 credit each, successful requests only"
          },
          {
            "item": "Protected request on Build B1",
            "unit": "1k-requests",
            "usd": 10.56,
            "note": "JavaScript rendering plus premium proxies, 25 credits each"
          }
        ],
        "provenance": {
          "legalEntity": "ZENROWS, S.L.",
          "domain": "zenrows.com",
          "domainRegistered": "2020-08-05",
          "endpointOnVendorDomain": true,
          "terms": "https://www.zenrows.com/legal/terms",
          "privacy": "https://www.zenrows.com/legal/privacy",
          "statusPage": "https://status.zenrows.com",
          "changelog": "https://eu.intercom.news/zenrows",
          "securityTxt": "valid",
          "checked": "2026-09-30",
          "notes": [
            "The privacy policy gives a registered address in Getxo, Bizkaia, Spain, and tax ID B10660298.",
            "www.zenrows.com/.well-known/security.txt redirects to app.zenrows.com, which serves a file expiring 2027-09-30.",
            "The website returns 403 to plain curl without a browser user agent."
          ],
          "score": 96
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/zenrows.json",
        "live": {
          "slug": "zenrows",
          "probe": {
            "target": "https://api.zenrows.com/v1/",
            "method": "get",
            "lastAt": "2026-10-04T23:32:57.018164805Z",
            "lastOk": true,
            "lastStatus": 400,
            "lastMs": 323,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 338,
            "p95ms24h": 448,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.zenrows.com",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:34.911231863Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "io.github.ZenRows/zenrows-mcp",
              "version": "2.3.0",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "@zenrows/mcp",
              "version": "2.3.0",
              "seenAt": "2026-10-04T16:44:40.634736137Z"
            },
            {
              "registry": "npm",
              "name": "zenrows",
              "version": "2.1.1",
              "seenAt": "2026-10-04T16:44:42.716834945Z"
            },
            {
              "registry": "pypi",
              "name": "zenrows",
              "version": "1.5.0",
              "released": "2026-10-02",
              "seenAt": "2026-10-04T16:44:43.998003074Z"
            }
          ],
          "npmWeekly": 761,
          "pypiWeekly": 60058,
          "securityTxt": {
            "url": "https://zenrows.com/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-10-04T15:15:46Z",
            "checkedAt": "2026-10-04T15:15:44.042240896Z"
          },
          "llmsTxt": {
            "url": "https://docs.zenrows.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:22.937150225Z"
          },
          "domain": {
            "domain": "zenrows.com",
            "registered": "2020-08-05",
            "source": "https://rdap.verisign.com/com/v1/domain/zenrows.com",
            "checkedAt": "2026-10-04T13:07:18.743649237Z"
          },
          "pages": [
            {
              "url": "https://eu.intercom.news/zenrows",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:32.69027191Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "a9b3543b3e4d"
            },
            {
              "url": "https://www.zenrows.com/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:53:06.778063584Z",
              "changedAt": "2026-10-02T15:29:10.089021025Z",
              "fingerprint": "0fb954a4d211"
            },
            {
              "url": "https://www.zenrows.com/legal/privacy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:53:02.712547034Z",
              "changedAt": "2026-10-02T15:29:05.984477973Z",
              "fingerprint": "272c1b392a45"
            },
            {
              "url": "https://www.zenrows.com/legal/terms",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:53:04.794065963Z",
              "changedAt": "2026-10-02T15:29:08.041201424Z",
              "fingerprint": "ef550df61e26"
            }
          ],
          "updatedAt": "2026-10-04T23:32:57.018164805Z"
        }
      },
      {
        "slug": "spider-cloud",
        "name": "Spider",
        "vendor": "Spider (BAGELMEN LLC)",
        "vendorUrl": "https://spider.cloud",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Hosted crawl, scrape, search, links and screenshot API built on the open-source Rust spider crate, plus a cloud browser and proxy pool.",
        "url": "https://www.anchorterminal.com/tools/spider-cloud",
        "markdownUrl": "https://www.anchorterminal.com/tools/spider-cloud.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/spider-cloud.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/spider-cloud.json",
        "repo": "https://github.com/spider-rs/spider",
        "license": "MIT",
        "transports": [
          "http",
          "streamable-http",
          "stdio"
        ],
        "remoteUrl": "https://api.spider.cloud",
        "packages": [
          {
            "registry": "npm",
            "name": "@spider-cloud/spider-client"
          },
          {
            "registry": "pypi",
            "name": "spider_client"
          },
          {
            "registry": "npm",
            "name": "spider-cloud-mcp"
          }
        ],
        "auth": "mixed",
        "authNotes": "Bearer key in the Authorization header. POST /scrape also works with no key at 4 requests a minute. Every core route accepts x402 in place of a key. The hosted MCP server takes a Bearer key or runs OAuth on first connect and mints a scoped key.",
        "pricing": "usage",
        "pricingNotes": "Pay as you go at $1 per 10,000 credits, metered as $1 per GB of fetched content plus $0.0001 per CPU minute. No subscription and the balance doesn't expire. Top-ups of $500 or more get a 5 per cent bonus, $2,000 or more 12 per cent. Unlimited plans bill by concurrency from $40 a month for 2 to $350 for 25. Zero data retention bills at 2.5 times credits. AI Studio routes need a plan from $6 a month (https://spider.cloud/pricing).",
        "priceSummary": "$0.0005 / call",
        "where": "both",
        "x402": {
          "level": "yes",
          "evidence": "x402 v2 on all core routes, exact scheme, USDC on Base (eip155:8453), priced 1 to 1 with credits. Estimates are /scrape $0.0005, /crawl $0.005, /search $0.002, /links $0.0002 (https://spider.cloud/docs/integrations/x402). Our unpaid POST to /crawl on 2026-09-30 returned 402 with a PAYMENT-REQUIRED header and an x402Version 2 body.",
          "endpoints": [
            {
              "url": "https://api.spider.cloud/scrape",
              "priceUsd": 0.0005,
              "network": "eip155:8453"
            },
            {
              "url": "https://api.spider.cloud/crawl",
              "priceUsd": 0.005,
              "network": "eip155:8453"
            },
            {
              "url": "https://api.spider.cloud/search",
              "priceUsd": 0.002,
              "network": "eip155:8453"
            },
            {
              "url": "https://api.spider.cloud/links",
              "priceUsd": 0.0002,
              "network": "eip155:8453"
            }
          ]
        },
        "toolCount": 22,
        "popularity": {
          "githubStars": 2748,
          "npmWeekly": 2745,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://spider.cloud/docs/overview",
        "llmsTxt": "https://spider.cloud/llms.txt",
        "openapi": "https://spider.cloud/openapi.yaml",
        "registryName": "cloud.spider/mcp",
        "capabilities": [
          "web.scrape",
          "web.extract",
          "web.crawl",
          "web.search",
          "web.fetch",
          "browser.hosted",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot"
        ],
        "tags": [
          "hosted",
          "mcp",
          "llms-txt",
          "proxies",
          "open-source",
          "python",
          "typescript",
          "openapi",
          "x402",
          "no-key"
        ],
        "lastRelease": "2026-07-19",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 74.3,
          "grade": "BB",
          "agentReady": true,
          "rank": 49,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 4,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 70,
            "maintenance": 85,
            "payments": 96,
            "reliability": 80,
            "schema": 87,
            "security": 42,
            "transparency": 69
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Keyless /scrape and working x402 v2 on every core route, so an agent needs no account. Operated by BAGELMEN LLC with no address, retention periods or DPA in the privacy policy.",
          "strengths": [
            "Keyless /scrape and working x402 v2 on every core route, so an agent needs no account",
            "Metered by bytes and CPU, so small pages cost a fraction of a cent",
            "Published rate limits with RateLimit and Retry-After headers",
            "OpenAPI spec, llms.txt and clients in Python, JavaScript, Rust and Go",
            "The Rust crawler, clients and MCP are MIT and can be self-hosted"
          ],
          "weaknesses": [
            "Operated by BAGELMEN LLC with no address, retention periods or DPA in the privacy policy",
            "No security.txt, disclosure policy, certification or prompt-injection guidance found",
            "Invalid parameter values fall back silently instead of returning 400",
            "Errored attempts are billed for the bytes and compute they used, despite the pricing page's failed requests cost $0",
            "The /unblocker route was deprecated on 1 October 2026 with no entry in the product changelog"
          ],
          "agentNotes": [
            "Every content route returns a JSON array, even /scrape. The status field is the page's, not the API call's",
            "Leave request on smart and set return_format to markdown for LLM input",
            "Set limit on /crawl. Unset, it caps only at your credit balance",
            "Use /scrape with `stealth: true` instead of /unblocker, which is deprecated",
            "Honour Retry-After on 429. Keyless use allows 4 requests a minute"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 8,
          "avgRating": 3.3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "BB",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 74.3
            }
          ],
          "editorialScores": {
            "ergonomics": 70,
            "maintenance": 85,
            "payments": 96,
            "reliability": 80,
            "schema": 87,
            "security": 42,
            "transparency": 55
          },
          "provenanceScore": 82
        },
        "connect": {
          "http": "curl -X POST https://api.spider.cloud/scrape -H \"Authorization: Bearer $SPIDER_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"url\":\"https://example.com\",\"return_format\":\"markdown\"}'",
          "claudeCode": "claude mcp add spider --transport http https://mcp.spider.cloud/mcp -H \"Authorization: Bearer $SPIDER_API_KEY\"",
          "config": {
            "mcpServers": {
              "spider": {
                "headers": {
                  "Authorization": "Bearer ${SPIDER_API_KEY}"
                },
                "url": "https://mcp.spider.cloud/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/spider-cloud"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Credits",
            "unit": "credit",
            "usd": 0.0001,
            "note": "$1 per 10,000"
          },
          {
            "item": "Bandwidth",
            "unit": "gb",
            "usd": 1,
            "note": "pre-transformation content"
          },
          {
            "item": "Compute",
            "unit": "vcpu-hour",
            "usd": 0.006,
            "note": "billed at $0.0001 per CPU minute"
          },
          {
            "item": "Scrape via x402",
            "unit": "1k-requests",
            "usd": 0.5,
            "note": "published estimate of 5 credits a scrape. Small pages cost far less"
          },
          {
            "item": "Unlimited, 25 concurrent",
            "unit": "month",
            "usd": 350
          },
          {
            "item": "Unlimited, 2 concurrent",
            "unit": "month",
            "usd": 40
          }
        ],
        "provenance": {
          "legalEntity": "BAGELMEN LLC",
          "domain": "spider.cloud",
          "domainRegistered": "2024-04-22",
          "domainNote": "spider.cloud dates from 2024, but the spider crate it runs on has been on GitHub since January 2018.",
          "endpointOnVendorDomain": true,
          "terms": "https://spider.cloud/eula",
          "privacy": "https://spider.cloud/privacy",
          "statusPage": "https://spidercloud.statuspage.io",
          "changelog": "https://spider.cloud/changelog",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "The EULA and privacy policy both name BAGELMEN LLC as operator"
          ],
          "score": 82
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/spider-cloud.json",
        "live": {
          "slug": "spider-cloud",
          "probe": {
            "target": "https://api.spider.cloud",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.847679106Z",
            "lastOk": true,
            "lastStatus": 402,
            "lastMs": 273,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 282,
            "p95ms24h": 334,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://spidercloud.statuspage.io",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T23:28:02.738734195Z"
          },
          "versions": [
            {
              "registry": "github",
              "name": "spider-rs/spider",
              "version": "v2.52.2",
              "released": "2026-03-31",
              "seenAt": "2026-10-04T16:40:36.301855322Z"
            },
            {
              "registry": "mcp-registry",
              "name": "cloud.spider/mcp",
              "version": "1.0.0",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "@spider-cloud/spider-client",
              "version": "0.2.5",
              "seenAt": "2026-10-04T16:40:34.036285392Z"
            },
            {
              "registry": "npm",
              "name": "spider-cloud-mcp",
              "version": "1.2.2",
              "seenAt": "2026-10-04T16:40:35.044954859Z"
            },
            {
              "registry": "pypi",
              "name": "spider_client",
              "version": "0.1.93",
              "released": "2026-07-18",
              "seenAt": "2026-10-04T16:40:34.847438784Z"
            }
          ],
          "githubStars": 2752,
          "npmWeekly": 3058,
          "pypiWeekly": 99968,
          "securityTxt": {
            "url": "https://spider.cloud/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:53.250173193Z"
          },
          "llmsTxt": {
            "url": "https://spider.cloud/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:15.952457392Z"
          },
          "domain": {
            "domain": "spider.cloud",
            "registered": "2024-04-22",
            "source": "https://rdap.registry.cloud/rdap/domain/spider.cloud",
            "checkedAt": "2026-10-04T13:04:14.08708822Z"
          },
          "pages": [
            {
              "url": "https://spider.cloud/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:48:04.096977123Z",
              "changedAt": "2026-10-04T15:48:04.096977123Z",
              "fingerprint": "84320c0b67c8"
            },
            {
              "url": "https://spider.cloud/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:48:08.328472781Z",
              "changedAt": "2026-10-04T15:48:08.328472781Z",
              "fingerprint": "dc06877ea03f"
            },
            {
              "url": "https://spider.cloud/privacy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:48:10.316086206Z",
              "changedAt": "2026-10-04T15:48:10.316086206Z",
              "fingerprint": "155be6f240c3"
            },
            {
              "url": "https://spider.cloud/eula",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:48:06.37190912Z",
              "changedAt": "2026-10-04T15:48:06.37190912Z",
              "fingerprint": "6115a0a3bb2e"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.847679106Z"
        }
      },
      {
        "slug": "scrapfly",
        "name": "Scrapfly",
        "vendor": "Scrapfly (Joam Intelligence, LLC)",
        "vendorUrl": "https://scrapfly.io",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Scrape API with datacenter or residential proxies, JS rendering and an anti-bot Unblocker, plus screenshot, LLM extraction, crawler and hosted Cloud Browser APIs on one credit balance.",
        "url": "https://www.anchorterminal.com/tools/scrapfly",
        "markdownUrl": "https://www.anchorterminal.com/tools/scrapfly.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrapfly.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapfly.json",
        "repo": "https://github.com/scrapfly/scrapfly-mcp",
        "transports": [
          "http",
          "streamable-http",
          "stdio"
        ],
        "remoteUrl": "https://api.scrapfly.io/scrape",
        "packages": [
          {
            "registry": "pypi",
            "name": "scrapfly-sdk"
          },
          {
            "registry": "npm",
            "name": "scrapfly-sdk"
          },
          {
            "registry": "npm",
            "name": "scrapfly-mcp"
          }
        ],
        "auth": "mixed",
        "authNotes": "API key in the `key` query parameter (their canonical form) or the `X-Scrapfly-Api-Key` header. Keys are per project, `scp-live-` for live and `scp-test-` for sandbox. The hosted MCP accepts OAuth 2.0, a Bearer key or `?key=` in the URL.",
        "pricing": "freemium",
        "pricingNotes": "1,000 free credits on signup, no card. Discovery $30 a month (200,000 credits), Pro $100 (1 million), Startup $250 (2.5 million), Enterprise $500 (5.5 million), custom from $1,200. Annual billing gives 2 months free. A datacenter request costs 1 credit, residential 25, browser rendering adds 5, and the Unblocker can add target-specific fees that aren't published. Extra credits run $5 per 10,000 on Discovery down to $1.20 on Enterprise, and Discovery and Free stop at quota (https://scrapfly.io/pricing).",
        "priceSummary": "$30 / mo",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402 in llms.txt, the docs index or pricing.md (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 61,
        "popularity": {
          "githubStars": 14,
          "npmWeekly": 21337,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://scrapfly.io/docs",
        "llmsTxt": "https://scrapfly.io/docs/llms.txt",
        "registryName": "io.scrapfly.mcp/mcp",
        "capabilities": [
          "web.scrape",
          "web.fetch",
          "web.extract",
          "web.crawl",
          "browser.hosted",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "free-tier",
          "mcp",
          "llms-txt",
          "proxies",
          "python",
          "typescript",
          "openapi",
          "closed-source"
        ],
        "lastRelease": "2026-09-08",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 69.8,
          "grade": "B",
          "agentReady": false,
          "rank": 107,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 5,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 80,
            "maintenance": 84,
            "payments": 40,
            "reliability": 50,
            "schema": 95,
            "security": 70,
            "transparency": 77
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "The error catalogue documents HTTP status, retry behaviour and billing for over 100 codes. The MCP server loads 61 tools at once.",
          "strengths": [
            "Error catalogue of 100+ ERR:: codes, each with HTTP status, retryable and billed flags and a doc link",
            "Hosted MCP with OAuth open to all plans, and API keys restrictable to products since 15 April 2026",
            "MCP tools carry readOnlyHint, destructiveHint and idempotentHint, and mutating vault and alert tools need confirm=true",
            "SOC 2 Type II and ISO 27001 claims, a public SOC 3 report and a published DPA",
            "1,000 free credits with no card, and official SDKs in Python, TypeScript, Go and Rust"
          ],
          "weaknesses": [
            "The open-source MCP server registers 61 tools at once, a heavy tools/list",
            "The canonical API auth form and one MCP option put the key in the URL query string",
            "Status page shows an overall state only, with no components or incident history, and status.scrapfly.io doesn't resolve",
            "Residential requests cost 25 credits and per-target Unblocker surcharges aren't published",
            "No SLA, and the terms disclaim uptime"
          ],
          "agentNotes": [
            "Send `X-Scrapfly-Api-Key` as a header rather than `key=` so the key stays out of logs",
            "Pass `unblocker=false` to the MCP web_scrape tool for plain pages, since it's on when omitted. `asp` is the deprecated alias",
            "Set `cost_budget` on each scrape so an Unblocker upgrade can't blow through credits",
            "Check `retryable` in the error body before retrying, and stop on `ERR::THROTTLE::MAX_API_CREDIT_BUDGET_EXCEEDED`",
            "Use web_get_page for a simple fetch and save cloud_browser_open for pages that need clicks"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 4,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 69.8
            }
          ],
          "editorialScores": {
            "ergonomics": 80,
            "maintenance": 84,
            "payments": 40,
            "reliability": 50,
            "schema": 95,
            "security": 70,
            "transparency": 58
          },
          "provenanceScore": 96
        },
        "connect": {
          "http": "curl -G \"https://api.scrapfly.io/scrape\" -H \"X-Scrapfly-Api-Key: $SCRAPFLY_API_KEY\" \\\n  --data-urlencode \"url=https://example.com\" -d \"format=markdown\"",
          "claudeCode": "claude mcp add --transport http scrapfly https://mcp.scrapfly.io/mcp",
          "config": {
            "mcpServers": {
              "scrapfly": {
                "args": [
                  "mcp-remote",
                  "https://mcp.scrapfly.io/mcp"
                ],
                "command": "npx"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/scrapfly"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Discovery plan",
            "unit": "month",
            "usd": 30,
            "note": "200,000 credits, hard cap at quota"
          },
          {
            "item": "Pro plan",
            "unit": "month",
            "usd": 100,
            "note": "1,000,000 credits, extra at $3.50 per 10,000"
          },
          {
            "item": "Startup plan",
            "unit": "month",
            "usd": 250,
            "note": "2,500,000 credits, extra at $2 per 10,000"
          },
          {
            "item": "Enterprise plan",
            "unit": "month",
            "usd": 500,
            "note": "5,500,000 credits, extra at $1.20 per 10,000"
          },
          {
            "item": "Datacenter request on Discovery",
            "unit": "1k-requests",
            "usd": 0.15,
            "note": "1 credit a request, no rendering"
          },
          {
            "item": "Residential request on Discovery",
            "unit": "1k-requests",
            "usd": 3.75,
            "note": "25 credits a request"
          },
          {
            "item": "Extra credit on Discovery",
            "unit": "credit",
            "usd": 0.0005,
            "note": "$5 per 10,000"
          }
        ],
        "provenance": {
          "legalEntity": "Joam Intelligence, LLC",
          "domain": "scrapfly.io",
          "domainRegistered": "2018-09-12",
          "endpointOnVendorDomain": true,
          "terms": "https://scrapfly.io/terms-of-service",
          "privacy": "https://scrapfly.io/privacy-policy",
          "statusPage": "https://scrapfly.io/status",
          "changelog": "https://scrapfly.io/docs/release-notes",
          "securityTxt": "valid",
          "checked": "2026-10-01",
          "notes": [
            "scrapfly.io/status shows an overall state with no components or history. status.scrapfly.io, linked from llms.txt, still didn't resolve in DNS on 2026-10-01.",
            "The terms were updated on 2026-09-30 and now name only Joam Intelligence, LLC, governed by US law, with no postal address.",
            "security.txt expires 2027-03-29, per the 30 September check."
          ],
          "score": 96
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/scrapfly.json",
        "live": {
          "slug": "scrapfly",
          "probe": {
            "target": "https://api.scrapfly.io/scrape",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.1386137Z",
            "lastOk": true,
            "lastStatus": 401,
            "lastMs": 421,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 441,
            "p95ms24h": 481,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://scrapfly.io/status",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:28.432759406Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "io.scrapfly.mcp/mcp",
              "version": "1.0.0",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "scrapfly-mcp",
              "version": "1.3.4",
              "seenAt": "2026-10-04T16:39:16.388360785Z"
            },
            {
              "registry": "npm",
              "name": "scrapfly-sdk",
              "version": "0.12.0",
              "seenAt": "2026-10-04T16:39:15.601373792Z"
            },
            {
              "registry": "pypi",
              "name": "scrapfly-sdk",
              "version": "0.12.0",
              "released": "2026-09-08",
              "seenAt": "2026-10-04T16:39:15.414338042Z"
            }
          ],
          "githubStars": 14,
          "npmWeekly": 20536,
          "pypiWeekly": 57312,
          "securityTxt": {
            "url": "https://scrapfly.io/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-04-02T15:15:40Z",
            "checkedAt": "2026-10-04T15:15:39.755631026Z"
          },
          "llmsTxt": {
            "url": "https://scrapfly.io/docs/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:13.57015644Z"
          },
          "domain": {
            "domain": "scrapfly.io",
            "checkedAt": "2026-10-04T13:08:19.054714067Z"
          },
          "pages": [
            {
              "url": "https://scrapfly.io/docs/release-notes",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:32.723703203Z",
              "changedAt": "2026-10-03T15:35:32.310065403Z",
              "fingerprint": "d4ec33117264"
            },
            {
              "url": "https://scrapfly.io/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:35.49209853Z",
              "changedAt": "2026-10-03T15:35:35.046049372Z",
              "fingerprint": "f25420398c41"
            },
            {
              "url": "https://scrapfly.io/privacy-policy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:36.870285473Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "39d17934c8b2"
            },
            {
              "url": "https://scrapfly.io/terms-of-service",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:39.557905673Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "e6284dfb7667"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.1386137Z"
        }
      },
      {
        "slug": "scrapegraphai",
        "name": "ScrapeGraphAI",
        "vendor": "ScrapeGraphAI",
        "vendorUrl": "https://scrapegraphai.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "LLM-oriented scraping API with page-to-markdown scrape, prompt-based JSON extraction, search, async crawl and change monitors.",
        "url": "https://www.anchorterminal.com/tools/scrapegraphai",
        "markdownUrl": "https://www.anchorterminal.com/tools/scrapegraphai.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrapegraphai.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapegraphai.json",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://v2-api.scrapegraphai.com",
        "packages": [
          {
            "registry": "pypi",
            "name": "scrapegraph-py"
          },
          {
            "registry": "npm",
            "name": "scrapegraph-js"
          },
          {
            "registry": "npm",
            "name": "just-scrape"
          }
        ],
        "auth": "mixed",
        "authNotes": "API key in the SGAI-APIKEY header. The hosted MCP takes OAuth 2.1 (Google sign-in, PKCE, dynamic client registration) or the key as a Bearer, SGAI-APIKEY or X-API-Key header. An agent without an account can pay over x402 or MPP to mint a key, which is returned once.",
        "pricing": "freemium",
        "pricingNotes": "Free plan 500 credits once (the docs say 500 a month), 10 requests a minute. Starter $20 a month (10,000 credits), Growth $100 (100,000), Pro $500 (750,000), or $204, $1,020 and $5,100 billed yearly. Top-up packs $5 for 1,000 credits, $40 for 10,000 and $150 for 50,000, which don't expire. Markdown scrape 1 credit, screenshot 2, extract 5, search 2 a result (5 with a prompt), crawl 2 plus the per-page cost, stealth adds 5. Failed requests aren't charged (https://scrapegraphai.com/pricing).",
        "priceSummary": "$20 / mo",
        "where": "hosted",
        "x402": {
          "level": "partial",
          "evidence": "POST /api/agent/x402/access/{pack} on v2-api.scrapegraphai.com returns an x402 challenge that mints an account, an API key and credits (5, 40 or 150 USDC on Base). MPP through InFlow covers packs and subscriptions. Per-call x402 runs only through Orthogonal's gateway at https://x402.orth.sh/scrapegraph/\u003cpath\u003e on scrape, extract, search, crawl and monitor, with no ScrapeGraphAI key, prices from `orth api scrapegraph` (https://v2-api.scrapegraphai.com/api/agent/protocols; https://docs.scrapegraphai.com/integrations/orthogonal.md, checked 2026-10-01).",
          "endpoints": [
            {
              "url": "https://v2-api.scrapegraphai.com/api/agent/x402/access/small",
              "priceUsd": 5,
              "network": "eip155:8453"
            },
            {
              "url": "https://v2-api.scrapegraphai.com/api/agent/x402/access/medium",
              "priceUsd": 40,
              "network": "eip155:8453"
            },
            {
              "url": "https://v2-api.scrapegraphai.com/api/agent/x402/access/large",
              "priceUsd": 150,
              "network": "eip155:8453"
            },
            {
              "url": "https://x402.orth.sh/scrapegraph/v1/scrape",
              "priceUsd": null,
              "network": "eip155:8453"
            }
          ]
        },
        "toolCount": 20,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 2411,
          "pypiWeekly": 46144,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.scrapegraphai.com",
        "llmsTxt": "https://docs.scrapegraphai.com/llms.txt",
        "openapi": "https://v2-api.scrapegraphai.com/api/openapi.json",
        "registryName": "io.github.ScrapeGraphAI/scrapegraph-mcp",
        "capabilities": [
          "web.scrape",
          "web.extract",
          "web.crawl",
          "web.search",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "mcp",
          "llms-txt",
          "openapi",
          "x402",
          "proxies",
          "closed-source",
          "python",
          "typescript"
        ],
        "lastRelease": "2026-07-31",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 68.3,
          "grade": "B",
          "agentReady": false,
          "rank": 128,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 6,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 72,
            "maintenance": 70,
            "payments": 90,
            "reliability": 64,
            "schema": 88,
            "security": 39,
            "transparency": 61
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "An agent can mint an account and key over x402 or MPP with no signup. Rate limits and plan prices differ between docs pages.",
          "strengths": [
            "An agent can mint an account and key over x402 or MPP with no signup",
            "Per-call x402 on all five product endpoints through Orthogonal's gateway",
            "OpenAPI 3.1 with enums and documented 401, 402 and 429 responses",
            "Request history readable through the API and MCP tools",
            "Dated, versioned changelog and Python SDK releases in July 2026"
          ],
          "weaknesses": [
            "Rate limits and plan prices differ between docs pages",
            "Privacy policy from March 2024 with no retention periods, DPA or LLM provider list",
            "One account key with no scopes, and delete tools beside read tools on the MCP server",
            "No prompt-injection guidance, though extract runs an LLM over scraped pages",
            "No security.txt or security page"
          ],
          "agentNotes": [
            "Use `scrape` with the markdown format (1 credit) before reaching for `extract` (5 credits)",
            "Read `GET https://v2-api.scrapegraphai.com/api/agent/protocols` for current packs and prices before paying over x402",
            "MCP tool calls stop at 60 seconds. Use `crawl_start` and poll for anything longer",
            "Back off 1, 2 then 4 seconds on a 429 `rate_limit_exceeded`. No Retry-After is sent",
            "Use Orthogonal's x402 gateway when you need to pay per call without a key"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 68.3
            }
          ],
          "editorialScores": {
            "ergonomics": 72,
            "maintenance": 70,
            "payments": 90,
            "reliability": 64,
            "schema": 88,
            "security": 39,
            "transparency": 40
          },
          "provenanceScore": 82
        },
        "connect": {
          "http": "curl -X POST https://v2-api.scrapegraphai.com/api/scrape -H \"SGAI-APIKEY: $SGAI_API_KEY\" \\\n  -H \"content-type: application/json\" -d '{\"url\":\"https://example.com\",\"formats\":[{\"type\":\"markdown\"}]}'",
          "claudeCode": "claude mcp add --transport http sgai https://mcp.scrapegraphai.com/mcp --header \"Authorization: Bearer $SGAI_API_KEY\"",
          "config": {
            "mcpServers": {
              "sgai": {
                "headers": {
                  "Authorization": "Bearer ${SGAI_API_KEY}"
                },
                "url": "https://mcp.scrapegraphai.com/mcp"
              }
            }
          },
          "x402": "curl -s -i -X POST https://v2-api.scrapegraphai.com/api/agent/x402/access/small\n# 402 -\u003e PAYMENT-REQUIRED (amount 5000000 = 5 USDC on eip155:8453) -\u003e retry with PAYMENT-SIGNATURE\n# response carries an API key with 1,000 credits, then send it as SGAI-APIKEY"
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/scrapegraphai"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Starter plan",
            "unit": "month",
            "usd": 20,
            "note": "10,000 credits. $17 a month billed yearly"
          },
          {
            "item": "Growth plan",
            "unit": "month",
            "usd": 100,
            "note": "100,000 credits. $85 a month billed yearly"
          },
          {
            "item": "Pro plan",
            "unit": "month",
            "usd": 500,
            "note": "750,000 credits. $425 a month billed yearly"
          },
          {
            "item": "Markdown scrape on Starter",
            "unit": "1k-requests",
            "usd": 2,
            "note": "1 credit each, stealth adds 5"
          },
          {
            "item": "Extract on Starter",
            "unit": "1k-requests",
            "usd": 10,
            "note": "5 credits each"
          },
          {
            "item": "Small credit pack",
            "unit": "credit",
            "usd": 0.005,
            "note": "$5 for 1,000 credits, also payable over x402"
          }
        ],
        "provenance": {
          "legalEntity": "ScrapeGraphAI, Inc.",
          "domain": "scrapegraphai.com",
          "domainRegistered": "2024-04-29",
          "endpointOnVendorDomain": true,
          "terms": "https://scrapegraphai.com/terms",
          "privacy": "https://scrapegraphai.com/privacy",
          "statusPage": "https://scrapegraphapi.openstatus.dev",
          "changelog": "https://scrapegraphai.com/changelog",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "The terms don't name a state of incorporation. Governing law is the jurisdiction where ScrapeGraphAI, Inc. is established",
            "The API and MCP server run on Render behind Cloudflare. MCP OAuth metadata points at sgai-mcp-main.onrender.com"
          ],
          "score": 82
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/scrapegraphai.json",
        "live": {
          "slug": "scrapegraphai",
          "probe": {
            "target": "https://v2-api.scrapegraphai.com",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.129423234Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 89,
            "authRequired": false,
            "uptime24h": 99.63,
            "uptime30d": 99.91,
            "p50ms24h": 93,
            "p95ms24h": 139,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 266
              }
            ]
          },
          "vendorStatus": {
            "page": "https://scrapegraphapi.openstatus.dev",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:28.277525949Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "io.github.ScrapeGraphAI/scrapegraph-mcp",
              "version": "1.0.1",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "just-scrape",
              "version": "1.1.0",
              "seenAt": "2026-10-04T16:39:07.672430029Z"
            },
            {
              "registry": "npm",
              "name": "scrapegraph-js",
              "version": "2.2.1",
              "seenAt": "2026-10-04T16:39:05.93594083Z"
            },
            {
              "registry": "pypi",
              "name": "scrapegraph-py",
              "version": "2.3.1",
              "released": "2026-07-31",
              "seenAt": "2026-10-04T16:39:05.752477896Z"
            }
          ],
          "npmWeekly": 2347,
          "pypiWeekly": 42094,
          "securityTxt": {
            "url": "https://scrapegraphai.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:59.406660763Z"
          },
          "llmsTxt": {
            "url": "https://docs.scrapegraphai.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:12.669895944Z"
          },
          "domain": {
            "domain": "scrapegraphai.com",
            "registered": "2024-04-29",
            "source": "https://rdap.verisign.com/com/v1/domain/scrapegraphai.com",
            "checkedAt": "2026-10-04T13:08:43.29199464Z"
          },
          "pages": [
            {
              "url": "https://scrapegraphai.com/changelog",
              "kind": "deprecations",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:29.979099486Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "3ab879585a3f"
            },
            {
              "url": "https://scrapegraphai.com/pricing",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:32.02450703Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "615843f80a16"
            },
            {
              "url": "https://scrapegraphai.com/privacy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:34.021372205Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "faec27bac829"
            },
            {
              "url": "https://scrapegraphai.com/terms",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:36.034844544Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "d09b7d6cb797"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.129423234Z"
        }
      },
      {
        "slug": "olostep",
        "name": "Olostep",
        "vendor": "Olostep Technologies, Inc.",
        "vendorUrl": "https://www.olostep.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Scrape, crawl, map, batch and search API that returns markdown, HTML, JSON or screenshots, with JS rendering and residential IPs on every request.",
        "url": "https://www.anchorterminal.com/tools/olostep",
        "markdownUrl": "https://www.anchorterminal.com/tools/olostep.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/olostep.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/olostep.json",
        "repo": "https://github.com/olostep/olostep-mcp-server",
        "license": "MIT",
        "transports": [
          "http",
          "streamable-http",
          "stdio"
        ],
        "remoteUrl": "https://api.olostep.com",
        "packages": [
          {
            "registry": "npm",
            "name": "olostep"
          },
          {
            "registry": "pypi",
            "name": "olostep"
          },
          {
            "registry": "npm",
            "name": "olostep-mcp"
          }
        ],
        "auth": "api-key",
        "authNotes": "Bearer key in the Authorization header for the API and the hosted MCP server. The stdio MCP server and the SDKs read OLOSTEP_API_KEY. The /x402/ endpoints take an X-Payment header instead of a key.",
        "pricing": "freemium",
        "pricingNotes": "Free trial of 500 requests with no card and low rate limits. Starter $9 a month for 5,000 requests (150 concurrent), Standard $99 for 200,000 (500 concurrent), Scale $399 for 1 million. Credit packs from $20 for 10,000, valid 6 months. A scrape is 1 credit, parsers 1 to 5, LLM extraction 10, search 5, answers 20, crawl 1 per page, map 1 plus 1 per extra 1,000 URLs (https://www.olostep.com/pricing).",
        "priceSummary": "$9 / mo",
        "where": "both",
        "x402": {
          "level": "partial",
          "evidence": "Documented x402 on POST /v1/scrapes and /v1/maps at $0.01, /v1/answers at $0.05 and /v1/crawls at a dynamic price, USDC on Base, under the /x402/ path prefix (https://docs.olostep.com/x402.md). Our unpaid POST to /x402/v1/scrapes on 2026-09-30 returned 402 with an empty {} body and no PAYMENT-REQUIRED header, so a stock x402 client has no price to sign.",
          "endpoints": [
            {
              "url": "https://api.olostep.com/x402/v1/scrapes",
              "priceUsd": 0.01,
              "network": "eip155:8453"
            },
            {
              "url": "https://api.olostep.com/x402/v1/maps",
              "priceUsd": 0.01,
              "network": "eip155:8453"
            },
            {
              "url": "https://api.olostep.com/x402/v1/answers",
              "priceUsd": 0.05,
              "network": "eip155:8453"
            },
            {
              "url": "https://api.olostep.com/x402/v1/crawls",
              "priceUsd": null,
              "network": "eip155:8453"
            }
          ]
        },
        "toolCount": 11,
        "popularity": {
          "githubStars": 24,
          "npmWeekly": 8874,
          "pypiWeekly": 1976,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.olostep.com",
        "llmsTxt": "https://docs.olostep.com/llms.txt",
        "openapi": "https://docs.olostep.com/openapi/scrapes.json",
        "registryName": "io.github.olostep/olostep-mcp-server",
        "capabilities": [
          "web.scrape",
          "web.extract",
          "web.crawl",
          "web.search",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot",
          "scraping.serp"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "mcp",
          "llms-txt",
          "proxies",
          "python",
          "typescript",
          "openapi",
          "x402",
          "free-tier"
        ],
        "lastRelease": "2026-07-15",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 63.1,
          "grade": "B",
          "agentReady": false,
          "rank": 210,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 7,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 87,
            "maintenance": 58,
            "payments": 65,
            "reliability": 60,
            "schema": 84,
            "security": 28,
            "transparency": 60
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "OpenAPI 3.0.3 for every endpoint and a structured error body. The x402 challenge came back with no payment requirements in our probe.",
          "strengths": [
            "OpenAPI 3.0.3 for every endpoint and a structured error body",
            "500 free successful requests with no card, $9 a month after that",
            "x402 documented on scrapes, maps, answers and crawls at $0.01 to $0.05",
            "Batches of up to 100,000 URLs with cursor pagination",
            "All 11 MCP tools carry readOnly, destructive and idempotent hints"
          ],
          "weaknesses": [
            "The x402 challenge came back with no payment requirements in our probe",
            "One dashboard key with no documented scopes, rotation or revocation",
            "No 429 or per-minute rate limits documented",
            "No security page, security.txt or prompt-injection guidance",
            "Changelog last updated 18 June 2026"
          ],
          "agentNotes": [
            "For more than a handful of URLs use /v1/batches, then page results with the cursor",
            "Pass `storage.expires_in` if you need results after about 7 days",
            "Don't ask for json output without a `parser` or an `llm_extract` schema",
            "Hosted MCP wants `Authorization: Bearer`, stdio wants OLOSTEP_API_KEY. Mixing them up shows 0 tools",
            "Check the 402 body before paying over x402. Our probe got an empty one"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 63.1
            }
          ],
          "editorialScores": {
            "ergonomics": 87,
            "maintenance": 58,
            "payments": 65,
            "reliability": 60,
            "schema": 84,
            "security": 28,
            "transparency": 38
          },
          "provenanceScore": 82
        },
        "connect": {
          "http": "curl -X POST https://api.olostep.com/v1/scrapes -H \"Authorization: Bearer $OLOSTEP_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"url_to_scrape\":\"https://example.com\",\"formats\":[\"markdown\"]}'",
          "claudeCode": "claude mcp add --transport http olostep https://mcp.olostep.com/mcp --header \"Authorization: Bearer $OLOSTEP_API_KEY\"",
          "config": {
            "mcpServers": {
              "olostep": {
                "args": [
                  "-y",
                  "olostep-mcp"
                ],
                "command": "npx",
                "env": {
                  "OLOSTEP_API_KEY": "${OLOSTEP_API_KEY}"
                }
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/olostep"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Starter plan",
            "unit": "month",
            "usd": 9,
            "note": "5,000 requests"
          },
          {
            "item": "Standard plan",
            "unit": "month",
            "usd": 99,
            "note": "200,000 requests"
          },
          {
            "item": "Scale plan",
            "unit": "month",
            "usd": 399,
            "note": "1 million requests"
          },
          {
            "item": "Scrape on Starter",
            "unit": "1k-requests",
            "usd": 1.8,
            "note": "1 credit per basic scrape"
          },
          {
            "item": "Scrape on Standard",
            "unit": "1k-requests",
            "usd": 0.495
          },
          {
            "item": "x402 scrape",
            "unit": "call",
            "usd": 0.01,
            "note": "USDC on Base"
          }
        ],
        "provenance": {
          "legalEntity": "Olostep Technologies Inc.",
          "domain": "olostep.com",
          "domainRegistered": "2023-06-04",
          "endpointOnVendorDomain": true,
          "terms": "https://www.olostep.com/terms",
          "privacy": "https://www.olostep.com/privacy-policy",
          "statusPage": "https://status.olostep.com",
          "changelog": "https://www.olostep.com/changelog",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "Terms are governed by Delaware law",
            "Status page is hosted on Better Stack"
          ],
          "score": 82
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/olostep.json",
        "live": {
          "slug": "olostep",
          "probe": {
            "target": "https://api.olostep.com",
            "method": "get",
            "lastAt": "2026-10-04T23:32:51.437678121Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 328,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 339,
            "p95ms24h": 400,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.olostep.com",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:17.332165528Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "io.github.olostep/olostep-mcp-server",
              "version": "1.0.17",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "olostep",
              "version": "1.2.2",
              "seenAt": "2026-10-04T16:34:58.614176741Z"
            },
            {
              "registry": "npm",
              "name": "olostep-mcp",
              "version": "1.0.17",
              "seenAt": "2026-10-04T16:34:59.676179372Z"
            },
            {
              "registry": "pypi",
              "name": "olostep",
              "version": "1.2.2",
              "released": "2026-06-22",
              "seenAt": "2026-10-04T16:34:59.493215991Z"
            }
          ],
          "githubStars": 24,
          "npmWeekly": 10580,
          "pypiWeekly": 1527,
          "securityTxt": {
            "url": "https://olostep.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:38.639334332Z"
          },
          "llmsTxt": {
            "url": "https://docs.olostep.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:03.986940018Z"
          },
          "domain": {
            "domain": "olostep.com",
            "registered": "2023-06-04",
            "source": "https://rdap.verisign.com/com/v1/domain/olostep.com",
            "checkedAt": "2026-10-04T13:04:37.918133685Z"
          },
          "pages": [
            {
              "url": "https://www.olostep.com/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:51:31.729724391Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "eda250fd86e1"
            },
            {
              "url": "https://www.olostep.com/pricing",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:51:34.190651562Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "a6e567ada628"
            },
            {
              "url": "https://www.olostep.com/privacy-policy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:51:35.862695877Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "38d110d687e4"
            },
            {
              "url": "https://www.olostep.com/terms",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:51:37.898452374Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "b14e410361b8"
            }
          ],
          "updatedAt": "2026-10-04T23:32:51.437678121Z"
        }
      },
      {
        "slug": "bright-data",
        "name": "Bright Data",
        "vendor": "Bright Data",
        "vendorUrl": "https://brightdata.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Web Unlocker, SERP API, a hosted Browser API and residential proxies, with an official MCP server wrapping them.",
        "url": "https://www.anchorterminal.com/tools/bright-data",
        "markdownUrl": "https://www.anchorterminal.com/tools/bright-data.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bright-data.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bright-data.json",
        "repo": "https://github.com/brightdata/brightdata-mcp",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://api.brightdata.com/request",
        "packages": [
          {
            "registry": "npm",
            "name": "@brightdata/mcp"
          }
        ],
        "auth": "mixed",
        "authNotes": "Bearer key for the API. Keys take a role (Admin, Finance, Ops, Limit or User) and an optional expiry. Proxy-style access uses Basic auth on port 44445. The hosted MCP takes the key as `?token=` in the URL by default, or OAuth 2.1 (PKCE S256, scope `mcp`) with an `Authorization: Bearer` header. MCP agent keys are listed separately in account settings and can be revoked.",
        "pricing": "freemium",
        "pricingNotes": "5,000 free requests a month including MCP, no card. Web Unlocker and SERP $1.50 per 1,000 successful requests, $1.30 on Scale ($499 a month). Browser API $8 a GB (https://brightdata.com/pricing).",
        "priceSummary": "$1.50 / 1k req",
        "where": "hosted",
        "x402": {
          "level": "no",
          "endpoints": []
        },
        "toolCount": 69,
        "popularity": {
          "githubStars": 2600,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-09-26"
        },
        "docsUrl": "https://docs.brightdata.com",
        "llmsTxt": "https://docs.brightdata.com/llms.txt",
        "registryName": "io.github.brightdata/brightdata-mcp",
        "capabilities": [
          "web.scrape",
          "web.search",
          "browser.hosted",
          "web.crawl"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "mcp",
          "llms-txt",
          "proxies"
        ],
        "lastRelease": "2026-09-15",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 60.1,
          "grade": "C",
          "agentReady": false,
          "rank": 254,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 8,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 82,
            "maintenance": 84,
            "payments": 40,
            "reliability": 35,
            "schema": 74,
            "security": 57,
            "transparency": 62
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Pay only for successful requests, $1.50 per 1,000 on Web Unlocker and SERP. No public status page or incident history.",
          "strengths": [
            "Pay only for successful requests, $1.50 per 1,000 on Web Unlocker and SERP",
            "5,000 free requests a month with no card",
            "Five tools by default out of 69, with groups for e-commerce, social, browser and more",
            "Role-based API keys with expiry, and OAuth 2.1 with PKCE on the hosted MCP",
            "ISO 27001, SOC 2 Type II and a private bug bounty"
          ],
          "weaknesses": [
            "No public status page or incident history",
            "The default hosted MCP URL carries the key as `?token=`",
            "No prompt-injection guidance for scraped content",
            "No retention periods, DPA or subprocessor list in the privacy policy",
            "MCP registry entry lags npm by two minor versions"
          ],
          "agentNotes": [
            "Connect with OAuth or keep the `?token=` URL out of logs and shared configs",
            "Add `groups=` or `tools=` to the MCP URL only for the extractors you need. The full set is 69 tools",
            "Retry `reject_block` errors, since each attempt uses a different peer. Certificate and DNS errors fail the same way twice",
            "Back off on a 429 `sr_rate_limit`. Bright Data throttles a target whose success rate drops",
            "Use the batch tools for up to 10 searches or scrapes in one call"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 4,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "C",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 60.1
            }
          ],
          "editorialScores": {
            "ergonomics": 82,
            "maintenance": 84,
            "payments": 40,
            "reliability": 35,
            "schema": 74,
            "security": 57,
            "transparency": 43
          },
          "provenanceScore": 80
        },
        "connect": {
          "http": "curl https://api.brightdata.com/request -H \"Authorization: Bearer $BRIGHTDATA_TOKEN\" \\\n  -H \"content-type: application/json\" -d '{\"zone\":\"web_unlocker1\",\"url\":\"https://example.com\",\"format\":\"raw\"}'",
          "claudeCode": "claude mcp add --transport http brightdata \"https://mcp.brightdata.com/mcp?token=$BRIGHTDATA_TOKEN\""
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/bright-data"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Web Unlocker",
            "unit": "1k-requests",
            "usd": 1.5,
            "note": "successful requests only"
          },
          {
            "item": "Web Unlocker on Scale",
            "unit": "1k-requests",
            "usd": 1.3,
            "note": "$499 a month plan"
          },
          {
            "item": "SERP API",
            "unit": "1k-requests",
            "usd": 1.5
          },
          {
            "item": "Browser API",
            "unit": "gb",
            "usd": 8
          }
        ],
        "provenance": {
          "legalEntity": "Bright Data Ltd.",
          "domain": "brightdata.com",
          "domainRegistered": "2002-05-26",
          "domainNote": "brightdata.com was registered in 2002, long before the rename from Luminati.",
          "endpointOnVendorDomain": true,
          "terms": "https://brightdata.com/license",
          "privacy": "https://brightdata.com/privacy",
          "statusPage": "",
          "changelog": "https://docs.brightdata.com/release-notes",
          "securityTxt": "none",
          "checked": "2026-09-26",
          "score": 80
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/bright-data.json",
        "live": {
          "slug": "bright-data",
          "probe": {
            "target": "https://api.brightdata.com/request",
            "method": "get",
            "lastAt": "2026-10-04T23:32:44.719881226Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 250,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 99.95,
            "p50ms24h": 259,
            "p95ms24h": 340,
            "samples24h": 272,
            "samples30d": 2051,
            "days": [
              {
                "date": "2026-09-27",
                "probes": 132,
                "ok": 132
              },
              {
                "date": "2026-09-28",
                "probes": 285,
                "ok": 284
              },
              {
                "date": "2026-09-29",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-09-30",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "versions": [
            {
              "registry": "github",
              "name": "brightdata/brightdata-mcp",
              "version": "v2.11.3",
              "released": "2026-09-17",
              "seenAt": "2026-10-04T16:22:52.537939152Z"
            },
            {
              "registry": "mcp-registry",
              "name": "io.github.brightdata/brightdata-mcp",
              "version": "2.11.3",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "@brightdata/mcp",
              "version": "2.11.3",
              "seenAt": "2026-10-04T16:22:51.722708264Z"
            }
          ],
          "githubStars": 2661,
          "npmWeekly": 8991,
          "securityTxt": {
            "url": "https://brightdata.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:39.602326592Z"
          },
          "llmsTxt": {
            "url": "https://docs.brightdata.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:22.245226037Z"
          },
          "domain": {
            "domain": "brightdata.com",
            "registered": "2002-05-26",
            "source": "https://rdap.verisign.com/com/v1/domain/brightdata.com",
            "checkedAt": "2026-10-04T13:09:15.943445463Z"
          },
          "pages": [
            {
              "url": "https://docs.brightdata.com/release-notes",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:43:20.269297541Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "11e5a86f089a"
            },
            {
              "url": "https://brightdata.com/license",
              "kind": "deprecations",
              "status": 200,
              "checkedAt": "2026-10-04T15:41:36.984639492Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "78531847b1c1"
            },
            {
              "url": "https://brightdata.com/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:41:39.453718378Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "ab42850cc3aa"
            },
            {
              "url": "https://brightdata.com/privacy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:41:41.298663499Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "54b985a0a80a"
            }
          ],
          "updatedAt": "2026-10-04T23:32:44.719881226Z"
        }
      },
      {
        "slug": "scrapingbee",
        "name": "ScrapingBee",
        "vendor": "ScrapingBee (Oxylabs group)",
        "vendorUrl": "https://www.scrapingbee.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "HTML API that fetches a URL through rotating, premium or stealth proxies with headless rendering, JavaScript scenarios, screenshots and CSS or AI extraction.",
        "url": "https://www.anchorterminal.com/tools/scrapingbee",
        "markdownUrl": "https://www.anchorterminal.com/tools/scrapingbee.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrapingbee.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapingbee.json",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://app.scrapingbee.com/api/v1/",
        "packages": [
          {
            "registry": "pypi",
            "name": "scrapingbee"
          },
          {
            "registry": "npm",
            "name": "scrapingbee"
          },
          {
            "registry": "pypi",
            "name": "scrapingbee-cli"
          }
        ],
        "auth": "api-key",
        "authNotes": "The HTML API takes the key as a Bearer token in the Authorization header, and the Python (v2.2.0) and Node (v2.0.0) SDKs send it that way since 1 September 2026. The older api_key query parameter still works but is deprecated. remote-mcp.txt says the hosted MCP takes the key only as an api_key query parameter in its URL, while the official CLI's AGENTS.md (5 September 2026) says it takes a Bearer header.",
        "pricing": "paid",
        "pricingNotes": "Trial of 1,000 credits, no card. Hobby $19 a month (75,000 credits, 25 concurrent), Freelance $49 (250,000, 50), Startup $99 (1 million, 100), Business $249 (3 million, 200), Business+ $599 (8 million, 400), excluding VAT. JavaScript rendering is on by default, so a basic call costs 5 credits, 1 without rendering, 10 or 25 with premium proxies and 75 with stealth proxies. Google search costs 10 credits (https://www.scrapingbee.com/pricing/).",
        "priceSummary": "$19 / mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402 in the pricing page, llms.txt or the HTML API and MCP references (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 18,
        "popularity": {
          "githubStars": 132,
          "npmWeekly": 48527,
          "pypiWeekly": 71721,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://www.scrapingbee.com/documentation/",
        "llmsTxt": "https://www.scrapingbee.com/llms.txt",
        "capabilities": [
          "web.scrape",
          "web.extract",
          "web.search",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot",
          "scraping.serp"
        ],
        "tags": [
          "hosted",
          "no-card",
          "mcp",
          "llms-txt",
          "proxies",
          "python",
          "typescript",
          "closed-source"
        ],
        "lastRelease": "2026-09-11",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 59.3,
          "grade": "C",
          "agentReady": false,
          "rank": 268,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 9,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 68,
            "maintenance": 85,
            "payments": 40,
            "reliability": 70,
            "schema": 60,
            "security": 37,
            "transparency": 64
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Dedicated Google, Amazon, Walmart, YouTube, ChatGPT and Gemini endpoints next to the general HTML API. remote-mcp.txt says the hosted MCP only takes the key as ?api_key= in its URL.",
          "strengths": [
            "Dedicated Google, Amazon, Walmart, YouTube, ChatGPT and Gemini endpoints next to the general HTML API",
            "Auto mode with a max_cost cap bills only the tier that works, and 429s and failures aren't billed",
            "Per-endpoint llms files plus a reference-notes file that lists 9 known conflicts in its own docs",
            "Seven SDK and CLI releases between 8 July and 11 September 2026, with tests in CI",
            "The official CLI skills tell agents to treat scraped output as data and flag instruction-like content"
          ],
          "weaknesses": [
            "remote-mcp.txt says the hosted MCP only takes the key as ?api_key= in its URL",
            "JavaScript rendering on by default makes a plain call 5 credits instead of 1",
            "Only a one-off 1,000-credit trial, no monthly free tier",
            "No API changelog, security.txt, bug bounty or certification found",
            "HTML scraper degraded for about 24 hours from 28 July 2026, and dedicated APIs down for about 40 minutes on 24 July"
          ],
          "agentNotes": [
            "Send render_js=false for static pages and files. It cuts the cost from 5 credits to 1",
            "Use mode=auto with max_cost=25 to stop it escalating to 75-credit stealth requests",
            "Keep the MCP URL with ?api_key= out of logs and shared configs",
            "Back off exponentially on 429 from the MCP, since its concurrency is shared across customers",
            "Expect 404 and 410 from the target to be billed. Other failures aren't"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 4,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "C",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 59.3
            }
          ],
          "editorialScores": {
            "ergonomics": 68,
            "maintenance": 85,
            "payments": 40,
            "reliability": 70,
            "schema": 60,
            "security": 37,
            "transparency": 51
          },
          "provenanceScore": 76
        },
        "connect": {
          "http": "curl --get 'https://app.scrapingbee.com/api/v1/' \\\n  --header \"Authorization: Bearer $SCRAPINGBEE_API_KEY\" \\\n  --data-urlencode 'url=https://example.com' --data-urlencode 'render_js=false'",
          "claudeCode": "claude mcp add --transport http scrapingbee \"https://mcp.scrapingbee.com/mcp?api_key=$SCRAPINGBEE_API_KEY\"",
          "config": {
            "mcpServers": {
              "scrapingbee": {
                "args": [
                  "mcp-remote",
                  "https://mcp.scrapingbee.com/mcp?api_key=${SCRAPINGBEE_API_KEY}"
                ],
                "command": "npx"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/scrapingbee"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Hobby plan",
            "unit": "month",
            "usd": 19,
            "note": "75,000 credits, 25 concurrent, excluding VAT"
          },
          {
            "item": "Freelance plan",
            "unit": "month",
            "usd": 49,
            "note": "250,000 credits, 50 concurrent"
          },
          {
            "item": "Startup plan",
            "unit": "month",
            "usd": 99,
            "note": "1 million credits, 100 concurrent"
          },
          {
            "item": "Default request on Hobby",
            "unit": "1k-requests",
            "usd": 1.27,
            "note": "JavaScript rendering on by default, 5 credits each"
          },
          {
            "item": "Request without rendering on Hobby",
            "unit": "1k-requests",
            "usd": 0.25,
            "note": "render_js=false, 1 credit each"
          }
        ],
        "provenance": {
          "legalEntity": "VostokInc SAS",
          "domain": "scrapingbee.com",
          "domainRegistered": "2019-09-18",
          "endpointOnVendorDomain": true,
          "terms": "https://www.scrapingbee.com/terms-and-conditions/",
          "privacy": "https://www.scrapingbee.com/privacy-policy/",
          "statusPage": "https://status.scrapingbee.com",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "VostokInc is a Paris société par actions simplifiée, registration number 843 352 683, per the legal notices at https://www.scrapingbee.com/legal-notices/.",
            "Owned by the Oxylabs company group since June 2025. The terms still name VostokInc."
          ],
          "score": 76
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/scrapingbee.json",
        "live": {
          "slug": "scrapingbee",
          "probe": {
            "target": "https://app.scrapingbee.com/api/v1/",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.157159374Z",
            "lastOk": true,
            "lastStatus": 400,
            "lastMs": 40,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 49,
            "p95ms24h": 76,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.scrapingbee.com",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:28.470706296Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "scrapingbee",
              "version": "2.0.0",
              "seenAt": "2026-10-04T16:39:22.309320204Z"
            },
            {
              "registry": "pypi",
              "name": "scrapingbee",
              "version": "2.2.0",
              "released": "2026-09-01",
              "seenAt": "2026-10-04T16:39:21.182224917Z"
            },
            {
              "registry": "pypi",
              "name": "scrapingbee-cli",
              "version": "1.6.0",
              "released": "2026-09-11",
              "seenAt": "2026-10-04T16:39:23.142135848Z"
            }
          ],
          "npmWeekly": 39537,
          "pypiWeekly": 75275,
          "securityTxt": {
            "url": "https://scrapingbee.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:50.718697282Z"
          },
          "llmsTxt": {
            "url": "https://www.scrapingbee.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:13.440450165Z"
          },
          "domain": {
            "domain": "scrapingbee.com",
            "registered": "2019-09-18",
            "source": "https://rdap.verisign.com/com/v1/domain/scrapingbee.com",
            "checkedAt": "2026-10-04T13:09:03.506417474Z"
          },
          "pages": [
            {
              "url": "https://www.scrapingbee.com/pricing/",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:08.073663543Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "06469290068d"
            },
            {
              "url": "https://www.scrapingbee.com/privacy-policy/",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:10.15769415Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "ac25595d45e2"
            },
            {
              "url": "https://www.scrapingbee.com/terms-and-conditions/",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:12.139455532Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "22104587a854"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.157159374Z"
        }
      },
      {
        "slug": "scrapeless",
        "name": "Scrapeless",
        "vendor": "Scrapeless (NST Labs Tech)",
        "vendorUrl": "https://www.scrapeless.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Web Unlocker, a hosted cloud browser over CDP, a crawl API, Google and Amazon scraping APIs, AI answer-engine scrapers and residential proxies under one key.",
        "url": "https://www.anchorterminal.com/tools/scrapeless",
        "markdownUrl": "https://www.anchorterminal.com/tools/scrapeless.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrapeless.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapeless.json",
        "repo": "https://github.com/scrapeless-ai/scrapeless-mcp-server",
        "license": "MIT",
        "transports": [
          "http",
          "streamable-http",
          "stdio"
        ],
        "remoteUrl": "https://api.scrapeless.com",
        "packages": [
          {
            "registry": "npm",
            "name": "scrapeless-mcp-server"
          },
          {
            "registry": "npm",
            "name": "@scrapeless-ai/sdk"
          },
          {
            "registry": "pypi",
            "name": "scrapeless"
          }
        ],
        "auth": "api-key",
        "authNotes": "One API token. REST calls and the hosted MCP send it in the x-api-token header. The local MCP reads SCRAPELESS_API_KEY and falls back to SCRAPELESS_KEY. Agent Browser WebSocket connections put it in a token URL parameter.",
        "pricing": "usage",
        "pricingNotes": "Basic is pay as you go with no monthly fee. Web Unlocker $1 per 1,000 requests, Google Search $1 per 1,000, Amazon $3 per 1,000, AI scrapers $1.80 to $2 per 1,000, cloud browser $0.09 an hour, residential proxy $1.80 a GB. Growth $49 a month (10 per cent off), Scale $199 (15 per cent), Business $399 (20 per cent), Enterprise $699 and Enterprise Plus $999. Plan fees are prepaid usage and unused balance doesn't roll over. Yearly billing saves about 10 per cent (https://www.scrapeless.com/en/pricing).",
        "priceSummary": "$49 / mo",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402 mention on the site, docs or pricing. The pricing FAQ says crypto payments are accepted for account top-ups, which isn't x402 (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 25,
        "popularity": {
          "githubStars": 169,
          "npmWeekly": 423,
          "pypiWeekly": 216,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.scrapeless.com",
        "llmsTxt": "https://apidocs.scrapeless.com/llms.txt",
        "registryName": "io.github.scrapeless-ai/scrapeless-mcp-server",
        "capabilities": [
          "web.scrape",
          "web.crawl",
          "web.search",
          "browser.hosted",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot",
          "scraping.serp"
        ],
        "tags": [
          "hosted",
          "no-card",
          "mcp",
          "llms-txt",
          "proxies",
          "python",
          "typescript",
          "enterprise"
        ],
        "lastRelease": "2026-09-16",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 54.3,
          "grade": "C",
          "agentReady": false,
          "rank": 326,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 10,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 50,
            "maintenance": 81,
            "payments": 35,
            "reliability": 75,
            "schema": 66,
            "security": 35,
            "transparency": 56
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": -2,
          "negativeNotes": [
            "2026-10-01: the agent-facing llms.txt at https://www.scrapeless.com/llms.txt quotes Deep SerpApi at $0.1 per 1,000 requests, while the plan data behind https://www.scrapeless.com/en/pricing charged $1 per 1,000 for Google Search on Basic when checked on 2026-09-30. A tenfold understatement in the file agents read (-2)."
          ],
          "verdict": "Hosted streamable HTTP MCP at api.scrapeless.com/mcp with header auth, plus a stdio package, both in the official MCP registry. llms.txt quotes Deep SerpApi at $0.1 per 1,000 while the plan data charges $1 per 1,000 for Google Search.",
          "strengths": [
            "Hosted streamable HTTP MCP at api.scrapeless.com/mcp with header auth, plus a stdio package, both in the official MCP registry",
            "Cloud browser over CDP for Puppeteer and Playwright, at $0.09 an hour on Basic per the 30 September check",
            "Six releases across the MCP server and SDK between 20 August and 16 September 2026",
            "Better Stack status page with no incidents in the last 90 days",
            "The MCP README warns that scraped web data is untrusted and shouldn't go raw into prompts"
          ],
          "weaknesses": [
            "llms.txt quotes Deep SerpApi at $0.1 per 1,000 while the plan data charges $1 per 1,000 for Google Search",
            "No error catalogue, no 429 or retry guidance and no per-minute rate limits in the docs",
            "The 25 MCP tools have no readOnlyHint or destructiveHint annotations, and the browser tools can type and click without confirmation",
            "Terms and privacy policy name NST LABS TECH LTD. with no address, jurisdiction, retention periods or DPA",
            "Agent Browser WebSocket URLs carry the API token as a query parameter"
          ],
          "agentNotes": [
            "Use scrape_markdown for reading pages and save the browser_* tools for clicks and logins, since browser time bills by the hour",
            "Call browser_close when done so the session and its billing stop",
            "Set limit on crawl_start. Unset, it defaults to 10,000 pages",
            "Crawls are asynchronous. Call crawl_start, then poll crawl_result with the returned id",
            "Set SCRAPELESS_API_KEY for the stdio server. Older guides use SCRAPELESS_KEY, which still works as a fallback"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 2,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "C",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 54.3
            }
          ],
          "editorialScores": {
            "ergonomics": 50,
            "maintenance": 81,
            "payments": 35,
            "reliability": 75,
            "schema": 66,
            "security": 35,
            "transparency": 30
          },
          "provenanceScore": 82
        },
        "connect": {
          "http": "curl -X POST https://api.scrapeless.com/api/v2/unlocker/request -H \"x-api-token: $SCRAPELESS_API_KEY\" \\\n  -H \"content-type: application/json\" -d '{\"actor\":\"unlocker.webunlocker\",\"input\":{\"url\":\"https://example.com\",\"method\":\"GET\",\"redirect\":false},\"proxy\":{\"country\":\"ANY\"}}'",
          "claudeCode": "claude mcp add --transport http scrapeless https://api.scrapeless.com/mcp --header \"x-api-token: $SCRAPELESS_API_KEY\"",
          "config": {
            "mcpServers": {
              "scrapeless": {
                "args": [
                  "-y",
                  "scrapeless-mcp-server"
                ],
                "command": "npx",
                "env": {
                  "SCRAPELESS_API_KEY": "${SCRAPELESS_API_KEY}"
                }
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/scrapeless"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Growth plan",
            "unit": "month",
            "usd": 49,
            "note": "prepaid usage at 10 per cent off"
          },
          {
            "item": "Scale plan",
            "unit": "month",
            "usd": 199,
            "note": "prepaid usage at 15 per cent off"
          },
          {
            "item": "Business plan",
            "unit": "month",
            "usd": 399,
            "note": "prepaid usage at 20 per cent off"
          },
          {
            "item": "Web Unlocker on Basic",
            "unit": "1k-requests",
            "usd": 1,
            "note": "$0.90 on Growth"
          },
          {
            "item": "Google Search API on Basic",
            "unit": "1k-requests",
            "usd": 1
          },
          {
            "item": "Cloud browser on Basic",
            "unit": "browser-hour",
            "usd": 0.09
          },
          {
            "item": "Residential proxy on Basic",
            "unit": "gb",
            "usd": 1.8
          }
        ],
        "provenance": {
          "legalEntity": "NST LABS TECH LTD.",
          "domain": "scrapeless.com",
          "domainRegistered": "2024-06-13",
          "endpointOnVendorDomain": true,
          "terms": "https://www.scrapeless.com/en/legal/terms",
          "privacy": "https://www.scrapeless.com/en/legal/privacy-policy",
          "statusPage": "https://status.scrapeless.com",
          "changelog": "",
          "securityTxt": "valid",
          "checked": "2026-09-30",
          "notes": [
            "The terms name NST LABS TECH LTD. but give no registered address and no governing law clause. Sales hours are listed in Singapore time.",
            "Plan prices come from the JSON the pricing page loads from backend.scrapeless.com, because the page renders them client-side."
          ],
          "score": 82
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/scrapeless.json",
        "live": {
          "slug": "scrapeless",
          "probe": {
            "target": "https://api.scrapeless.com",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.137799349Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 205,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 215,
            "p95ms24h": 332,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.scrapeless.com",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:28.343357774Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "io.github.scrapeless-ai/scrapeless-mcp-server",
              "version": "0.6.4",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "@scrapeless-ai/sdk",
              "version": "1.12.1",
              "seenAt": "2026-10-04T16:39:11.547770121Z"
            },
            {
              "registry": "npm",
              "name": "scrapeless-mcp-server",
              "version": "0.6.3",
              "seenAt": "2026-10-04T16:39:08.935074265Z"
            },
            {
              "registry": "pypi",
              "name": "scrapeless",
              "version": "1.3.0",
              "released": "2026-09-16",
              "seenAt": "2026-10-04T16:39:12.935733645Z"
            }
          ],
          "githubStars": 169,
          "npmWeekly": 341,
          "pypiWeekly": 221,
          "securityTxt": {
            "url": "https://scrapeless.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:46.307960979Z"
          },
          "llmsTxt": {
            "url": "https://apidocs.scrapeless.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:13.376530252Z"
          },
          "domain": {
            "domain": "scrapeless.com",
            "registered": "2024-06-13",
            "source": "https://rdap.verisign.com/com/v1/domain/scrapeless.com",
            "checkedAt": "2026-10-04T13:04:03.285924608Z"
          },
          "pages": [
            {
              "url": "https://www.scrapeless.com/en/pricing",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:11.341574065Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "c51c9cdcbbe4"
            },
            {
              "url": "https://www.scrapeless.com/en/legal/privacy-policy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:06.9714411Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "accc8fa4642a"
            },
            {
              "url": "https://www.scrapeless.com/en/legal/terms",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:10.227321744Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "9b5c9eb0936a"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.137799349Z"
        }
      },
      {
        "slug": "jina-reader",
        "name": "Jina Reader",
        "vendor": "Jina AI (Elastic)",
        "vendorUrl": "https://jina.ai",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "API that converts web pages and search results to Markdown for agents and applications.",
        "url": "https://www.anchorterminal.com/tools/jina-reader",
        "markdownUrl": "https://www.anchorterminal.com/tools/jina-reader.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/jina-reader.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/jina-reader.json",
        "repo": "https://github.com/jina-ai/reader",
        "license": "Apache-2.0",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://r.jina.ai/",
        "packages": [],
        "auth": "mixed",
        "authNotes": "Reader works with no key at 20 requests a minute. Search and higher limits need a Bearer key.",
        "pricing": "usage",
        "pricingNotes": "Billed in output tokens. A new key comes with 10M free tokens. Search costs at least 10,000 tokens a request. US dollar prices per token weren't shown on the public page (https://jina.ai/reader/).",
        "priceSummary": "Pay per use",
        "where": "hosted",
        "x402": {
          "level": "no",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 12000,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-09-26"
        },
        "docsUrl": "https://jina.ai/reader/",
        "capabilities": [
          "web.scrape",
          "web.fetch",
          "web.search"
        ],
        "tags": [
          "hosted",
          "no-key",
          "mcp",
          "open-source"
        ],
        "lastRelease": "2026-09-18",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 45.3,
          "grade": "E",
          "agentReady": false,
          "rank": 402,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 11,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 76,
            "maintenance": 65,
            "payments": 35,
            "reliability": 60,
            "schema": 43,
            "security": 32,
            "transparency": 61
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": -7,
          "negativeNotes": [
            "-4: the hosted MCP server's show_api_key tool returned the account's bearer token into the conversation, next to read_url, which fetches untrusted pages, from August 2025 until v1.10.0 removed it on 2026-09-18. Fixed and documented in the README, so deducted less (https://github.com/jina-ai/MCP#functions-have-been-removed-in-v1100).",
            "-3: v1.10.0 on 2026-09-18 removed nine tools from mcp.jina.ai, including search_web_deep added on 12 August and the parallel_* tools, with no advance notice (https://github.com/jina-ai/MCP/pull/36)."
          ],
          "verdict": "One URL prefix, no key needed, Markdown back. No price per token in any currency on the public page.",
          "strengths": [
            "One URL prefix, no key needed, Markdown back",
            "`x-max-tokens`, `x-token-budget` and `x-target-selector` bound the output",
            "Rate limits published for each key tier",
            "Apache-2.0 source for the code behind r.jina.ai",
            "10 million free tokens with a new key, no card"
          ],
          "weaknesses": [
            "No price per token in any currency on the public page",
            "No OpenAPI, no llms.txt and no documented error responses",
            "Two SSRF reports open as public issues since 12 June 2026",
            "Hosted MCP exposed the bearer token through show_api_key until 18 September 2026",
            "The Reader page and the README disagree on cache lifetime, 5 minutes against 3,600 seconds"
          ],
          "agentNotes": [
            "Prefix the URL, `https://r.jina.ai/https://example.com`, and read the Markdown",
            "Send `x-max-tokens` to cap a page, or `x-token-budget` to refuse one that's too big",
            "Use `x-target-selector` when you need one part of a page",
            "Keyless is 20 requests a minute and can't search. Add a key for loops or s.jina.ai",
            "Send `x-no-cache: true` when a page may have changed or a blocked response got cached"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 2.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 45.3
            }
          ],
          "editorialScores": {
            "ergonomics": 76,
            "maintenance": 65,
            "payments": 35,
            "reliability": 60,
            "schema": 43,
            "security": 32,
            "transparency": 45
          },
          "provenanceScore": 76
        },
        "connect": {
          "http": "curl \"https://r.jina.ai/https://www.anchorterminal.com/prices/\"",
          "claudeCode": "claude mcp add --transport http jina https://mcp.jina.ai/v1"
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/jina-reader"
        },
        "sameCompany": [
          "jina-embeddings"
        ],
        "area": "web-data",
        "provenance": {
          "legalEntity": "Jina AI GmbH",
          "domain": "jina.ai",
          "domainRegistered": "2020-01-20",
          "domainNote": "Jina AI GmbH is a subsidiary of Elastic N.V., and the privacy statement is Elastic's.",
          "endpointOnVendorDomain": true,
          "terms": "https://jina.ai/legal/#terms-and-conditions",
          "privacy": "https://www.elastic.co/legal/privacy-statement",
          "statusPage": "https://status.jina.ai",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-09-26",
          "score": 76
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/jina-reader.json",
        "live": {
          "slug": "jina-reader",
          "probe": {
            "target": "https://r.jina.ai/",
            "method": "get",
            "lastAt": "2026-10-04T23:32:49.067665235Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 134,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 99.95,
            "p50ms24h": 143,
            "p95ms24h": 186,
            "samples24h": 272,
            "samples30d": 2051,
            "days": [
              {
                "date": "2026-09-27",
                "probes": 132,
                "ok": 132
              },
              {
                "date": "2026-09-28",
                "probes": 285,
                "ok": 285
              },
              {
                "date": "2026-09-29",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-09-30",
                "probes": 286,
                "ok": 286
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 270
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.jina.ai",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-04T23:27:52.207263476Z"
          },
          "githubStars": 12099,
          "securityTxt": {
            "url": "https://jina.ai/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:16:02.621468742Z"
          },
          "domain": {
            "domain": "jina.ai",
            "registered": "2020-01-20",
            "source": "https://rdap.identitydigital.services/rdap/domain/jina.ai",
            "checkedAt": "2026-10-04T13:08:08.912440143Z"
          },
          "pages": [
            {
              "url": "https://jina.ai/reader/",
              "kind": "deprecations",
              "status": 200,
              "checkedAt": "2026-10-04T15:45:12.901246527Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "9cb57f699705"
            },
            {
              "url": "https://www.elastic.co/legal/privacy-statement",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-01T13:17:07.465912374Z",
              "changedAt": "2026-10-01T13:17:07.465912374Z",
              "fingerprint": "bd620f341674"
            },
            {
              "url": "https://jina.ai/legal/",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-01T13:13:46.391565171Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "822c862ff72d"
            }
          ],
          "updatedAt": "2026-10-04T23:32:49.067665235Z"
        }
      },
      {
        "slug": "scrape-do",
        "name": "Scrape.do",
        "vendor": "Scrape.do",
        "vendorUrl": "https://scrape.do",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Single GET endpoint that fetches a URL through rotating datacenter, residential or mobile proxies, with optional headless rendering, screenshots, markdown output and a proxy mode.",
        "url": "https://www.anchorterminal.com/tools/scrape-do",
        "markdownUrl": "https://www.anchorterminal.com/tools/scrape-do.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrape-do.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrape-do.json",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.scrape.do/",
        "packages": [
          {
            "registry": "npm",
            "name": "@scrape-do/client"
          }
        ],
        "auth": "api-key",
        "authNotes": "Token in the `token` query parameter on the main API. Proxy mode puts it in the proxy username (proxy.scrape.do:8080) and needs their CA certificate trusted or TLS verification off. The async API takes it in an `X-Token` header.",
        "pricing": "freemium",
        "pricingNotes": "Free plan with 1,000 successful credits a month and 5 concurrent requests, no card. Hobby $29 a month (250,000 credits), Pro $99 (1.25 million), Business $249 (3.5 million), Advanced $699 (10 million). A datacenter request costs 1 credit, headless rendering 5, residential or mobile 10, both 25, and some domains carry fixed higher costs (google.* 10, linkedin.com 30, sainsburys.co.uk 200). Annual billing gives 2 months free but is set up by support (https://scrape.do/pricing/).",
        "priceSummary": "$29 / mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402 in the docs, llms.txt or pricing FAQ, which lists card, crypto and bank wire only (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 2,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://scrape.do/documentation/",
        "llmsTxt": "https://scrape.do/documentation/llms.txt",
        "capabilities": [
          "web.scrape",
          "web.fetch",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot",
          "scraping.serp"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "free-tier",
          "proxies",
          "llms-txt",
          "closed-source"
        ],
        "lastRelease": "2026-07-31",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 44,
          "grade": "E",
          "agentReady": false,
          "rank": 406,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 12,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 62,
            "maintenance": 45,
            "payments": 35,
            "reliability": 40,
            "schema": 57,
            "security": 23,
            "transparency": 49
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "$29 for 250,000 basic credits, and 429s, 502s and most failures aren't billed. Token travels in the query string on the main API.",
          "strengths": [
            "$29 for 250,000 basic credits, and 429s, 502s and most failures aren't billed",
            "Per-domain credit costs published, and each response carries its cost in a header",
            "Free plan of 1,000 requests a month with residential proxies and rendering, no card",
            "Concurrency published for every plan",
            "Automatic retries on the server side, with `disableRetry` to turn them off"
          ],
          "weaknesses": [
            "Token travels in the query string on the main API",
            "No readable status page, SLA or security page",
            "404 and target 400 responses are billed as successes",
            "Privacy policy last dated September 2022",
            "Node SDK last released on 13 November 2024, and no official MCP server"
          ],
          "agentNotes": [
            "Start with the default data centre request (1 credit). Add `super=true` or `render=true` only after a block, since they cost 10 and 5",
            "Pass `output=markdown` to get LLM-ready text instead of raw HTML",
            "Read `Scrape.do-Request-Cost` from the response headers. Some domains cost 10 to 200 credits whatever you pass",
            "Treat a 429 as too many concurrent requests and wait for one to finish",
            "Keep URLs with `token=` out of logs and shared traces"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 44
            }
          ],
          "editorialScores": {
            "ergonomics": 62,
            "maintenance": 45,
            "payments": 35,
            "reliability": 40,
            "schema": 57,
            "security": 23,
            "transparency": 33
          },
          "provenanceScore": 65
        },
        "connect": {
          "http": "curl \"https://api.scrape.do/?token=$SCRAPEDO_TOKEN\u0026url=https%3A%2F%2Fexample.com\u0026output=markdown\""
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/scrape-do"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Hobby plan",
            "unit": "month",
            "usd": 29,
            "note": "250,000 successful credits, 10 concurrent"
          },
          {
            "item": "Pro plan",
            "unit": "month",
            "usd": 99,
            "note": "1,250,000 successful credits, 50 concurrent"
          },
          {
            "item": "Business plan",
            "unit": "month",
            "usd": 249,
            "note": "3,500,000 successful credits, 100 concurrent"
          },
          {
            "item": "Advanced plan",
            "unit": "month",
            "usd": 699,
            "note": "10,000,000 successful credits, 200 concurrent"
          },
          {
            "item": "Datacenter request on Hobby",
            "unit": "1k-requests",
            "usd": 0.116,
            "note": "1 credit a request"
          },
          {
            "item": "Residential request on Hobby",
            "unit": "1k-requests",
            "usd": 1.16,
            "note": "10 credits a request with super=true"
          }
        ],
        "provenance": {
          "legalEntity": "PACKEND, LLC",
          "domain": "scrape.do",
          "domainRegistered": "",
          "endpointOnVendorDomain": true,
          "terms": "https://scrape.do/terms-of-use/",
          "privacy": "https://scrape.do/privacy-policy/",
          "statusPage": "",
          "changelog": "https://scrape.do/documentation/changelog/",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "The .do registry has no RDAP service, so the registration date couldn't be read.",
            "status.scrape.do exists behind a CDN shield that returned 403, and the site doesn't link it, so no status page is recorded."
          ],
          "score": 65
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/scrape-do.json",
        "live": {
          "slug": "scrape-do",
          "probe": {
            "target": "https://api.scrape.do/",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.065984317Z",
            "lastOk": true,
            "lastStatus": 400,
            "lastMs": 72,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 85,
            "p95ms24h": 210,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "versions": [
            {
              "registry": "npm",
              "name": "@scrape-do/client",
              "version": "1.0.2",
              "seenAt": "2026-10-04T16:39:04.733412897Z"
            }
          ],
          "npmWeekly": 2,
          "securityTxt": {
            "url": "https://scrape.do/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:39.987331162Z"
          },
          "llmsTxt": {
            "url": "https://scrape.do/documentation/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:12.425738238Z"
          },
          "domain": {
            "domain": "scrape.do",
            "checkedAt": "2026-10-04T13:04:37.896932334Z"
          },
          "pages": [
            {
              "url": "https://scrape.do/documentation/changelog/",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:26.613440809Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "a597f1d69e2d"
            },
            {
              "url": "https://scrape.do/documentation/changelog/2026-03-12-pricing-page-refresh/",
              "kind": "deprecations",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:28.682948661Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "c8d4a242823e"
            },
            {
              "url": "https://scrape.do/pricing/",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:30.672906734Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "137ece1f2a23"
            },
            {
              "url": "https://scrape.do/privacy-policy/",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:32.703546965Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "4478a6102da5"
            },
            {
              "url": "https://scrape.do/terms-of-use/",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:47:34.693277825Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "3dd299433e7e"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.065984317Z"
        }
      },
      {
        "slug": "scrapingdog",
        "name": "Scrapingdog",
        "vendor": "Scrapingdog (OpenData Labs)",
        "vendorUrl": "https://www.scrapingdog.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Web scraping API billed by credits.",
        "url": "https://www.anchorterminal.com/tools/scrapingdog",
        "markdownUrl": "https://www.anchorterminal.com/tools/scrapingdog.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrapingdog.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapingdog.json",
        "transports": [
          "http",
          "stdio"
        ],
        "remoteUrl": "https://api.scrapingdog.com/scrape",
        "packages": [
          {
            "registry": "npm",
            "name": "scrapingdog-mcp"
          },
          {
            "registry": "npm",
            "name": "scrapingdog-sdk"
          },
          {
            "registry": "pypi",
            "name": "scrapingdog"
          }
        ],
        "auth": "api-key",
        "authNotes": "The key goes in the api_key query parameter on every request. The docs show no header option. The MCP server reads SCRAPINGDOG_API_KEY from the environment.",
        "pricing": "freemium",
        "pricingNotes": "Free plan of 100 credits with 1 concurrent request, no card (the docs say 200 requests a month). Lite $40 a month (200,000 credits, 5 concurrent), Standard $90 (1M, 50), Pro $200 (3M, 100), Premium $350 (6M, 150), then plans up to $30,000 a month. Annual billing gives 2 months free. A plain request costs 1 credit, JS rendering 5, premium proxy or geotargeting 10, both 25, Google SERP 5 to 10, LinkedIn profiles 10 to 100. Failed requests aren't charged (https://www.scrapingdog.com/pricing/).",
        "priceSummary": "$40 / mo",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402 mention on the site, docs or pricing (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 35,
        "popularity": {
          "githubStars": 0,
          "npmWeekly": 41,
          "pypiWeekly": 12,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://www.scrapingdog.com/documentation/",
        "llmsTxt": "https://www.scrapingdog.com/llms.txt",
        "registryName": "io.github.Darshan972/scrapingdog-mcp",
        "capabilities": [
          "web.scrape",
          "web.extract",
          "web.search",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot",
          "scraping.screenshot",
          "scraping.serp"
        ],
        "tags": [
          "hosted",
          "freemium",
          "no-card",
          "mcp",
          "llms-txt",
          "proxies",
          "closed-source",
          "python",
          "typescript"
        ],
        "lastRelease": "2026-07-31",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 39.3,
          "grade": "E",
          "agentReady": false,
          "rank": 425,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 13,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 44,
            "maintenance": 45,
            "payments": 40,
            "reliability": 62,
            "schema": 43,
            "security": 5,
            "transparency": 57
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": -2,
          "negativeNotes": [
            "2026-08-01: the vendor-linked MCP server's web_scrape tool describes dynamic as `(API default: false)`, while https://www.scrapingdog.com/documentation/javascript-rendering/ says rendering is on by default at 5 credits. The MCP omits unset parameters, so a model that trusts the description pays 5 times the plain rate (https://github.com/Darshan972/Scrapingdog-mcp, src/endpoints.ts) (-2)."
          ],
          "verdict": "A plain request is 1 credit, about $0.20 per 1,000 on Lite. API key only travels in the URL query string.",
          "strengths": [
            "A plain request is 1 credit, about $0.20 per 1,000 on Lite",
            "Parsed JSON endpoints for Google, Amazon, LinkedIn, YouTube and more under one key",
            "Terms let you store and redistribute returned data during the subscription, and the privacy policy says API calls aren't stored or logged",
            "Failed requests aren't charged, and a public SLA page compensates downtime in credits",
            "Concurrency per plan is published, from 1 up to 2,200"
          ],
          "weaknesses": [
            "API key only travels in the URL query string",
            "Rendering defaults on at 5 credits, and the MCP's web_scrape description says the default is off",
            "MCP server published 2026-08-01 from a personal account, with 35 tools, no CI, no tags and no release since",
            "No changelog, security.txt or prompt-injection guidance",
            "The free allowance differs between pricing (100 credits) and docs (200 a month)"
          ],
          "agentNotes": [
            "Add dynamic=false unless the page needs JavaScript. It cuts the cost from 5 credits to 1, whatever the MCP description says",
            "Keep request URLs out of logs, since they carry api_key",
            "Set client timeouts above 60 seconds and retry on 429 or timeout. Failures aren't billed",
            "Prefer the parsed endpoints (Google, Amazon) over scraping the raw page when one exists"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 39.3
            }
          ],
          "editorialScores": {
            "ergonomics": 44,
            "maintenance": 45,
            "payments": 40,
            "reliability": 62,
            "schema": 43,
            "security": 5,
            "transparency": 37
          },
          "provenanceScore": 76
        },
        "connect": {
          "http": "curl \"https://api.scrapingdog.com/scrape?api_key=$SCRAPINGDOG_API_KEY\u0026url=https://example.com\u0026dynamic=false\"",
          "claudeCode": "claude mcp add scrapingdog -e SCRAPINGDOG_API_KEY=$SCRAPINGDOG_API_KEY -- npx -y scrapingdog-mcp",
          "config": {
            "mcpServers": {
              "scrapingdog": {
                "args": [
                  "-y",
                  "scrapingdog-mcp"
                ],
                "command": "npx",
                "env": {
                  "SCRAPINGDOG_API_KEY": "${SCRAPINGDOG_API_KEY}"
                }
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/scrapingdog"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Lite plan",
            "unit": "month",
            "usd": 40,
            "note": "200,000 credits, 5 concurrent"
          },
          {
            "item": "Standard plan",
            "unit": "month",
            "usd": 90,
            "note": "1,000,000 credits, 50 concurrent"
          },
          {
            "item": "Pro plan",
            "unit": "month",
            "usd": 200,
            "note": "3,000,000 credits, 100 concurrent"
          },
          {
            "item": "Plain request on Lite",
            "unit": "1k-requests",
            "usd": 0.2,
            "note": "1 credit each, dynamic=false"
          },
          {
            "item": "JS-rendered request on Lite",
            "unit": "1k-requests",
            "usd": 1,
            "note": "5 credits each, the default"
          }
        ],
        "provenance": {
          "legalEntity": "OpenData Labs Private Limited",
          "domain": "scrapingdog.com",
          "domainRegistered": "2020-04-04",
          "endpointOnVendorDomain": true,
          "terms": "https://www.scrapingdog.com/terms/",
          "privacy": "https://www.scrapingdog.com/privacy/",
          "statusPage": "https://stats.uptimerobot.com/SAQkQwbOYj",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "Legal entity from the site footer. The terms are governed by the laws of Rajasthan, India.",
            "The status page is a hosted UptimeRobot page linked from the footer."
          ],
          "score": 76
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/scrapingdog.json",
        "live": {
          "slug": "scrapingdog",
          "probe": {
            "target": "https://api.scrapingdog.com/scrape",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.197759868Z",
            "lastOk": true,
            "lastStatus": 400,
            "lastMs": 122,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 126,
            "p95ms24h": 302,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "vendorStatus": {
            "page": "https://stats.uptimerobot.com/SAQkQwbOYj",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-04T21:40:28.56453658Z"
          },
          "versions": [
            {
              "registry": "mcp-registry",
              "name": "io.github.Darshan972/scrapingdog-mcp",
              "version": "0.1.1",
              "seenAt": "2026-10-03T23:29:28.630222764Z"
            },
            {
              "registry": "npm",
              "name": "scrapingdog-mcp",
              "version": "0.1.1",
              "seenAt": "2026-10-04T16:39:24.204246179Z"
            },
            {
              "registry": "npm",
              "name": "scrapingdog-sdk",
              "version": "1.0.1",
              "seenAt": "2026-10-04T16:39:25.16185939Z"
            },
            {
              "registry": "pypi",
              "name": "scrapingdog",
              "version": "1.1.0",
              "released": "2026-07-31",
              "seenAt": "2026-10-04T16:39:26.504278599Z"
            }
          ],
          "npmWeekly": 47,
          "pypiWeekly": 10,
          "securityTxt": {
            "url": "https://scrapingdog.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:59.790191822Z"
          },
          "llmsTxt": {
            "url": "https://www.scrapingdog.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:13.496086906Z"
          },
          "domain": {
            "domain": "scrapingdog.com",
            "registered": "2020-04-04",
            "source": "https://rdap.verisign.com/com/v1/domain/scrapingdog.com",
            "checkedAt": "2026-10-04T13:06:10.743416145Z"
          },
          "pages": [
            {
              "url": "https://www.scrapingdog.com/terms/",
              "kind": "deprecations",
              "status": 304,
              "checkedAt": "2026-10-04T15:52:13.443088296Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "2305ca79c5e0"
            },
            {
              "url": "https://www.scrapingdog.com/pricing/",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:52:09.410001091Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "9d279976db89"
            },
            {
              "url": "https://www.scrapingdog.com/privacy/",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:52:11.429468273Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "bd229180f12f"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.197759868Z"
        }
      },
      {
        "slug": "scrapingant",
        "name": "ScrapingAnt",
        "vendor": "ScrapingAnt (DATAANT)",
        "vendorUrl": "https://scrapingant.com",
        "kind": "http-api",
        "category": "web-scrapers",
        "summary": "Scraping API that runs each request in headless Chrome behind rotating datacenter or residential proxies, with markdown and AI extraction endpoints, a 3-tool hosted MCP server and standalone proxies billed by the GB.",
        "url": "https://www.anchorterminal.com/tools/scrapingant",
        "markdownUrl": "https://www.anchorterminal.com/tools/scrapingant.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrapingant.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapingant.json",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://api.scrapingant.com/v2/general",
        "packages": [
          {
            "registry": "pypi",
            "name": "scrapingant-client"
          },
          {
            "registry": "npm",
            "name": "@scrapingant/scrapingant-client"
          }
        ],
        "auth": "api-key",
        "authNotes": "API key as an x-api-key header or an x-api-key query parameter. The docs' examples use the query form. The hosted MCP takes the same key in an x-api-key header. The usage endpoint only documents the query form.",
        "pricing": "freemium",
        "pricingNotes": "10,000 free credits a month, no card, one concurrent request. Enthusiast $19 a month (100,000 credits), Startup $49 (500,000), Business $249 (3M), Business Pro $599 (8M), Custom from $699 (10M+). A plain request on a datacenter proxy costs 1 credit, headless Chrome with JS rendering 10 (the default), Chrome plus residential proxy 125, and the AI extractor adds 1 credit per 30 characters. Failed requests aren't charged. Residential proxies $3 to $6 a GB and datacenter $0.42 to $0.60 a GB, billed separately (https://scrapingant.com/#pricing).",
        "priceSummary": "$19 / mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402 or other agent payment rail in the docs, pricing or API responses (checked 2026-09-30).",
          "endpoints": []
        },
        "toolCount": 3,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 90,
          "pypiWeekly": 1969,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.scrapingant.com",
        "capabilities": [
          "web.scrape",
          "web.fetch",
          "web.extract",
          "scraping.proxies",
          "scraping.js-render",
          "scraping.anti-bot"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "no-card",
          "mcp",
          "proxies",
          "closed-source",
          "python",
          "typescript"
        ],
        "lastRelease": "2024-07-16",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 35.9,
          "grade": "F",
          "agentReady": false,
          "rank": 440,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 14,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 66,
            "maintenance": 5,
            "payments": 40,
            "reliability": 30,
            "schema": 43,
            "security": 10,
            "transparency": 57
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "10,000 free credits a month with no card. API Basics puts the key in the query string, so it lands in logs.",
          "strengths": [
            "10,000 free credits a month with no card",
            "No concurrency cap on paid plans",
            "Failed requests cost nothing, and the Ant-credits-cost header reports spend per call",
            "3-tool hosted MCP with header auth, cheap to load into context",
            "Named Polish entity with processors and hosting locations listed"
          ],
          "weaknesses": [
            "API Basics puts the key in the query string, so it lands in logs",
            "No status page, changelog, security.txt, llms.txt or OpenAPI spec",
            "SDKs are stale. JavaScript last released 2022-05-06, Python 2024-07-16",
            "No prompt-injection guidance for the pages it returns",
            "Privacy policy last updated 3 November 2020"
          ],
          "agentNotes": [
            "Send the key in the `x-api-key` header rather than the query string",
            "Use `/v2/markdown` for LLM input, and set `browser=false` on static pages to pay 1 credit instead of 10",
            "Switch to `proxy_type=residential` only after a 423 (anti-bot) response. It raises a browser request from 10 to 125 credits",
            "On the free plan a second concurrent request gets 409. Wait for the first to finish",
            "Google, Bing and Yandex result pages come back as raw HTML through `/v2/general`, so you parse them yourself"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "F",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 35.9
            }
          ],
          "editorialScores": {
            "ergonomics": 66,
            "maintenance": 5,
            "payments": 40,
            "reliability": 30,
            "schema": 43,
            "security": 10,
            "transparency": 48
          },
          "provenanceScore": 66
        },
        "connect": {
          "http": "curl 'https://api.scrapingant.com/v2/markdown?url=https%3A%2F%2Fexample.com' -H \"x-api-key: $SCRAPINGANT_API_KEY\"",
          "claudeCode": "claude mcp add scrapingant --transport http https://api.scrapingant.com/mcp -H \"x-api-key: $SCRAPINGANT_API_KEY\"",
          "config": {
            "mcpServers": {
              "scrapingant": {
                "headers": {
                  "x-api-key": "${SCRAPINGANT_API_KEY}"
                },
                "url": "https://api.scrapingant.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/web.scrape",
          "tool": "https://letme.dev/scrapingant"
        },
        "area": "web-data",
        "unitPrices": [
          {
            "item": "Enthusiast plan",
            "unit": "month",
            "usd": 19,
            "note": "100,000 credits"
          },
          {
            "item": "Startup plan",
            "unit": "month",
            "usd": 49,
            "note": "500,000 credits"
          },
          {
            "item": "Business plan",
            "unit": "month",
            "usd": 249,
            "note": "3,000,000 credits"
          },
          {
            "item": "Default browser request on Enthusiast",
            "unit": "1k-requests",
            "usd": 1.9,
            "note": "10 credits each, headless Chrome and datacenter proxy"
          },
          {
            "item": "Plain request on Enthusiast",
            "unit": "1k-requests",
            "usd": 0.19,
            "note": "1 credit each, no browser, datacenter proxy"
          },
          {
            "item": "Residential proxy",
            "unit": "gb",
            "usd": 6,
            "note": "Micro plan, 5 GB for $30 a month. Falls to $3 at volume"
          },
          {
            "item": "Datacenter proxy",
            "unit": "gb",
            "usd": 0.6,
            "note": "Micro plan, 50 GB for $30 a month"
          }
        ],
        "provenance": {
          "legalEntity": "DATAANT SP. Z O.O.",
          "domain": "scrapingant.com",
          "domainRegistered": "2020-03-31",
          "endpointOnVendorDomain": true,
          "terms": "https://scrapingant.com/legal/terms-of-use",
          "privacy": "https://scrapingant.com/legal/privacy-policy",
          "statusPage": "",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-10-01",
          "notes": [
            "Registered in Poland, KRS 0000848755, per the terms and privacy policy",
            "The privacy policy was last updated 3 November 2020 and predates the MCP server and AI extractor",
            "The site footer links no status page, changelog or security page"
          ],
          "score": 66
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/scrapingant.json",
        "live": {
          "slug": "scrapingant",
          "probe": {
            "target": "https://api.scrapingant.com/v2/general",
            "method": "get",
            "lastAt": "2026-10-04T23:32:54.147120957Z",
            "lastOk": true,
            "lastStatus": 422,
            "lastMs": 94,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 95,
            "p95ms24h": 132,
            "samples24h": 272,
            "samples30d": 1097,
            "days": [
              {
                "date": "2026-09-30",
                "probes": 35,
                "ok": 35
              },
              {
                "date": "2026-10-01",
                "probes": 276,
                "ok": 276
              },
              {
                "date": "2026-10-02",
                "probes": 248,
                "ok": 248
              },
              {
                "date": "2026-10-03",
                "probes": 271,
                "ok": 271
              },
              {
                "date": "2026-10-04",
                "probes": 267,
                "ok": 267
              }
            ]
          },
          "versions": [
            {
              "registry": "npm",
              "name": "@scrapingant/scrapingant-client",
              "version": "0.2.1",
              "seenAt": "2026-10-04T16:39:20.235072586Z"
            },
            {
              "registry": "pypi",
              "name": "scrapingant-client",
              "version": "2.1.0",
              "released": "2024-07-16",
              "seenAt": "2026-10-04T16:39:20.12299137Z"
            }
          ],
          "npmWeekly": 95,
          "pypiWeekly": 1968,
          "securityTxt": {
            "url": "https://scrapingant.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:54.392439922Z"
          },
          "domain": {
            "domain": "scrapingant.com",
            "registered": "2020-03-31",
            "source": "https://rdap.verisign.com/com/v1/domain/scrapingant.com",
            "checkedAt": "2026-10-04T13:09:25.717167779Z"
          },
          "pages": [
            {
              "url": "https://scrapingant.com/",
              "kind": "pricing",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:36.681118206Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "5d4d337f6a40"
            },
            {
              "url": "https://scrapingant.com/legal/privacy-policy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:38.708035628Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "a61dcd1c862d"
            },
            {
              "url": "https://scrapingant.com/legal/terms-of-use",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:47:40.709144738Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "b1e179927df6"
            }
          ],
          "updatedAt": "2026-10-04T23:32:54.147120957Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/web-scrapers",
    "json": "https://www.anchorterminal.com/categories/web-scrapers.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/web-scrapers.md",
    "slim": "https://www.anchorterminal.com/categories/web-scrapers.min.md"
  },
  "markdown": "Hosted APIs that fetch a page for you, render JavaScript and get past anti-bot checks through rotating proxies, then hand back HTML, Markdown or structured JSON. Also page-to-Markdown readers, crawlers and scraper marketplaces. Compared on price per successful request, success rate on protected sites and what the terms let you do with the output.\n\n- Tools ranked: 14 · agent-ready (BB or better): 4 · accept x402: 5 · hosted endpoints: 14 · desk reviews by the panel: 52\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Capabilities in this category: web.scrape, web.extract, web.crawl, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.actors\n- https://letme.dev/web.scrape picks the top-graded tool in this list and says how to call it direct; calling through letme comes later (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 11 | Apify MCP Server | Apify | MCP server | Scrapers | A | 78.6 | medium | yes ($1/call) | OAuth or key | hosted + local | 3.4/5 (8) | https://www.anchorterminal.com/tools/apify-mcp.md |\n| 34 | Firecrawl MCP | Firecrawl (Mendable) | MCP server | Scrapers | BB | 75.5 | high | no | OAuth or key | hosted + local | 3.5/5 (8) | https://www.anchorterminal.com/tools/firecrawl-mcp.md |\n| 43 | ZenRows | ZenRows | HTTP API | Scrapers | BB | 75.1 | medium | payer | OAuth or key | hosted + local | 3.8/5 (8) | https://www.anchorterminal.com/tools/zenrows.md |\n| 49 | Spider | Spider (BAGELMEN LLC) | HTTP API | Scrapers | BB | 74.3 | medium | yes ($0.0005/call) | OAuth or key | hosted + local | 3.3/5 (8) | https://www.anchorterminal.com/tools/spider-cloud.md |\n| 107 | Scrapfly | Scrapfly (Joam Intelligence, LLC) | HTTP API | Scrapers | B | 69.8 | medium | no | OAuth or key | hosted + local | 4/5 (2) | https://www.anchorterminal.com/tools/scrapfly.md |\n| 128 | ScrapeGraphAI | ScrapeGraphAI | HTTP API | Scrapers | B | 68.3 | medium | payer | OAuth or key | hosted | 3/5 (2) | https://www.anchorterminal.com/tools/scrapegraphai.md |\n| 210 | Olostep | Olostep Technologies, Inc. | HTTP API | Scrapers | B | 63.1 | medium | payer | API key | hosted + local | 3.5/5 (2) | https://www.anchorterminal.com/tools/olostep.md |\n| 254 | Bright Data | Bright Data | HTTP API | Scrapers | C | 60.1 | medium | no | OAuth or key | hosted | 4/5 (2) | https://www.anchorterminal.com/tools/bright-data.md |\n| 268 | ScrapingBee | ScrapingBee (Oxylabs group) | HTTP API | Scrapers | C | 59.3 | medium | no | API key | hosted | 4/5 (2) | https://www.anchorterminal.com/tools/scrapingbee.md |\n| 326 | Scrapeless | Scrapeless (NST Labs Tech) | HTTP API | Scrapers | C | 54.3 | medium | no | API key | hosted + local | 2/5 (2) | https://www.anchorterminal.com/tools/scrapeless.md |\n| 402 | Jina Reader | Jina AI (Elastic) | HTTP API | Scrapers | E | 45.3 | medium | no | OAuth or key | hosted | 2.5/5 (2) | https://www.anchorterminal.com/tools/jina-reader.md |\n| 406 | Scrape.do | Scrape.do | HTTP API | Scrapers | E | 44 | medium | no | API key | hosted | 3.5/5 (2) | https://www.anchorterminal.com/tools/scrape-do.md |\n| 425 | Scrapingdog | Scrapingdog (OpenData Labs) | HTTP API | Scrapers | E | 39.3 | medium | no | API key | hosted + local | 3/5 (2) | https://www.anchorterminal.com/tools/scrapingdog.md |\n| 440 | ScrapingAnt | ScrapingAnt (DATAANT) | HTTP API | Scrapers | F | 35.9 | medium | no | API key | hosted | 3.5/5 (2) | https://www.anchorterminal.com/tools/scrapingant.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 11. Apify MCP Server, A (78.6)\n\nExposes thousands of Apify Store Actors (scrapers, crawlers, automations) as dynamically discovered MCP tools, hosted at mcp.apify.com or run locally; supports OAuth, API tokens and agentic payments (x402 prepaid tokens, Skyfire). x402 on Apify's own domains, a prepaid token from agi.apify.com for any Actor and per-run payment on mcp.apify.com for Pay Per Event Actors. API and Actor runs timed out for about 12 hours on 21 and 22 July 2026.\n\n- Page: https://www.anchorterminal.com/tools/apify-mcp · Markdown: https://www.anchorterminal.com/tools/apify-mcp.md · JSON: https://www.anchorterminal.com/api/v1/tools/apify-mcp.json\n- Capabilities: scraping.actors, web.crawl · endpoint: `https://mcp.apify.com`\n\n### 34. Firecrawl MCP, BB (75.5)\n\nOfficial Firecrawl server for scraping pages to markdown/JSON, mapping and crawling sites, web search, browser interaction, monitoring and an autonomous research agent. Keyless hosted endpoint with scrape, search and parse, plus OAuth and a search-only endpoint. No x402 or other machine payment.\n\n- Page: https://www.anchorterminal.com/tools/firecrawl-mcp · Markdown: https://www.anchorterminal.com/tools/firecrawl-mcp.md · JSON: https://www.anchorterminal.com/api/v1/tools/firecrawl-mcp.json\n- Capabilities: web.search, web.fetch, web.crawl, web.extract · endpoint: `https://mcp.firecrawl.dev/v2/mcp`\n\n### 43. ZenRows, BB (75.1)\n\nScraping API (Fetch, formerly Universal Scraper API) with JavaScript rendering, residential proxies and anti-bot bypass, plus Extract for structured JSON, Batch for bulk URL jobs and hosted Browser Sessions. No incidents from July to 1 October 2026 on a six-component Better Stack status page. The Fetch API only takes the key in the query string.\n\n- Page: https://www.anchorterminal.com/tools/zenrows · Markdown: https://www.anchorterminal.com/tools/zenrows.md · JSON: https://www.anchorterminal.com/api/v1/tools/zenrows.json\n- Capabilities: web.scrape, web.extract, browser.hosted, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot · endpoint: `https://api.zenrows.com/v1/`\n\n### 49. Spider, BB (74.3)\n\nHosted crawl, scrape, search, links and screenshot API built on the open-source Rust spider crate, plus a cloud browser and proxy pool. Keyless /scrape and working x402 v2 on every core route, so an agent needs no account. Operated by BAGELMEN LLC with no address, retention periods or DPA in the privacy policy.\n\n- Page: https://www.anchorterminal.com/tools/spider-cloud · Markdown: https://www.anchorterminal.com/tools/spider-cloud.md · JSON: https://www.anchorterminal.com/api/v1/tools/spider-cloud.json\n- Capabilities: web.scrape, web.extract, web.crawl, web.search, web.fetch, browser.hosted, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot · endpoint: `https://api.spider.cloud`\n\n### 107. Scrapfly, B (69.8)\n\nScrape API with datacenter or residential proxies, JS rendering and an anti-bot Unblocker, plus screenshot, LLM extraction, crawler and hosted Cloud Browser APIs on one credit balance. The error catalogue documents HTTP status, retry behaviour and billing for over 100 codes. The MCP server loads 61 tools at once.\n\n- Page: https://www.anchorterminal.com/tools/scrapfly · Markdown: https://www.anchorterminal.com/tools/scrapfly.md · JSON: https://www.anchorterminal.com/api/v1/tools/scrapfly.json\n- Capabilities: web.scrape, web.fetch, web.extract, web.crawl, browser.hosted, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot · endpoint: `https://api.scrapfly.io/scrape`\n\n### 128. ScrapeGraphAI, B (68.3)\n\nLLM-oriented scraping API with page-to-markdown scrape, prompt-based JSON extraction, search, async crawl and change monitors. An agent can mint an account and key over x402 or MPP with no signup. Rate limits and plan prices differ between docs pages.\n\n- Page: https://www.anchorterminal.com/tools/scrapegraphai · Markdown: https://www.anchorterminal.com/tools/scrapegraphai.md · JSON: https://www.anchorterminal.com/api/v1/tools/scrapegraphai.json\n- Capabilities: web.scrape, web.extract, web.crawl, web.search, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot · endpoint: `https://v2-api.scrapegraphai.com`\n\n### 210. Olostep, B (63.1)\n\nScrape, crawl, map, batch and search API that returns markdown, HTML, JSON or screenshots, with JS rendering and residential IPs on every request. OpenAPI 3.0.3 for every endpoint and a structured error body. The x402 challenge came back with no payment requirements in our probe.\n\n- Page: https://www.anchorterminal.com/tools/olostep · Markdown: https://www.anchorterminal.com/tools/olostep.md · JSON: https://www.anchorterminal.com/api/v1/tools/olostep.json\n- Capabilities: web.scrape, web.extract, web.crawl, web.search, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot, scraping.serp · endpoint: `https://api.olostep.com`\n\n### 254. Bright Data, C (60.1)\n\nWeb Unlocker, SERP API, a hosted Browser API and residential proxies, with an official MCP server wrapping them. Pay only for successful requests, $1.50 per 1,000 on Web Unlocker and SERP. No public status page or incident history.\n\n- Page: https://www.anchorterminal.com/tools/bright-data · Markdown: https://www.anchorterminal.com/tools/bright-data.md · JSON: https://www.anchorterminal.com/api/v1/tools/bright-data.json\n- Capabilities: web.scrape, web.search, browser.hosted, web.crawl · endpoint: `https://api.brightdata.com/request`\n\n### 268. ScrapingBee, C (59.3)\n\nHTML API that fetches a URL through rotating, premium or stealth proxies with headless rendering, JavaScript scenarios, screenshots and CSS or AI extraction. Dedicated Google, Amazon, Walmart, YouTube, ChatGPT and Gemini endpoints next to the general HTML API. remote-mcp.txt says the hosted MCP only takes the key as ?api_key= in its URL.\n\n- Page: https://www.anchorterminal.com/tools/scrapingbee · Markdown: https://www.anchorterminal.com/tools/scrapingbee.md · JSON: https://www.anchorterminal.com/api/v1/tools/scrapingbee.json\n- Capabilities: web.scrape, web.extract, web.search, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot, scraping.serp · endpoint: `https://app.scrapingbee.com/api/v1/`\n\n### 326. Scrapeless, C (54.3)\n\nWeb Unlocker, a hosted cloud browser over CDP, a crawl API, Google and Amazon scraping APIs, AI answer-engine scrapers and residential proxies under one key. Hosted streamable HTTP MCP at api.scrapeless.com/mcp with header auth, plus a stdio package, both in the official MCP registry. llms.txt quotes Deep SerpApi at $0.1 per 1,000 while the plan data charges $1 per 1,000 for Google Search.\n\n- Page: https://www.anchorterminal.com/tools/scrapeless · Markdown: https://www.anchorterminal.com/tools/scrapeless.md · JSON: https://www.anchorterminal.com/api/v1/tools/scrapeless.json\n- Capabilities: web.scrape, web.crawl, web.search, browser.hosted, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot, scraping.serp · endpoint: `https://api.scrapeless.com`\n\n### 402. Jina Reader, E (45.3)\n\nAPI that converts web pages and search results to Markdown for agents and applications. One URL prefix, no key needed, Markdown back. No price per token in any currency on the public page.\n\n- Page: https://www.anchorterminal.com/tools/jina-reader · Markdown: https://www.anchorterminal.com/tools/jina-reader.md · JSON: https://www.anchorterminal.com/api/v1/tools/jina-reader.json\n- Capabilities: web.scrape, web.fetch, web.search · endpoint: `https://r.jina.ai/`\n\n### 406. Scrape.do, E (44)\n\nSingle GET endpoint that fetches a URL through rotating datacenter, residential or mobile proxies, with optional headless rendering, screenshots, markdown output and a proxy mode. $29 for 250,000 basic credits, and 429s, 502s and most failures aren't billed. Token travels in the query string on the main API.\n\n- Page: https://www.anchorterminal.com/tools/scrape-do · Markdown: https://www.anchorterminal.com/tools/scrape-do.md · JSON: https://www.anchorterminal.com/api/v1/tools/scrape-do.json\n- Capabilities: web.scrape, web.fetch, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot, scraping.serp · endpoint: `https://api.scrape.do/`\n\n### 425. Scrapingdog, E (39.3)\n\nWeb scraping API billed by credits. A plain request is 1 credit, about $0.20 per 1,000 on Lite. API key only travels in the URL query string.\n\n- Page: https://www.anchorterminal.com/tools/scrapingdog · Markdown: https://www.anchorterminal.com/tools/scrapingdog.md · JSON: https://www.anchorterminal.com/api/v1/tools/scrapingdog.json\n- Capabilities: web.scrape, web.extract, web.search, scraping.proxies, scraping.js-render, scraping.anti-bot, scraping.screenshot, scraping.serp · endpoint: `https://api.scrapingdog.com/scrape`\n\n### 440. ScrapingAnt, F (35.9)\n\nScraping API that runs each request in headless Chrome behind rotating datacenter or residential proxies, with markdown and AI extraction endpoints, a 3-tool hosted MCP server and standalone proxies billed by the GB. 10,000 free credits a month with no card. API Basics puts the key in the query string, so it lands in logs.\n\n- Page: https://www.anchorterminal.com/tools/scrapingant · Markdown: https://www.anchorterminal.com/tools/scrapingant.md · JSON: https://www.anchorterminal.com/api/v1/tools/scrapingant.json\n- Capabilities: web.scrape, web.fetch, web.extract, scraping.proxies, scraping.js-render, scraping.anti-bot · endpoint: `https://api.scrapingant.com/v2/general`\n\n## Indexed, not reviewed (22)\n\nSorted into this category from public catalogues, with facts and our own checks but no score, grade or rank (https://www.anchorterminal.com/indexed/index.md).\n\n| Listing | Kind | What it does | Why it's here |\n| --- | --- | --- | --- |\n| [alterlab.io MCP server](https://www.anchorterminal.com/tools/alterlab-mcp-server.md) | MCP server | Web scraping MCP server — scrape, extract structured data, screenshot any site with anti-bot bypass. | vendor's own |\n| [Anakin](https://www.anchorterminal.com/tools/anakin-mcp.md) | MCP server | Web data for AI agents: scrape, crawl, search, deep research, site monitoring, browser automation | vendor's own |\n| [Apollo Intelligence](https://www.anchorterminal.com/tools/apolloai-intelligence.md) | MCP server | 36 tools: intel feeds, DeFi, crypto, OSINT, NLP, scraping, proxy. x402 micropayments. | vendor's own |\n| [CrawlConsole](https://www.anchorterminal.com/tools/crawlconsole.md) | MCP server | Backlink Analysis MCP for AI Agents: authority, referring domains, and competitor link gaps. | vendor's own |\n| [Crawlie](https://www.anchorterminal.com/tools/crawlie.md) | MCP server | Technical SEO + GEO (AI-search) site audits: hosted crawls, prioritized fixes, report diffs. | vendor's own |\n| [crawlio-browser](https://www.anchorterminal.com/tools/crawlio-browser.md) | MCP server | Bridge a live Chrome browser to your agent: 150 tools for capture, extraction, and observation. | vendor's own |\n| [geekflare.com MCP server](https://www.anchorterminal.com/tools/geekflare-mcp.md) | MCP server | Geekflare MCP server for scraping, search, screenshots, broken links, DNS lookup, and network tools. | vendor's own |\n| [Glasser](https://www.anchorterminal.com/tools/glasser.md) | MCP server | One key to 1,000+ paid data APIs: enrichment, SEO/SERP, scraping, places, news. Pay per call. | vendor's own |\n| [glim.sh](https://www.anchorterminal.com/tools/glim.md) | MCP server | Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack. | vendor's own |\n| [Google Maps Scraper](https://www.anchorterminal.com/tools/gmapsextractor-google-maps-scraper.md) | MCP server | Live Google Maps business search, review, and photo data for AI agents over MCP. | vendor's own |\n| [IDLE Protocol](https://www.anchorterminal.com/tools/earnidle-mcp.md) | MCP server | Web scraping, inference, DNS, monitoring from residential IPs — pay per request in USDC | vendor's own |\n| [Litescrape](https://www.anchorterminal.com/tools/litescrape-mcp-server.md) | MCP server | Google, Bing, DuckDuckGo and Google Maps search results, free without an API key. | vendor's own |\n| [mcp-gera-jobs](https://www.anchorterminal.com/tools/mcp-gera-jobs.md) | MCP server | Search global job categories, real crawled salary benchmarks and country job markets. No auth. | vendor's own |\n| [OpenAEO](https://www.anchorterminal.com/tools/openaeo-audit.md) | MCP server | Asks 8 AI crawlers for your page, checks who really answered, and writes the fixes. MIT. | vendor's own |\n| [oxylabs-mcp](https://www.anchorterminal.com/tools/oxylabs-mcp.md) | MCP server | Fetch and process content from specified URLs \u0026 sources using the Oxylabs Web Scraper API. | vendor's own |\n| [Rampify](https://www.anchorterminal.com/tools/rampify-mcp.md) | MCP server | SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent. | vendor's own |\n| [ReplyNodes](https://www.anchorterminal.com/tools/replynodes-mcp.md) | MCP server | Web MCP: scrape/crawl sites, web search, brand assets, app stores, YouTube, Reddit, Hacker News. | vendor's own |\n| [Scrapeer](https://www.anchorterminal.com/tools/scrapeer-mcp-server.md) | MCP server | Run Scrapeer visual web-scraping flows from AI agents. | vendor's own |\n| [scrapeunblocker-mcp](https://www.anchorterminal.com/tools/scrapeunblocker-mcp.md) | MCP server | Fetch any web page's HTML or AI-parsed JSON through the ScrapeUnblocker anti-bot API. | vendor's own |\n| [seegeo](https://www.anchorterminal.com/tools/see-geo-seegeo.md) | MCP server | Audit any website for AI visibility: graded report, findings with fixes, AI crawler access check. | vendor's own |\n| [Svipall](https://www.anchorterminal.com/tools/ilien-mcp.md) | MCP server | Read any page past its anti-bot wall, crawl sites, search without an API key, solve captchas locally | vendor's own |\n| [tooltrace.io MCP server](https://www.anchorterminal.com/tools/tooltrace-mcp-server.md) | MCP server | Web tools for AI agents: scrape pages to Markdown, audit SEO, detect tech stacks, check sitemaps | vendor's own |\n\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Web scraping \u0026 crawling",
        "url": ""
      }
    ],
    "description": "14 web scraping \u0026 crawling listings ranked by the Anchor benchmark. Leader Apify MCP Server (A). Hosted APIs that fetch a page for you, render JavaScript and get past anti-bot checks through rotating proxies, then hand back HTML, Markdown or structured JSON. Also page-to-Markdown readers, crawlers and scraper marketplaces. Compared on price per successful request, success rate on protected sites and what the terms let you do with the output.",
    "facts": [
      "Apify MCP Server A",
      "Firecrawl MCP BB",
      "ZenRows BB"
    ],
    "h1": "Web scraping and crawling APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-web-scrapers.png",
    "path": "/categories/web-scrapers",
    "published": "",
    "section": "tools",
    "title": "Web scraping and crawling APIs for AI agents, ranked | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/categories/web-scrapers"
  },
  "tokens": {
    "markdown": 4750,
    "slim": 680
  },
  "version": 1
}
