Tutorial

How to Build a Repeatable AEO System with MCP for Local Businesses

Build a repeatable AEO measurement system using Scavio MCP. Same workflow runs across all SMB clients with one credit pool.

Local SEO and AEO agencies want a productized system: same setup runs across every SMB client. Scavio MCP plus Claude Desktop gives the agency a templated AEO workflow that delivers daily snapshots without per-client custom code.

Prerequisites

  • Claude Desktop or compatible MCP client
  • Scavio API key
  • Client list with brand keywords

Walkthrough

Step 1: Add Scavio MCP to Claude Desktop

Single hosted endpoint, no self-hosting.

JSON
// ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "scavio": {
      "url": "https://mcp.scavio.dev/mcp",
      "apiKey": "${SCAVIO_API_KEY}"
    }
  }
}

Step 2: Define client template

Markdown template with brand and keyword variables.

# Client: {{brand}}
Keywords: {{keywords}}
Market: {{city}}
Competitors: {{competitors}}

Step 3: Run daily snapshot

Claude with MCP queries Scavio for each keyword.

Text
// Prompt to Claude:
// 'For each keyword in client.md, query Scavio with include_ai_overview, list ranks plus citations.'

Step 4: Track Reddit brand mentions

Per-client Reddit scan.

Text
// Prompt:
// 'Search Reddit for {{brand}}, return last 30 days of mentions, sentiment summary.'

Step 5: Weekly client report

Claude composes the weekly markdown report.

Text
// Prompt:
// 'Generate week-over-week AEO report for {{brand}} from Scavio data.'

Python Example

Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']

def client_snapshot(brand, keywords, city):
    out = {}
    for k in keywords:
        r = requests.post('https://api.scavio.dev/api/v1/google',
            headers={'x-api-key': API_KEY},
            json={'query': f'{k} {city}', 'include_ai_overview': True}).json()
        out[k] = {'serp': r.get('organic_results',[])[:10], 'ao': r.get('ai_overview')}
    return out

print(client_snapshot('acme dental', ['best dentist', 'family dentist'], 'austin tx'))

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function clientSnapshot(brand, keywords, city) {
  const out = {};
  for (const k of keywords) {
    const r = await fetch('https://api.scavio.dev/api/v1/google', { method:'POST', headers:{'x-api-key':API_KEY,'Content-Type':'application/json'}, body: JSON.stringify({ query: `${k} ${city}`, include_ai_overview: true }) });
    out[k] = await r.json();
  }
  return out;
}

Expected Output

JSON
Per-client daily snapshot across SERP plus AI Overviews plus Reddit. Same MCP setup runs across N SMB clients with one credit pool. Weekly markdown report via Claude.

Related Tutorials

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 Desktop or compatible MCP client. Scavio API key. Client list with brand keywords. A Scavio API key gives you 500 free credits per month.

Yes. The free tier includes 500 credits per month, 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.

Start Building

Build a repeatable AEO measurement system using Scavio MCP. Same workflow runs across all SMB clients with one credit pool.