Overview
AI agents that need data from Google, TikTok, and Maps typically require three separate API integrations with three auth flows and three schemas. This workflow connects the agent to Scavio's MCP server once and orchestrates calls across all services through the MCP tool protocol. The agent discovers available tools dynamically.
Trigger
Agent task request that requires multi-platform data.
Schedule
On-demand
Workflow Steps
Connect to MCP Server
Establish a single MCP connection to mcp.scavio.dev/mcp with the API key.
Discover Available Tools
Call tools/list to discover what search, TikTok, and maps tools are available on the server.
Plan Tool Calls
Based on the agent task, determine which combination of tools to call and in what order.
Execute Tool Chain
Call each tool via tools/call through the MCP connection. Collect results.
Aggregate Results
Combine results from multiple tool calls into a unified response for the agent's decision layer.
Python Implementation
import requests, os, json
API_KEY = os.environ["SCAVIO_API_KEY"]
MCP_URL = "https://mcp.scavio.dev/mcp"
MH = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
def mcp_call(method: str, params: dict = None) -> dict:
payload = {"jsonrpc": "2.0", "id": 1, "method": method}
if params:
payload["params"] = params
resp = requests.post(MCP_URL, headers=MH, json=payload, timeout=15)
return resp.json().get("result", {})
def orchestrate_market_research(brand: str) -> dict:
"""Multi-service research through single MCP connection."""
# Search for brand on Google
google_data = mcp_call("tools/call", {
"name": "search",
"arguments": {"query": f"{brand} reviews 2026", "country_code": "us"}
})
# Search for brand on YouTube
youtube_data = mcp_call("tools/call", {
"name": "search",
"arguments": {"query": brand, "platform": "youtube", "country_code": "us"}
})
# Check physical presence on Maps
maps_data = mcp_call("tools/call", {
"name": "search",
"arguments": {"query": f"{brand} near me", "platform": "google-maps", "country_code": "us"}
})
return {
"brand": brand,
"google": google_data,
"youtube": youtube_data,
"maps": maps_data,
}
result = orchestrate_market_research("lululemon")
print(f"Market research for {result['brand']}: {len(str(result))} chars of data")JavaScript Implementation
const MCP_URL = 'https://mcp.scavio.dev/mcp';
const MH = {'Authorization': 'Bearer '+process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function mcpCall(method, params) {
const payload = {jsonrpc:'2.0', id:1, method};
if (params) payload.params = params;
const r = await fetch(MCP_URL, {method:'POST', headers:MH, body:JSON.stringify(payload)});
return (await r.json()).result || {};
}
async function orchestrateMarketResearch(brand) {
const google = await mcpCall('tools/call', {name:'search', arguments:{query:brand+' reviews 2026', country_code:'us'}});
const youtube = await mcpCall('tools/call', {name:'search', arguments:{query:brand, platform:'youtube', country_code:'us'}});
const maps = await mcpCall('tools/call', {name:'search', arguments:{query:brand+' near me', platform:'google-maps', country_code:'us'}});
return {brand, google, youtube, maps};
}
const result = await orchestrateMarketResearch('lululemon');
console.log('Market research for '+result.brand+': '+JSON.stringify(result).length+' chars of data');Platforms Used
Web search with knowledge graph, PAA, and AI overviews
YouTube
Video search with transcripts and metadata
Google Maps
Local business search with ratings and contact info
TikTok
Trending video, creator, and product discovery