Resumen
Connect AI coding agents to live web datos a traves de MCP (Model Context Protocol) search servidores. El agent calls un structured search herramienta instead of fetching raw HTML, getting analizado resultados con titles, fragmentos, y URLs. Este proporciona web grounding mientras reducing prompt injection risk de raw pagina contenido.
Desencadenador
Automatic on agent search herramienta calls
Programación
Automatic on agent search calls
Pasos del flujo de trabajo
Configurar MCP servidor
Add el SERP MCP servidor to your agent config (.mcp.json for Claude Code, MCP configuraciones for Cursor). Proporcionar your clave API in el Authorization encabezado.
Agent calls search herramienta
Cuando el agent necesita web datos, it calls el MCP search herramienta con un consulta. El MCP servidor routes el solicitud to el SERP API.
Analizar structured resultados
El MCP servidor returns analizado JSON: titles, fragmentos, URLs, PAA questions, y AI Overview datos. No raw HTML enters el agent context.
Agent usa grounded datos
El agent incorporates verified, actual datos en its respuesta. Precios, versiones, y caracteristica claims come de live resultados de busqueda, no training datos.
Token-efficient context
Structured resultados usar 600-800 tokens vs 4,000-8,000 for raw HTML. El agent context stays eficiente mientras aun teniendo web acceso.
Implementacion en Python
# .mcp.json configuration for Claude Code
# {
# "mcpServers": {
# "scavio": {
# "url": "https://mcp.scavio.dev/mcp",
# "headers": {
# "Authorization": "Bearer YOUR_API_KEY"
# }
# }
# }
# }
# For custom agents using MCP programmatically:
import requests, os
H = {"x-api-key": os.environ["SCAVIO_API_KEY"], "Content-Type": "application/json"}
def search_tool(query, platform="google"):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers=H, json={"query": query, "platform": platform,
"country_code": "us"}).json()
return {
"results": [{"title": r["title"], "snippet": r.get("snippet", ""),
"url": r["link"]} for r in resp.get("organic_results", [])[:5]],
"paa": [q["question"] for q in resp.get("people_also_ask", [])],
"related": [r["query"] for r in resp.get("related_searches", [])],
}
# Agent calls this tool when it needs web data
grounded = search_tool("next.js 15 release date")
print(f"Top result: {grounded['results'][0]['title']}")
print(f"Related: {grounded['related'][:3]}")Implementacion en JavaScript
// MCP config for Cursor: add to MCP settings
// Server URL: https://mcp.scavio.dev/mcp
// Auth: Bearer YOUR_API_KEY
// For custom agent integration:
const H = { "x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json" };
async function searchTool(query) {
const resp = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({ query, country_code: "us" })
}).then(r => r.json());
return {
results: (resp.organic_results || []).slice(0, 5).map(r => ({
title: r.title, snippet: r.snippet || "", url: r.link
})),
paa: (resp.people_also_ask || []).map(q => q.question),
};
}
searchTool("next.js 15 release date").then(r =>
console.log(`Top: ${r.results[0]?.title}, PAA: ${r.paa.length} questions`));Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit
YouTube
Búsqueda de videos con transcripciones y metadatos