# Brand Ai Rank Tracker

> Open-source Chrome extension that tracks your brand in Google AI Overviews and AI Mode. Lane model, DEJAN lens, response forensics, MCP-ready. 100% local.

- **Type:** MCP server
- **Install:** `agentstack add mcp-vijaychauhanseo-brand-ai-rank-tracker`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [vijaychauhanseo](https://agentstack.voostack.com/s/vijaychauhanseo)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [vijaychauhanseo](https://github.com/vijaychauhanseo)
- **Source:** https://github.com/vijaychauhanseo/brand-ai-rank-tracker
- **Website:** https://github.com/vijaychauhanseo/brand-ai-rank-tracker

## Install

```sh
agentstack add mcp-vijaychauhanseo-brand-ai-rank-tracker
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Brand AI Rank Tracker

**The first open-source Chrome extension that tells you what Google's AI Overviews and AI Mode actually do with your brand — in real time, on your own browser, with your own data.**

[](#install)
[](manifest.json)
[](LICENSE)
[](#privacy)
[](#mcp-bridge)

*Reverse-engineering Google's AI black box, one capture at a time.*

---

## Why this exists

Every paid SEO tool (Semrush, Ahrefs, Sistrix, Similarweb) tells you your **organic rank**. None of them tell you the things that actually matter in 2026:

- Was your brand **cited** in the AI Overview?
- Was it **grounded** (used as a source) but hidden from view?
- Did you appear in the **considered pool** but get filtered out at display time?
- When you "lost visibility" — did Google drop you from the pool, or just from the panel?
- How fast does Google **re-rank** your sources between turn 1 and turn 2 of AI Mode?

Brand AI Rank Tracker answers all of these. It runs locally in your browser, captures every AIO + AIM response Google serves you, parses the hidden DOM signals (ELRC tokens, CSI timings, MAGI shadow responses, Maps injection), and builds you a private intelligence dashboard.

**No cloud. No API key. No SaaS. No data leaves your machine.**

---

## Table of contents

- [What it does](#what-it-does)
- [Screenshots](#screenshots)
- [Install](#install)
- [Quick start](#quick-start)
- [Feature deep-dive](#feature-deep-dive)
- [The "lane" model](#the-lane-model)
- [DEJAN Research Lens](#dejan-research-lens)
- [Response Forensics](#response-forensics)
- [MCP bridge](#mcp-bridge)
- [Privacy](#privacy)
- [FAQ](#faq)
- [Roadmap](#roadmap)
- [License](#license)

---

## What it does

Brand AI Rank Tracker watches every Google search you run and, when an AI Overview or AI Mode response appears, it captures the full structured payload:

| Surface | What it captures |
|---|---|
| **AI Overview (AIO)** | Citations, sidebar cards, inline links, grounding hosts, organic pool, MAGI payload, considered-but-not-shown sources, entities, products, places |
| **AI Mode (AIM)** | Same as AIO + fan-out queries, follow-ups, conversation chain, related queries, source carousel, knowledge graph |
| **Hidden signals** | ELRC tokens (10 types incl. `data-sr-elrc` for reranking), CSI gen_204 timings, Maps vertical injection, MAGI shadow responses |
| **Outcome** | Bucketed into one of four **lanes**: `visible citation win` / `grounded only` / `organic only` / `missing` |

Then it gives you:

1. A **popup** with today's lane changes ("↑ 3 gained visible · ↓ 1 lost visible since yesterday")
2. A **Command Center** dashboard with KPIs, mentions tracker, capture diff, and a watchlist runner
3. A **DEJAN Research Lens** that compares published baselines against your own observed rank curve
4. A **Pool→Display filter card** exposing domain survival rates, position-gap aggression, and video injection patterns
5. **MCP server** so any LLM (Claude Code, Claude Desktop, Codex) can query your capture data directly

---

## Screenshots

> *Drop your screenshots into `docs/screenshots/` and they'll render here. Placeholder structure below — see [docs/SCREENSHOT_GUIDE.md](docs/SCREENSHOT_GUIDE.md) for the exact captures to grab.*

| Popup — lane changes today | Command Center | Mentions Tracker with Lane Δ |
|---|---|---|
|  |  |  |

| DEJAN Research Lens | Pool→Display Filter | Response Forensics |
|---|---|---|
|  |  |  |

---

## Install

### 1. Download

```bash
git clone https://github.com/vijaychauhanseo/brand-ai-rank-tracker.git
cd brand-ai-rank-tracker
```

Or [download the latest release zip](https://github.com/vijaychauhanseo/brand-ai-rank-tracker/releases) and unzip it.

### 2. Load into Chrome

1. Open `chrome://extensions`
2. Toggle **Developer mode** on (top right)
3. Click **Load unpacked**
4. Select the `brand-ai-rank-tracker` folder

The extension icon should appear in your toolbar. Pin it.

### 3. Configure your brand

Click the extension icon → **Settings** (gear). Set:

- **Brand name** — e.g. `Ahrefs`
- **Primary domain** — e.g. `ahrefs.com`
- **Competitor domains** — comma-separated list (e.g. `semrush.com, moz.com, similarweb.com`)

That's it. Run a few Google searches with AI Overviews enabled, and your dashboard will start filling up.

---

## Quick start

1. **Run a search.** Open Google and search something your brand cares about — e.g. `best seo tools 2026` or `backlink checker`. If an AI Overview renders, the extension captures it silently.
2. **Click the icon.** You'll see today's lane changes and the latest capture.
3. **Click "View all".** Opens the full Command Center dashboard.
4. **Set up a watchlist.** In the dashboard → Brand Watchlist Runner, paste your tracked queries. The extension will run them on a schedule (daily/weekly) and log lane transitions.

---

## Feature deep-dive

### The "lane" model

Most SEO tools think binary: ranked or not ranked. AI search is four-dimensional. Every query/brand pair lands in exactly one lane:

| Lane | Meaning | What it tells you |
|---|---|---|
| 🟢 **Visible citation win** | Your brand appears as a clickable citation in the AIO/AIM panel | You won the panel. Click-eligible. |
| 🟡 **Grounded only** | Google used your page as a grounding source but didn't display it | You influenced the answer but lost the click |
| 🔵 **Organic only** | You rank in the 10 blue links but Google didn't consider you for AI | The AI passed you over |
| 🔴 **Missing** | Not in citations, not grounded, not in organic top 10 | True absence |

The popup banner aggregates today's transitions across all your tracked queries — **"↑ 3 gained visible · ↓ 1 lost visible · 2 newly grounded · 4 other"** — and lets you click through to the affected queries.

This is the foundation. Everything else builds on it.

### DEJAN Research Lens

Inspired by [Dan Petrovic's DEJAN.ai](https://dejan.ai) research on AI Overview source selection, but honest about which numbers are real vs published baselines.

- **Real per-query data:** organic rank, pool rank, shown rank, used-by-Google flag, selection rate
- **Heuristic (clearly labelled):** Keyword echo, Sentence echo, Self-ref flag (token-overlap, NOT Google attribution)
- **Observed curve:** when you have ≥5 captures at a given rank, the lens silently swaps DEJAN's published curve for **your own observed curve** with sample-size annotation `(n=47)`

You can demo this live: "DEJAN published 28% shown at #1. My 1,132 captures show #1 shown at 34%, n=87." That's not theory — that's your data.

See [docs/DEJAN_LENS.md](docs/DEJAN_LENS.md) for the full methodology.

### Response Forensics

Per-capture intelligence pulled straight from the DOM that Google never meant you to read:

- **ELRC tokens** — `data-elrc`, `data-sr-elrc`, `data-rerank`, etc. Surface session-level signals like reranking pass and SR reload between turns.
- **CSI timings** — parses `/gen_204?rt=...` beacons for `sirt-aimc`, `sart-aimc`, `art`, `imn`, `irfi`, `irli`. Real client-side render latency per response.
- **Maps injection** — detects `/maps/vt?...categorical-search-results-injection`, confirming geo-vertical insertion with KG entity attachment.
- **Shadow AIO** — when MAGI payload is present but no AIO renders, surfaces as `aioStatus: magi_only`. (Most tools throw this away. We count it.)

See [docs/RESPONSE_FORENSICS.md](docs/RESPONSE_FORENSICS.md).

### Pool → Display filter intelligence

Three metrics no paid tool surfaces, inspired by the AIO/AIM research of **Olivier de Segonzac**:

1. **Domain survival leaderboard** — per-domain pool→display rate. *"Semrush: 87 pooled, 34 displayed, 39% survival."*
2. **Position-gap aggression** — average distance between consecutive displayed `position` values per capture. Higher = Gemini filtered out more candidates.
3. **Video injection detection** — flags YouTube/Vimeo cards displayed in citations *without* prior pool appearance. Confirms (or refutes) the "~95% video injection without pool entry" pattern against your data.

### Capture diff

Pick any two captures of the same query (e.g. yesterday vs today, pre-update vs post-update) and see a structured diff:
- Lanes (yours and competitors)
- Citations added/removed
- Grounding sources changed
- Answer text token-diff
- Lane event annotations if a transition occurred between the two

### Watchlist runner

Schedule queries to re-run automatically (daily / weekly / manual). Each run captures fresh, logs a `lane_event_*` record if anything changed, and bubbles changes up to the popup banner.

### MCP bridge

The `mcp_bridge.js` script writes every capture to `~/.brand-ai/data.db` via a native messaging host. A FastMCP server then exposes 5 tools to any MCP-aware client (Claude Code, Claude Desktop, Codex CLI):

- `list_projects`
- `query_rank_history`
- `get_aio_citations`
- `raw_sql` (SELECT only)
- `sync_status`

This means you can ask Claude: *"What's my 'backlink checker' rank history for the last 30 days, broken down by lane?"* and it queries your local capture DB directly. No exports. No CSVs. No API.

Setup: see [docs/MCP_SETUP.md](docs/MCP_SETUP.md).

---

## Privacy

Everything stays on your machine.

- ✅ No external API calls
- ✅ No analytics, no telemetry, no phone-home
- ✅ All data in `chrome.storage.local` + optional local SQLite (`~/.brand-ai/data.db`)
- ✅ Open source — read every line yourself
- ⚠️ Requires the `debugger` permission to read CSI gen_204 beacons. You'll see Chrome's yellow "is debugging this browser" bar when active captures are running. That's expected — it's the price of seeing what Google sees.

Uninstall = `chrome://extensions` → Remove. Done. Nothing left behind except the optional `~/.brand-ai/` folder you can delete manually.

---

## FAQ

**Q: Does this work with Google AI Mode (the chat experience)?**
Yes. AIM captures include fan-out queries, follow-ups, conversation chain, related queries, and the source carousel. Same lane model.

**Q: How is this different from Semrush AI Tracker / Ahrefs Brand Radar?**
Those tools poll a small set of queries from a cloud crawler. They miss session signals (reranking), can't see grounding, can't detect shadow MAGI responses, and can't run AI Mode. You're seeing the panel from your IP with your account state — closest possible to what Google serves your users.

**Q: Won't this slow down my browsing?**
No. Captures fire on `document_end` only for `*.google.com` and finish in 

*Built for SEOs who got tired of waiting for Ahrefs to ship an AIO feature.*

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [vijaychauhanseo](https://github.com/vijaychauhanseo)
- **Source:** [vijaychauhanseo/brand-ai-rank-tracker](https://github.com/vijaychauhanseo/brand-ai-rank-tracker)
- **License:** MIT
- **Homepage:** https://github.com/vijaychauhanseo/brand-ai-rank-tracker

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-vijaychauhanseo-brand-ai-rank-tracker
- Seller: https://agentstack.voostack.com/s/vijaychauhanseo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
