Cree un flujo de trabajo de enriquecimiento de clientes potenciales utilizando MCP configurando Scavio como servidor de búsqueda en Claude Desktop o Claude Code y luego solicitando al agente que investigue y enriquezca los registros de la empresa a partir de un CSV o una lista. El enfoque MCP elimina la necesidad de código personalizado: usted describe qué datos necesita y el agente ejecuta las búsquedas, analiza los resultados y formatea la salida enriquecida. Este tutorial configura la configuración de MCP, diseña el mensaje de enriquecimiento y muestra cómo procesar un lote de clientes potenciales.
Requisitos previos
- Claude Desktop o Claude Code instalado
- Una clave API de Scavio de scavio.dev
- Un CSV o lista de nombres de empresas para enriquecer
- Familiaridad básica con la configuración del servidor MCP
Guia paso a paso
Paso 1: Configurar Scavio como servidor MCP
Agregue el punto final Scavio MCP a su configuración de Claude Desktop o Claude Code para que el agente pueda llamar a las herramientas de búsqueda.
// .mcp.json or claude_desktop_config.json:
{
"mcpServers": {
"scavio": {
"url": "https://mcp.scavio.dev/mcp",
"headers": { "x-api-key": "your_scavio_api_key" }
}
}
}Paso 2: Diseñar el mensaje de enriquecimiento
Cree un mensaje estructurado que le indique al agente exactamente qué campos completar para cada empresa.
# Enrichment prompt for Claude:
ENRICHMENT_PROMPT = """
For each company in the list below, search Google to find:
1. Company domain (official website URL)
2. One-line description (what they do)
3. Founding year
4. Estimated company size (employees)
5. Recent funding (if any, from last 2 years)
6. Key technology signals (languages, frameworks, cloud)
Output as a JSON array with fields:
{domain, description, founded, size, funding, tech_signals}
Companies to enrich:
- Vercel
- Supabase
- Resend
- Linear
"""Paso 3: Procesar resultados por lotes
Después de que el agente devuelva datos enriquecidos, valide el resultado y guárdelo para su CRM o herramienta de divulgación.
import json
def validate_enrichment(data: list) -> list:
valid = []
for record in data:
if record.get('domain') and record.get('description'):
valid.append(record)
else:
print(f'Incomplete record: {record}')
return valid
def save_enriched(records: list, output_path: str = 'enriched_leads.json'):
with open(output_path, 'w') as f:
json.dump(records, f, indent=2)
print(f'Saved {len(records)} enriched leads to {output_path}')
# After Claude returns the enriched JSON:
# enriched = json.loads(claude_response)
# valid = validate_enrichment(enriched)
# save_enriched(valid)Paso 4: Automatizar con la API para lotes más grandes
Para lotes de más de 10 empresas, utilice la API de Scavio directamente para evitar los límites de velocidad de MCP y procese en paralelo.
import requests, os
from concurrent.futures import ThreadPoolExecutor
API_KEY = os.environ['SCAVIO_API_KEY']
def enrich_company_api(name: str) -> dict:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'google', 'query': f'{name} company about funding tech stack'}, timeout=15)
results = resp.json().get('organic_results', [])
return {
'name': name,
'domain': results[0].get('link', '').split('/')[2] if results else '',
'snippets': [r.get('snippet', '') for r in results[:3]],
}
companies = ['Vercel', 'Supabase', 'Resend', 'Linear']
with ThreadPoolExecutor(max_workers=3) as pool:
enriched = list(pool.map(enrich_company_api, companies))
for e in enriched:
print(f'{e["name"]}: {e["domain"]}')Ejemplo en Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def enrich(name):
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': f'{name} company about'}).json()
results = data.get('organic_results', [])
return {'name': name, 'domain': results[0].get('link', '').split('/')[2] if results else '', 'snippet': results[0].get('snippet', '') if results else ''}
for c in ['Vercel', 'Supabase', 'Linear']:
print(enrich(c))Ejemplo en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function enrich(name) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H,
body: JSON.stringify({platform: 'google', query: `${name} company about`})
});
const results = (await r.json()).organic_results || [];
return {name, domain: results[0]?.link ? new URL(results[0].link).hostname : '', snippet: results[0]?.snippet || ''};
}
Promise.all(['Vercel', 'Supabase'].map(enrich)).then(console.log);Salida esperada
A JSON array of enriched lead records with domain, description, funding data, and tech signals for each company, ready for CRM import.