The Problem
AI agents connected to multiple MCP servers need to make runtime decisions about which tool to use for a given query. Hardcoding tool selection means the agent cannot adapt when a server is down, a platform is more relevant than the default, or the query type changes mid-conversation. Developers end up writing brittle if-else routing logic that breaks when MCP servers add or remove tools.
The Scavio Solution
Let the agent discover available tools via MCP's tools/list protocol and select the best one based on the query context. Scavio's MCP server exposes 11 tools covering different search platforms, so the agent can route product queries to amazon_search, video queries to youtube_search, and general queries to google_search, all discovered dynamically. If one tool returns empty results, the agent can fallback to another tool from the same server without any code changes. The MCP protocol handles discovery; the LLM handles routing decisions.
Before
Before MCP-based routing, developers hardcoded tool selection logic: 'if query contains product, use Amazon scraper; else use Google scraper.' Adding a new platform meant updating the routing code, testing, and redeploying. When the Amazon scraper went down, the agent failed instead of falling back to Google.
After
After implementing MCP routing, the agent discovers all available tools at startup and picks the best one per query. Adding YouTube search required zero code changes because the agent discovered the new tool automatically. When Amazon search returned empty results, the agent transparently retried with Google search.
Who It Is For
AI agent developers building production systems that need dynamic tool routing across multiple search platforms without brittle hardcoded logic.
Key Benefits
- Dynamic tool discovery eliminates hardcoded routing
- Agent selects optimal platform per query context
- Transparent fallback when a tool returns empty results
- Zero code changes when new tools are added to the MCP server
- Single MCP server covers 5 platforms
Python Example
# Claude Desktop / Cursor MCP config (mcp_config.json)
# {
# "mcpServers": {
# "scavio": {
# "url": "https://mcp.scavio.dev/mcp",
# "headers": { "x-api-key": "your_scavio_api_key" }
# }
# }
# }
#
# The agent automatically discovers 11 tools:
# google_search, reddit_search, youtube_search,
# amazon_search, walmart_search, google_news,
# google_maps, google_jobs, google_shopping,
# google_finance, google_scholar
#
# Routing happens at the LLM level:
# - User asks about product prices -> agent picks amazon_search
# - User asks about tutorials -> agent picks youtube_search
# - User asks about community opinion -> agent picks reddit_searchJavaScript Example
// For programmatic MCP client setup:
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const transport = new StreamableHTTPClientTransport(
new URL('https://mcp.scavio.dev/mcp'),
{ requestInit: { headers: { 'x-api-key': process.env.SCAVIO_API_KEY } } }
);
const client = new Client({ name: 'my-agent', version: '1.0.0' });
await client.connect(transport);
// Discover all available tools
const { tools } = await client.listTools();
console.log(`Discovered ${tools.length} tools`);
// Call a specific tool
const result = await client.callTool({ name: 'google_search', arguments: { query: 'best crm 2026' } });Platforms Used
Web search with knowledge graph, PAA, and AI overviews
Community, posts & threaded comments from any subreddit
YouTube
Video search with transcripts and metadata
Amazon
Product search with prices, ratings, and reviews
Walmart
Product search with pricing and fulfillment data