Claude's MCP integration lets you connect external data sources directly into your conversations and workflows. For research tasks, adding a web search MCP server means Claude can query live SERPs, extract data from pages, and synthesize findings without you copying and pasting URLs. This tutorial shows how to configure the Scavio MCP server for Claude, set up research workflow instructions, and build reusable research patterns. You will have a Claude setup that can run multi-step research with live web data on demand.
Prerequisites
- Claude Desktop or Claude Code installed
- A Scavio API key from scavio.dev
- Basic familiarity with MCP configuration
Walkthrough
Step 1: Configure the MCP server
Add the Scavio MCP server to your Claude configuration file.
# Add to your Claude MCP configuration:
# Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
# Claude Code: .mcp.json in project root
#
# {
# "mcpServers": {
# "scavio": {
# "url": "https://mcp.scavio.dev/mcp",
# "headers": {
# "x-api-key": "YOUR_SCAVIO_API_KEY"
# }
# }
# }
# }Step 2: Test the connection
Verify Claude can access the search tool by running a simple query.
# In Claude, ask:
# "Use the scavio search tool to find the latest
# information about MCP server architecture"
#
# Claude should call the search tool and return
# structured results from the webStep 3: Build a research workflow
Create a research pattern that Claude follows for multi-step investigations.
# Research workflow instructions (save as a skill or system prompt):
# When asked to research a topic:
# 1. Search for the main topic to get an overview
# 2. Identify 3 key subtopics from the results
# 3. Search each subtopic for deeper details
# 4. Extract key findings from PAA questions
# 5. Synthesize a report with sourcesStep 4: Verify with direct API call
Test the search API directly to ensure it returns the data you expect.
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": "MCP server architecture best practices"})
data = resp.json()
for r in data.get("organic_results", [])[:3]:
print(f"{r['title']}")
print(f" {r.get('snippet','')[:100]}")Python Example
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def research(topic):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": topic})
d = resp.json()
return {"results": d.get("organic_results",[])[:5],
"questions": [q.get("question","") for q in d.get("people_also_ask",[])]}
r = research("MCP server architecture")
for q in r["questions"]: print(f"Q: {q}")JavaScript Example
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function research(topic) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: topic})
});
const d = await r.json();
return {results: (d.organic_results||[]).slice(0,5),
questions: (d.people_also_ask||[]).map(q=>q.question)};
}
research("MCP server architecture").then(r =>
r.questions.forEach(q => console.log("Q:", q))
);Expected Output
A Claude MCP configuration with web search access that enables multi-step research workflows with live SERP data, source citations, and PAA analysis.