Raffaele86

Ahrefs MCP Server

Community Raffaele86
Updated

Ahrefs API MCP server with response caching and budget tracking

Ahrefs MCP Server

MCP server per Ahrefs API v3 (Site Explorer), pensato per il piano Lite (10.000 units/mese, 60 req/min).

Espone 5 tool a Claude Code via il mcp-gateway esistente, con caching SQLite e budget tracking per non sforare la quota.

Tool disponibili

Tool Endpoint Costo (units) Cache TTL
ahrefs_domain_rating /site-explorer/domain-rating ~50 7 giorni
ahrefs_backlinks_stats /site-explorer/backlinks-stats ~50 7 giorni
ahrefs_top_organic_keywords /site-explorer/organic-keywords 50 + limit×4 (~130 a limit=20) 24h
ahrefs_top_pages /site-explorer/top-pages 50 + limit×3 (base) o 50 + limit×12 (con traffic) 24h
ahrefs_budget_status (locale) 0

Quanto puoi usarlo col piano Lite

10.000 units/mese a budget pieno significa:

  • ~200 chiamate di solo domain_rating o backlinks_stats, oppure
  • ~90 chiamate di top_organic_keywords (limit=20), oppure
  • ~110 top_pages senza traffic (limit=20), oppure
  • ~34 top_pages con with_traffic=True (limit=20).

Mix realistico mensile: ~150–250 chiamate utili sfruttando la cache (TTL 7 giorni per metriche stabili, 24h per liste ranked). Usa ahrefs_budget_status per verificare il consumo in qualsiasi momento.

Quickstart locale (sviluppo)

cd "/mnt/d/NAS/Claude/MCP Ahrefs"
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

cp .env.example .env
# inserisci AHREFS_API_KEY=...
# (per dev locale puoi puntare cache/budget alla cartella corrente)
echo "AHREFS_CACHE_DB_PATH=./cache.db" >> .env
echo "AHREFS_BUDGET_PATH=./budget.json" >> .env

python ahrefs_server.py
# in altra shell
curl http://localhost:8089/

Smoke test API key

Prima di tutto verifica che la tua chiave Lite funzioni:

export AHREFS_API_KEY="..."
curl -s -i -H "Authorization: Bearer $AHREFS_API_KEY" \
  "https://api.ahrefs.com/v3/site-explorer/domain-rating?date=$(date +%F)&target=calcolatorigratis.com%2F"

Cerca nei response header le righe X-Api-Units-Cost e X-Api-Units-Remaining — confermano i nomi reali per il client (sono parsati case-insensitive con fallback graceful).

Deploy su Proxmox CT102

./deploy/install.sh root@ct102
ssh root@ct102 'nano /opt/ahrefs-mcp/.env'   # imposta AHREFS_API_KEY
ssh root@ct102 'systemctl restart ahrefs-mcp'
ssh root@ct102 'journalctl -u ahrefs-mcp -f'

Lo script:

  • rsync del progetto in /opt/ahrefs-mcp
  • crea /var/lib/ahrefs-mcp per cache.db e budget.json
  • venv + pip install
  • copia il systemd unit + abilita + restart

Integrazione con mcp-gateway

Sul container che ospita il gateway (CT102), aggiungi ahrefs-mcp come upstream con tag ahrefs:

  • URL upstream: http://localhost:8089/sse
  • Tag: ahrefs (o ahrefs,seo)
  • Restart mcp-gateway

Per accesso cross-sessione Claude Code, aggiorna ~/.claude.json:

{
  "mcpServers": {
    "mcp-gateway": {
      "type": "http",
      "url": "https://mcp.calcolatorigratis.com/mcp?tags=core,monetizzazione,ahrefs",
      "headers": { "Authorization": "Bearer <gateway-token>" }
    }
  }
}

Oppure per i singoli progetti aggiorna i loro .mcp.json.

Struttura

ahrefs_server.py    # FastMCP + Starlette + uvicorn (port 8089)
ahrefs_tools.py     # 5 @mcp_server.tool()
ahrefs_client.py    # httpx wrapper + parsing X-Api-Units-*
ahrefs_cache.py     # SQLite TTL cache
ahrefs_budget.py    # Tracker units mensile (warning 8K, hard stop 10K)
deploy/
  ahrefs-mcp.service
  install.sh
.env.example
requirements.txt

Note operative

  • Hard stop a 10.000 units: il MCP rifiuta nuove chiamate API (le cache hit continuano a funzionare). Reset automatico al cambio mese.
  • Warning a 8.000 units: appende un suffisso ⚠️ alle risposte ma non blocca.
  • with_traffic=True su top_pages: usalo solo quando ti serve davvero, costa ~3x.
  • Cache deterministica: chiave = SHA256(endpoint + params ordinati). Stesso target+date+limit ⇒ stessa chiave.

MCP Server · Populars

MCP Server · New

    FootprintAI

    Containarium — Agent Runtime

    Open-source agent runtime — SSH-native isolation, eBPF egress policy, Kubernetes + LXC backends, GPU passthrough, MCP-native CLI

    Community FootprintAI
    openfate-ai

    @openfate/bazi-mcp

    OpenFate Bazi MCP server with deterministic Four Pillars calculation, True Solar Time, branch interactions, and reverse Bazi lookup.

    Community openfate-ai
    mohitagw15856

    🧠 PM Skills — 454 Professional Agent Skills for Claude, ChatGPT, Gemini, Cursor, Codex & Hermes

    In Anthropic's official Claude plugin directory · 400 professional Agent Skills (PRDs, launches, compliance, CVs & more) for Claude, ChatGPT, Gemini, Cursor & Codex. Try free in-browser, or 'npx pm-claude-skills add'.

    Community mohitagw15856
    kagan-sh

    kagan-legacy

    The Orchestration Layer for AI Coding Agents

    Community kagan-sh
    cbtw-apac

    QDrant Loader

    Enterprise-ready vector database toolkit for building searchable knowledge bases from multiple data sources. Supports multi-project management, automatic ingestion from Confluence/JIRA/Git, intelligent file conversion (PDF/Office/images), and semantic search. Includes MCP server for seamless AI assistant integration.

    Community cbtw-apac