Aperçu
n8n est une plateforme d'automatisation open-source populaire, et la connecter au serveur MCP de Scavio débloque des workflows alimentés par la recherche sans écrire de code personnalisé. Ce workflow montre comment configurer un déclencheur cron n8n qui appelle la recherche MCP Scavio quotidiennement, traite les résultats avec les nœuds intégrés de n8n, et achemine les données vers Google Sheets, Slack, ou toute autre destination prise en charge par n8n. Les exemples de code montrent la configuration du nœud de requête HTTP pour l'API de recherche et le point d'accès MCP.
Déclencheur
Déclencheur cron n8n (planification configurable)
Planification
Quotidien (configurable dans n8n)
Étapes du workflow
Configurer le déclencheur cron n8n
Configurez le nœud cron n8n pour qu'il se déclenche selon votre emploi du temps (par défaut : quotidien à 8h).
Configurer la requête HTTP vers Scavio
Configurez le nœud de requête HTTP n8n pour appeler l'API de recherche Scavio ou le point d'accès MCP avec votre clé API.
Analyser les résultats de recherche
Utilisez le nœud Set ou Function de n8n pour extraire les titres, URL, extraits et prix de la réponse.
Filtrer et transformer les données
Appliquez les nœuds IF ou Switch de n8n pour filtrer les résultats par pertinence, fourchette de prix ou autres critères.
Acheminer vers la destination
Envoyez les données traitées vers Google Sheets, Slack, Airtable ou tout nœud de sortie pris en charge par n8n.
Implémentation Python
import requests, os, json
# This Python script replicates what the n8n workflow does,
# useful for testing the API call before configuring n8n nodes.
API_KEY = os.environ["SCAVIO_API_KEY"]
# Option 1: Direct search API (simpler)
def search_direct(query: str, platform: str = "google") -> dict:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": query, "platform": platform},
timeout=15,
)
resp.raise_for_status()
return resp.json()
# Option 2: MCP endpoint (for MCP-compatible tools)
def search_mcp(query: str) -> dict:
resp = requests.post(
"https://mcp.scavio.dev/mcp",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0", "id": 1,
"method": "tools/call",
"params": {"name": "search", "arguments": {"query": query, "country_code": "us"}},
},
timeout=15,
)
return resp.json().get("result", {})
# n8n HTTP Request node configuration (for reference):
# Method: POST
# URL: https://api.scavio.dev/api/v1/search
# Headers: x-api-key = {{$env.SCAVIO_API_KEY}}
# Body (JSON): {"query": "{{$json.search_term}}", "platform": "google"}
queries = ["best project management tools 2026", "remote work software trends"]
for q in queries:
data = search_direct(q)
results = data.get("organic", [])[:5]
print(f"Query: {q}")
for r in results:
print(f" {r.get('title', '')} - {r.get('url', '')}")Implémentation JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
// Option 1: Direct search API
async function searchDirect(query, platform='google') {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method:'POST',
headers:{'x-api-key':API_KEY, 'Content-Type':'application/json'},
body:JSON.stringify({query, platform}),
});
return r.json();
}
// Option 2: MCP endpoint
async function searchMcp(query) {
const r = await fetch('https://mcp.scavio.dev/mcp', {
method:'POST',
headers:{'Authorization':'Bearer '+API_KEY, 'Content-Type':'application/json'},
body:JSON.stringify({jsonrpc:'2.0', id:1, method:'tools/call', params:{name:'search', arguments:{query, country_code:'us'}}}),
});
return (await r.json()).result || {};
}
// n8n Function node example: transform Scavio results for Google Sheets
function transformForSheets(results) {
return results.map((r,i) => ({position:i+1, title:r.title||'', url:r.url||'', snippet:r.snippet||''}));
}
const queries = ['best project management tools 2026', 'remote work software trends'];
for (const q of queries) {
const data = await searchDirect(q);
const rows = transformForSheets((data.organic || []).slice(0,5));
console.log('Query: '+q);
rows.forEach(r => console.log(' '+r.position+'. '+r.title+' - '+r.url));
}Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA