Claude Code users running through Zaiglm or a custom provider config often lose the built-in WebSearch tool. This tutorial restores it by registering the Scavio MCP server, which gives Claude Code multi-surface search regardless of the underlying model provider.
Prerequisites
- Claude Code latest
- A Scavio API key
- Node.js 20+
Walkthrough
Step 1: Locate the Claude Code config
Config lives at ~/.claude/settings.json or per-project .claude/settings.json.
code ~/.claude/settings.jsonStep 2: Add the Scavio MCP
Works regardless of the model provider (Zaiglm, direct Anthropic, OpenRouter).
{
"mcpServers": {
"scavio": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.scavio.dev/mcp"],
"env": { "SCAVIO_API_KEY": "${SCAVIO_API_KEY}" }
}
}
}Step 3: Export the API key
Make it available to the Claude Code process.
echo 'export SCAVIO_API_KEY=sk_live_...' >> ~/.zshrc && source ~/.zshrcStep 4: Restart Claude Code
Reload so the MCP discovery runs.
# Exit and relaunch
claudeStep 5: Verify the tool is active
Run /mcp in Claude Code to list loaded servers.
> /mcp
# Expect scavio listed with scavio_search, scavio_reddit, scavio_youtubePython Example
# Claude Code uses MCP directly; Python parity call:
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': 'zaiglm claude code web search'})
print(r.json().get('organic_results', [])[:3])JavaScript Example
const API_KEY = process.env.SCAVIO_API_KEY;
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: 'zaiglm claude code web search' })
});
console.log(((await r.json()).organic_results || []).slice(0, 3));Expected Output
Claude Code exposes scavio_* tools regardless of model provider. The agent calls them automatically for queries that need fresh data.