No API key, no account, no rate limits. Just pay and search.
Pick your setup. All you need is a wallet with USDC on Base.
# Add search402 as an MCP server in Claude Code claude mcp add search402 -- npx tsx /path/to/search402/mcp/server.ts # Set your private key (wallet with USDC on Base) export PRIVATE_KEY="0xYOUR_PRIVATE_KEY" # That's it. Claude Code can now search the web and fetch pages. # Try asking: "Search for the latest AI news"
// Add to ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { "search402": { "command": "npx", "args": ["tsx", "/path/to/search402/mcp/server.ts"], "env": { "PRIVATE_KEY": "0xYOUR_PRIVATE_KEY" } } } } // Restart Claude Desktop. Done. // Try: "Search for x402 protocol" or "Fetch https://example.com"
// Add to .cursor/mcp.json in your project root { "mcpServers": { "search402": { "command": "npx", "args": ["tsx", "/path/to/search402/mcp/server.ts"], "env": { "PRIVATE_KEY": "0xYOUR_PRIVATE_KEY" } } } } // Restart Cursor. The agent can now search and fetch.
import { x402Client, x402HTTPClient } from "@x402/core/client"; import { registerExactEvmScheme } from "@x402/evm/exact/client"; // Setup (once) const client = new x402Client(); registerExactEvmScheme(client, { signer: wallet }); const http = new x402HTTPClient(client); // Search the web — payment is automatic const results = await http.get("https://search402.dev/v1/search?q=latest+AI+news"); // Fetch any page as markdown const page = await http.get("https://search402.dev/v1/fetch?url=https://example.com");
Structured results with titles, URLs, snippets, and knowledge panels. News and image search included.
GET /v1/search?q=...
Fetch any URL and get clean, LLM-ready markdown. No HTML parsing on your end.
GET /v1/fetch?url=...
No subscriptions. No accounts. USDC on Base settles instantly via the x402 protocol.
Drop-in MCP server for Claude Desktop and Cursor. Your agent gets web access in seconds.