switch402

How to Add Web Scraping to Cursor with a Remote MCP Server

Add switch402's remote MCP endpoint to Cursor's mcp.json so the agent can call its nine tools: scrape, scrape_lite, map, metadata, screenshot, screenshot_full, search, pdf and quote. Read the payment note first: paid tools need an x402-capable client.

Payment note: switch402 speaks MCP Streamable HTTP at https://api.switch402.com/mcp with no sign-in. The free quote tool works in any MCP client. The paid tools (scrape $0.008, scrape_lite $0.003, map $0.001, metadata $0.001, screenshot $0.008, screenshot_full $0.012, search $0.008, pdf $0.008) answer an unpaid call with x402 payment terms; a client that cannot pay x402 will show those terms instead of the page. To get pages, use an x402-capable MCP client or wrapper that retries with params._meta["x402/payment"], or call the HTTP API from code with an x402 library.

Steps

  1. Open mcp.json. Create .cursor/mcp.json in your project or ~/.cursor/mcp.json for all projects (per Cursor's MCP docs, checked Oct 29, 2026).
  2. Add the server URL. Add a remote server entry with "url": "https://api.switch402.com/mcp". Cursor supports Streamable HTTP; no headers or keys are needed.
  3. Enable it. Make sure the server is enabled in Cursor, then check that the nine tools are listed: scrape, scrape_lite, map, metadata, screenshot, screenshot_full, search, pdf and quote. MCP logs are in the Output panel under "MCP Logs".
  4. Paid scraping. Every tool except quote is paid and returns x402 payment terms unless the client pays them. Use an x402-capable MCP client or wrapper, or the HTTP API from code.

Code

.cursor/mcp.json

{
  "mcpServers": {
    "switch402": {
      "url": "https://api.switch402.com/mcp"
    }
  }
}

Check the endpoint yourself (curl)

# 1) initialize
curl -s -X POST https://api.switch402.com/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -H 'User-Agent: my-agent/1.0' \
  -d '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'

# 2) list tools: scrape, scrape_lite, map, metadata, screenshot, screenshot_full, search, pdf, quote
curl -s -X POST https://api.switch402.com/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -H 'User-Agent: my-agent/1.0' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# 3) free quote
curl -s -X POST https://api.switch402.com/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -H 'User-Agent: my-agent/1.0' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"quote","arguments":{"url":"https://example.com"}}}'

You pay only for the pages you actually fetch: $0.008 per standard page on /v1/scrape, $0.003 per lite call on /v1/scrape/lite, in USDC on Base and charged only on success. No subscription or unused credits; optional prepaid packs and a $10 monthly plan.

FAQ

Which transport should I pick in Cursor?
Streamable HTTP: switch402 serves MCP over Streamable HTTP at https://api.switch402.com/mcp.
Will Cursor pay for scrapes by itself?
Not unless your setup can pay x402. The paid tools return x402 terms; the free quote tool works without payment.
Do I need headers or an API key in mcp.json?
No. switch402 needs no account or key: paid tools are paid per call over x402. If you bought an optional prepaid key, add it as an Authorization: Bearer header instead.

Related