ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Migrate from Exa to Scavio MCP
Tutorial

How to Migrate from Exa to Scavio MCP

Switch your MCP config from Exa to Scavio in Claude Code or Cursor in under 5 minutes. Covers .mcp.json setup, API key config, and result verification.

Get Free API KeyAPI Docs

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.

JSON
{
  "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.

JSON
{
  "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.

Bash
# 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 --version

Step 4: Test with a multi-platform query

Verify Scavio's broader coverage by searching across platforms Exa did not support.

Bash
# 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

Python
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

JavaScript
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

JSON
{
  "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"
  }
}

Related Tutorials

  • How to Use Scavio MCP in Cursor
  • How to Build an SEO Audit Agent in Claude Code
  • How to Build a Multi-Source Research Agent

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Claude Code or Cursor installed. Scavio API key from scavio.dev. A Scavio API key gives you 50 free credits on signup.

Yes. The free tier includes 50 credits on signup, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Use Case

Claude Code SEO Automation

Read more
Best Of

Best Search API for Claude Code in 2026

Read more
Best Of

Best MCP Search Tools for Claude Code in 2026

Read more
Use Case

Weekly SEO Reporting with Claude Code

Read more
Solution

Replace Built-In Web MCP in Claude

Read more
Workflow

Claude Code Web Search via Scavio MCP

Read more

Start Building

Switch your MCP config from Exa to Scavio in Claude Code or Cursor in under 5 minutes. Covers .mcp.json setup, API key config, and result verification.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy