mcpField
W
web

web

github.com/cascade-protocolData & databases1339 installsUpdated 31w ago
Repository

About web

A web scraping and search skill that uses a paid API when built-in web fetching is blocked or cannot render a page. It supports single or bulk crawling, selectable output formats, and web search through x_payment.

Key features

  1. 01Web search with result snippets
  2. 02Single and bulk URL crawling
  3. 03Markdown, HTML, or text output
  4. 04CSS selector-based extraction
  5. 05Escalating fetch methods for blocked pages

Use cases

  1. 01Finding pages when built-in search fails
  2. 02Extracting content from JavaScript-rendered sites
  3. 03Crawling several URLs in one request
  4. 04Selecting specific page elements

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/cascade-protocol/agentbox --skill web

After installing, type/webin Claude Code to confirm it loaded.

Details

From the project README

Web Scraping & Search

Paid web crawling and search API at https://web.surf.cascade.fyi. Crawl costs $0.005 USDC, search costs $0.01 USDC per call via x402 on Solana. Use the x_payment tool for all requests. Use this when the built-in web_fetch tool fails or is blocked (anti-bot, JS-rendered pages, paywalled content).

Endpoints

Crawl Web Pages

Fetch and extract content from any URL. Automatically escalates through fetching tiers if blocked: fast HTTP -> headless browser -> stealth browser with proxy.

x_payment({
  "url": "https://web.surf.cascade.fyi/v1/crawl",
  "method": "POST",
  "params": "{\"url\": \"https://example.com\", \"format\": \"markdown\"}"
})

Body parameters:

ParamTypeDefaultDescription
urlstring-Single URL to crawl (required if no urls)
urlsstring[]-Multiple URLs to bulk crawl (required if no url)
formatstringmarkdownOutput format: markdown, html, or text
selectorstring-CSS selector to extract specific elements
proxybooleanfalseForce proxy usage (auto-enabled on stealth tier)

Single URL response:

{
  "status": 200,
  "content": ["# Page Title\n\nPage content in markdown..."],
  "url": "https://example.com/"
}

Bulk URL response:

[
  {"status": 200, "content": ["..."], "url": "https://example.com/"},
  {"status": 200, "content": ["..."], "url": "https://other.com/"}
]

Cascade escalation: The crawler automatically tries increasingly powerful methods:

  1. get - Fast HTTP request (cheapest, handles most static sites)
  2. fetch - Headless Chromium (for JS-rendered pages)
  3. stealthy_fetch - Stealth browser with proxy (bypasses Cloudflare, anti-bot)

Escalation triggers: HTTP 403/429/503, empty content, or content under 100 characters.

Search the Web

Search the web using Exa's search API. Returns titles, URLs, and text snippets.

x_payment({
  "url": "https://web.surf.cascade.fyi/v1/search",
  "method": "POST",
  "params": "{\"query\": \"x402 protocol crypto payments\", \"num_results\": 10}"
})

Body parameters:

ParamTypeDefaultDescription
querystringrequiredSearch query
num_results1-205Number of results to return

Response:

{
  "results": [
    {
      "title": "Page Title",
      "url": "https://example.com/page",
      "snippet": "Relevant text excerpt from the page..."
    }
  ]
}

Usage Patterns

Scrape a page as markdown
x_payment({
  "url": "https://web.surf.cascade.fyi/v1/crawl",
  "method": "POST",
  "params": "{\"url\": \"https://docs.solana.com\", \"format\": \"markdown\"}"
})
Extract specific elements with a CSS selector
x_payment({
  "url": "https://web.surf.cascade.fyi/v1/crawl",
  "method": "POST",
  "params": "{\"url\": \"https://news.ycombinator.com\", \"format\": \"html\", \"selector\": \".titleline\"}"
})
Bulk crawl multiple URLs
x_payment({
  "url": "https://web.surf.cascade.fyi/v1/crawl",
  "method": "POST",
  "params": "{\"urls\": [\"https://example.com\", \"https://httpbin.org/get\"], \"format\": \"text\"}"
})
Search and then crawl top results

First search:

x_payment({
  "url": "https://web.surf.cascade.fyi/v1/search",
  "method": "POST",
  "params": "{\"query\": \"ERC-8004 agent identity standard\", \"num_results\": 5}"
})

Then crawl the most relevant result:

x_payment({
  "url": "https://web.surf.cascade.fyi/v1/crawl",
  "method": "POST",
  "params": "{\"url\": \"https://eips.ethereum.org/EIPS/eip-8004\", \"format\": \"markdown\"}"
})

Cost

  • Crawl: $0.005 USDC per call (single or bulk)
  • Search: $0.01 USDC per call

All payments on Solana mainnet. Each request is a separate call. For bulk crawls, one payment covers all URLs in the batch.

Errors

HTTPMeaning
400Invalid parameters (check body format)
402Payment required (handled automatically by x_payment)
429Too many concurrent requests (retry later)
502Upstream crawl/search error

Comments

Markdown supported