LibertySEO Self-hosted SEO analytics

Your SEO data, readable by AI.

Claude, Cursor or any MCP client asks in plain language — LibertySEO answers with your numbers.

Cache reads are free. Live pulls are deliberate.

Without the fresh flag, tools read stored snapshots: the answer includes the snapshot date and age, and costs $0.00. When no snapshot exists, the model receives a hint with the exact price of a live call — only an explicit fresh:true spends your token, and the cost is returned in the response.

Raw provider responses are compacted into terse rows before reaching the model, so a backlink dump doesn't flood the context window.

Connect in a minute

Create a personal token in Settings → API tokens (format lseo_…), build the MCP binary from the repository, then drop this into your AI client's config:

mcp.jsonClaude · Cursor
// drop into your MCP config
{
"mcpServers": {
  "libertyseo": {
    "command": "/path/to/libertyseo-mcp",
    "env": {
      "LIBERTYSEO_URL": "http://localhost:8787",
      "LIBERTYSEO_TOKEN": "lseo_…"
    }
  }
}
}

Tokens are revocable at any moment — the AI's access ends instantly, and every call it made is visible in your usage report.

The 14 tools

toolwhat it does
list_sitesyour tracked sites with location and language
domain_overviewdomain summary: traffic, keywords, dynamics
ranked_keywordsevery keyword the domain ranks for
backlinksbacklink profile: domains, anchors, new/lost
top_pagesstrongest pages by organic traffic
competitorsorganic competitors of a domain
serp_checktop-10 for a keyword in a given location
serp_historySERP history for a keyword from snapshots
keyword_ideaskeyword ideas around a seed query
keyword_metricsvolumes and metrics for a keyword list
competitor_gapkeyword gap: what competitors rank for and you don't
pinned_keywordspinned keywords with current positions
usage_reportyour spend report: days, endpoints, sites
site_audittechnical site audit results

What a session looks like

You:  “How are example.com's pinned keywords doing?”
AI →  pinned_keywords            cache · $0.00 · snapshot from 3 days ago

You:  “Refresh the backlinks.”
AI →  backlinks                  no snapshot · live call ≈ $0.02 — proceed?
You:  “Yes.”
AI →  backlinks fresh:true       $0.02 from your token → stored for next time