Switching from Exa to Scavio MCP takes one config file change. Scavio covers Google, Amazon, Reddit, YouTube, and TikTok under a single API key, so you get broader coverage without adding more MCP entries.
Prerequisites
- Claude Code or Cursor installed
- Scavio API key from scavio.dev
Walkthrough
Step 1: Remove Exa from .mcp.json
Open your project's .mcp.json (or the global ~/.claude/.mcp.json) and delete the Exa entry.
{
"mcpServers": {
"exa": {
"command": "npx",
"args": ["exa-mcp-server"],
"env": { "EXA_API_KEY": "your-exa-key" }
}
}
}Step 2: Add Scavio MCP entry
Replace with the Scavio MCP entry. Scavio's MCP server is published to npm as @scavio/mcp-server.
{
"mcpServers": {
"scavio": {
"command": "npx",
"args": ["-y", "@scavio/mcp-server"],
"env": { "SCAVIO_API_KEY": "your-scavio-api-key" }
}
}
}Step 3: Restart Claude Code and verify
Close and reopen Claude Code. In the chat, ask it to search for something to confirm the tool is active.
# In Claude Code chat:
# "Search for 'best python web frameworks 2026' and summarize the top results"
# Expected: Claude calls scavio:search and returns structured results
# If the tool does not appear, run:
npx @scavio/mcp-server --versionStep 4: Test with a multi-platform query
Verify Scavio's broader coverage by searching across platforms Exa did not support.
# In Claude Code chat:
# "Search Amazon for 'noise cancelling headphones under $100' and list the top 3 products with prices"
# "Search Reddit for recent discussions about LangChain vs LlamaIndex"Python Example
import requests
API_KEY = "your-scavio-api-key"
BASE_URL = "https://api.scavio.dev/api/v1"
def search(query, platform=None, num_results=10):
payload = {"query": query, "num_results": num_results}
if platform:
payload["platform"] = platform
response = requests.post(
f"{BASE_URL}/search",
json=payload,
headers={"x-api-key": API_KEY}
)
response.raise_for_status()
return response.json()
# Google search (same as Exa)
results = search("best python web frameworks 2026")
for r in results.get("organic_results", []):
print(r["title"], r["link"])
# Amazon search (not available in Exa)
amazon_results = search("noise cancelling headphones", platform="amazon")
for r in amazon_results.get("organic_results", []):
print(r["title"], r.get("price"))JavaScript Example
const API_KEY = 'your-scavio-api-key';
const BASE_URL = 'https://api.scavio.dev/api/v1';
async function search(query, platform = null, numResults = 10) {
const payload = { query, num_results: numResults };
if (platform) payload.platform = platform;
const res = await fetch(`${BASE_URL}/search`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': API_KEY
},
body: JSON.stringify(payload)
});
if (!res.ok) throw new Error(`Search failed: ${res.status}`);
return res.json();
}
// Google search
const results = await search('best python web frameworks 2026');
for (const r of results.organic_results ?? []) {
console.log(r.title, r.link);
}
// Amazon search
const amazon = await search('noise cancelling headphones', 'amazon');
for (const r of amazon.organic_results ?? []) {
console.log(r.title, r.price);
}Expected Output
{
"organic_results": [
{
"title": "FastAPI - Modern Python Web Framework",
"link": "https://fastapi.tiangolo.com",
"snippet": "FastAPI is a modern, fast web framework for building APIs with Python 3.8+",
"position": 1
}
],
"search_metadata": {
"query": "best python web frameworks 2026",
"total_results": "About 4,200,000 results"
}
}