ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear una lista de leads locales en Claude Code con Scavio MCP
Tutorial

Cómo crear una lista de leads locales en Claude Code con Scavio MCP

Añade el MCP de Scavio a Claude Code, pide al agente buscar "<oficio> en <ciudad>", recorre ciudades, deduplica por dominio y exporta un CSV.

Obtener clave API gratisDocumentacion API

Crear una lista de leads de negocios locales suele llevar más tiempo que el propio contacto. Aquí tienes el camino rápido: añade el servidor MCP alojado de Scavio a Claude Code y luego pide al agente que busque "<oficio> en <ciudad>" en tus ciudades objetivo. Scavio ejecuta una búsqueda real de Google por consulta y devuelve el nombre del negocio, el sitio web y el snippet. Indica al agente que recorra las ciudades, deduplique por dominio y escriba un CSV. Obtienes la capa de descubrimiento en minutos en lugar de una tarde de copiar y pegar. Un aviso honesto: esto te da nombres y sitios, no correos ni teléfonos verificados. El enriquecimiento es un paso aparte, al final.

Requisitos previos

  • Una clave de API de Scavio (registro gratis, 50 créditos incluidos)
  • Claude Code instalado, o cualquier cliente MCP (Cursor, VS Code, Windsurf, opencode)
  • Python 3.9+ o Node 18+ si quieres el bucle REST automatizado

Guia paso a paso

Paso 1: Añade el servidor MCP de Scavio a Claude Code

Abre la configuración MCP de Claude Code y registra el servidor alojado de Scavio. Se autentica con tu clave de API en la cabecera x-api-key. Sin instalación local, sin Docker. Tras guardar, reinicia Claude Code y las herramientas de búsqueda de Scavio aparecerán en el conjunto de herramientas del agente.

JSON
{
  "mcpServers": {
    "scavio": {
      "url": "https://mcp.scavio.dev/mcp",
      "headers": {
        "x-api-key": "YOUR_SCAVIO_API_KEY"
      }
    }
  }
}

Paso 2: Pide al agente un oficio en una ciudad

Empieza con una sola consulta para confirmar la conexión. Pídeselo a Claude Code en lenguaje natural. El agente llama a la herramienta de Google de Scavio, que devuelve resultados orgánicos con listados de negocios locales: nombre, enlace y snippet. Verifica la forma antes de escalar.

Text
Prompt to Claude Code:

"Use the Scavio MCP to search Google for
'plumbers in Austin' with light_request false.
List each result's business name, website, and snippet."

Paso 3: Recorre todas tus ciudades objetivo

Ahora dale al agente la lista completa. Ejecuta una búsqueda por ciudad y recopila cada negocio que encuentra. Mantén light_request en false para obtener resultados orgánicos completos con listados locales. Cada consulta cuesta 2 créditos.

Text
Prompt to Claude Code:

"Run the Scavio Google search for 'plumbers in <city>'
for each of: Austin, Dallas, Houston, San Antonio, Fort Worth.
Collect business name, website, and snippet from every result."

Paso 4: Deduplica por dominio y exporta un CSV

La misma cadena o directorio suele aparecer en varias ciudades. Indica al agente que colapse las filas que comparten dominio de sitio web y luego escriba el resultado en un archivo. Acabas con una lista limpia, una fila por negocio.

Text
Prompt to Claude Code:

"Dedupe the results by website domain, keeping the first
occurrence. Write a CSV called leads.csv with columns:
business_name, website, city, snippet."

Paso 5: Ejecútalo sin interfaz con la API REST

Para un trabajo repetible (actualización nocturna, lista de ciudades más larga), salta el chat y llama directamente al endpoint REST. Los mismos datos, programables. Los ejemplos de Python y Node abajo recorren ciudades, deduplican por dominio y escriben el CSV sin un agente en el bucle.

Bash
curl -X POST https://api.scavio.dev/api/v1/google \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"plumbers in Austin","light_request":false}'

Paso 6: Enriquecer: convertir sitios en leads contactables

La búsqueda de Google de Scavio te da la capa de descubrimiento: nombre del negocio y sitio web. No devuelve correos verificados ni entregabilidad de teléfonos. Ese es un paso de enriquecimiento aparte (rastrea la página de contacto, usa un buscador de correos, verifica la entregabilidad). Si necesitas campos ricos como valoraciones, horarios y número de reseñas de una vez, un scraper de Google Maps devuelve más por fila, pero cuesta más y arriesga bloqueos de IP. Para la mayoría de listas de leads, el descubrimiento de Scavio más un enriquecimiento barato es suficiente.

Text
# Enrichment is a separate pass, e.g.:
# 1. For each website, fetch /contact
# 2. Extract emails with a regex or finder API
# 3. Verify deliverability before outreach

Ejemplo en Python

Python
import csv
import os
from urllib.parse import urlparse
import requests

API_KEY = os.environ["SCAVIO_API_KEY"]
CITIES = ["Austin", "Dallas", "Houston", "San Antonio", "Fort Worth"]
TRADE = "plumbers"

def search(query):
    r = requests.post(
        "https://api.scavio.dev/api/v1/google",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"query": query, "light_request": False},
        timeout=60,
    )
    r.raise_for_status()
    return r.json().get("organic", [])

def domain(url):
    return urlparse(url).netloc.lower().replace("www.", "")

seen = set()
rows = []
for city in CITIES:
    for item in search(f"{TRADE} in {city}"):
        link = item.get("link", "")
        d = domain(link)
        if not d or d in seen:
            continue
        seen.add(d)
        rows.append({
            "business_name": item.get("title", ""),
            "website": link,
            "city": city,
            "snippet": item.get("snippet", ""),
        })

with open("leads.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.DictWriter(f, fieldnames=["business_name", "website", "city", "snippet"])
    w.writeheader()
    w.writerows(rows)

print(f"Wrote {len(rows)} leads to leads.csv")

Ejemplo en JavaScript

JavaScript
import fs from "node:fs";

const API_KEY = process.env.SCAVIO_API_KEY;
const CITIES = ["Austin", "Dallas", "Houston", "San Antonio", "Fort Worth"];
const TRADE = "plumbers";

async function search(query) {
  const res = await fetch("https://api.scavio.dev/api/v1/google", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ query, light_request: false }),
  });
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
  const data = await res.json();
  return data.organic || [];
}

function domain(url) {
  try {
    return new URL(url).hostname.toLowerCase().replace("www.", "");
  } catch {
    return "";
  }
}

const seen = new Set();
const rows = [];
for (const city of CITIES) {
  const results = await search(`${TRADE} in ${city}`);
  for (const item of results) {
    const link = item.link || "";
    const d = domain(link);
    if (!d || seen.has(d)) continue;
    seen.add(d);
    rows.push({ business_name: item.title || "", website: link, city, snippet: item.snippet || "" });
  }
}

const header = "business_name,website,city,snippet\n";
const body = rows
  .map((r) => [r.business_name, r.website, r.city, r.snippet].map((v) => `"${String(v).replace(/"/g, '""')}"`).join(","))
  .join("\n");
fs.writeFileSync("leads.csv", header + body);
console.log(`Wrote ${rows.length} leads to leads.csv`);

Salida esperada

JSON
business_name,website,city,snippet
Daniel's Plumbing & Air Conditioning,https://danielsaustin.com,Austin,"24/7 plumbing repair and water heater installation in Austin, TX."
Reliant Plumbing,https://reliantplumbing.com,Austin,"Same-day plumbers serving Austin and surrounding areas."
Baker Brothers Plumbing,https://bakerbrothersplumbing.com,Dallas,"Licensed plumbers in Dallas-Fort Worth since 1945."
Abacus Plumbing,https://abacusplumbing.net,Houston,"Award-winning plumbing, AC, and electrical in Houston."

Wrote 47 leads to leads.csv

Tutoriales relacionados

    Preguntas frecuentes

    La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

    Una clave de API de Scavio (registro gratis, 50 créditos incluidos). Claude Code instalado, o cualquier cliente MCP (Cursor, VS Code, Windsurf, opencode). Python 3.9+ o Node 18+ si quieres el bucle REST automatizado. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

    Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

    Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

    Recursos relacionados

    Best Of

    La mejor API de búsqueda para Claude Code en 2026

    Read more
    Use Case

    Servidor de búsqueda personalizado MCP

    Read more
    Best Of

    Las mejores herramientas de búsqueda de MCP para Claude Code en 2026

    Read more
    Use Case

    Informes SEO semanales con Claude Code

    Read more
    Workflow

    Claude Code Web Search via Scavio MCP

    Read more
    Solution

    Reemplazar Web MCP integrado en Claude

    Read more

    Empieza a construir

    Añade el MCP de Scavio a Claude Code, pide al agente buscar "<oficio> en <ciudad>", recorre ciudades, deduplica por dominio y exporta un CSV.

    Obtener clave API gratuitaLeer la documentacion
    ScavioScavio

    API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

    Producto

    • Funciones
    • Precios
    • Panel
    • Afiliados

    Desarrolladores

    • Documentacion
    • Referencia de API
    • Inicio rapido
    • Integracion MCP
    • Python SDK

    Alternativas

    • Alternativa a Tavily
    • Alternativa a SerpAPI
    • Alternativa a Firecrawl
    • Alternativa a Exa

    Herramientas

    • Formateador JSON
    • cURL a codigo
    • Contador de tokens
    • Todas las herramientas

    © 2026 Scavio. Todos los derechos reservados.

    Featured on TAAFT
    Terminos de servicioPolitica de privacidad