MCP + x402 on Arc Testnet USDC

eyez

A pay-per-capture headless browser API for agents. Pay 0.001 USDC on Arc Testnet through x402 and receive structured page content from JavaScript-heavy sites.

$0.001 USDC per successful capture request
eip155:5042002 Arc Testnet x402 network
capturePage MCP tool exposed over stdio

Integrations

Run the eyez server locally or on a host, then register the MCP wrapper in your MCP-aware client.

Wallet configuration required

The server and client both need EVM keys because x402 payments are settled on Arc Testnet.

  • Server: set PAY_TO to the address receiving payments.
  • Server: set FACILITATOR_PRIVATE_KEY for x402 settlement and optional refunds.
  • Client/MCP: set EVM_PRIVATE_KEY so the MCP tool can pay for captures.

Use a funded test wallet for development. Never commit private keys.

Server environment

PORT=3001
PAY_TO=0xYourReceivingAddress
FACILITATOR_PRIVATE_KEY=0xYourServerPrivateKey
EVM_PRIVATE_KEY=0xYourClientPrivateKey

# Optional
ARC_RPC_URL=https://rpc.testnet.arc.network
PRICE_USDC=0.001
REFUND_AMOUNT_USDC=0.001

MCP host config

{
  "mcpServers": {
    "eyez": {
      "command": "node",
      "args": ["/path/to/eyez/dist/mcpServer.js"],
      "env": {
        "EVM_PRIVATE_KEY": "0xYOUR_CLIENT_PRIVATE_KEY",
        "EYEZ_URL": "http://localhost:3001"
      }
    }
  }
}
Start the API with pnpm start. In a separate shell, test a paid capture with pnpm demo -- https://example.com.

HTTP API

Free health and service metadata endpoints sit next to the paid browser capture endpoint.

GET / Returns service name, price, network, and usage.
GET /health Returns a free health check response.
GET /capture?url=<encoded_url> Paid x402 endpoint. Captures public http and https pages only.

Example response

{
  "title": "Example Domain",
  "description": "",
  "headings": [{ "level": "H1", "text": "Example Domain" }],
  "links": [{ "text": "Learn more", "href": "https://www.iana.org/domains/example" }],
  "content": "Example Domain...",
  "url": "https://example.com",
  "capturedAt": "2026-05-25T12:00:00.000Z",
  "captureTimeMs": 3325,
  "payment": { "price": "$0.001", "network": "eip155:5042002" }
}

Tool list

The MCP server exposes one paid browser-capture tool.

  • capturePage - Capture a JavaScript-heavy webpage through the eyez API. Use this when a plain HTTP fetch cannot see useful page text from SPAs, social apps, DeFi apps, or other browser-captured surfaces.

Arc + USDC network

Current defaults used by the service.

Network Arc Testnet
Chain ID 5042002
x402 network eip155:5042002
Currency USDC
USDC asset 0x3600000000000000000000000000000000000000
Explorer testnet.arcscan.app

Capture guardrails

eyez rejects malformed URLs and private network targets before payment is requested. Failed captures can trigger refund logic when the payer address is available in the x402 payment header.