How to audit your site's AI visibility with Claude Code and MCP

Updated on August 1, 2026

A real walkthrough of auditing a site's AI visibility from the terminal: measuring mentions in ChatGPT, Perplexity and Google AI Mode over MCP, and acting on what came back.

Auditing a site's AI visibility from Claude Code over MCP

I can tell you exactly where nicklaunches.com ranks in Google for any keyword I care about. I could not tell you whether ChatGPT recommends it when someone asks where to launch their startup. Those are now two different questions, and only one of them has a mature tooling ecosystem behind it.

So I wired an AI visibility tool into Claude Code over MCP and let the agent run the audit itself. No dashboard, no tab switching, just tools the model can call while it already has the context of my site loaded.

Disclosure before we start: VerifiedDR and I swapped blog posts. They wrote about NickLaunches DR tracking, this is my side of the swap. No money changed hands, nobody reviewed this draft before publishing, and every number below comes from a real session against my own domain. The uncomfortable findings stayed in.


Why AI search optimization needs its own tooling

Classic SEO measures position. You are at number 4 for a query, you want to be at number 1, and the whole toolchain is built around that one number moving.

Answer engines do not work that way. When someone asks ChatGPT "what's a good launch directory for a developer tool", there is no position. There is a synthesized paragraph that either names you or does not, built from a handful of pages the model decided to trust. You are not competing for a rank, you are competing to be one of the sources.

That breaks the usual instruments in three ways:

There is no SERP to scrape. The answer is generated per session and varies by phrasing, by platform, and sometimes by country. The only way to measure it is to actually ask the question repeatedly and count.

The cited page is often not yours. You can be mentioned because a Reddit thread, a review site, or a competitor's comparison page said something about you. Your own site might not be in the citation list at all.

Being ranked and being mentioned are different outcomes. Ranking well helps, because the model tends to read pages that rank. But plenty of pages that rank never get cited, and plenty of pages that get cited rank for nothing.

None of that shows up in a rank tracker. If you want the full background on the classic side first, the basic guide to SEO covers it, and everything there still applies. This is the layer on top.


What you need before you start

  • Claude Code, or any MCP client. I used Claude Code, but the same server works in Cursor, Codex, or Claude Desktop.
  • Node 18 or newer, only if you want the CLI as well. The MCP server itself is remote and needs nothing installed.
  • A VerifiedDR API key, created in the dashboard. It starts with vdr_. A free key authenticates but every call answers 402, so you need a paid plan for the data to come back.
  • A domain you own and have verified. Most tools only run against your own approved sites. Authority lookups are the exception and work on any domain.

I already had a key in my .env for an unrelated REST integration, so this cost me nothing to set up.


Step 1: Add the MCP server to Claude Code

This is one command. The server is streamable HTTP, so there is no package to install and no process to keep alive.

Terminal
claude mcp add -s local --transport http verifieddr https://verifieddr.com/api/mcp \
  --header "Authorization: Bearer vdr_your_key"

Use -s local rather than the default. Project scope writes a .mcp.json into the repo, and since the auth header contains your key, that is a credential you will eventually commit by accident. Local scope keeps it in your own config.

Restart Claude Code, then confirm:

Terminal
claude mcp list

You want the line that reads verifieddr: https://verifieddr.com/api/mcp (HTTP) - ✔ Connected. That gives the agent 21 tools, covering visibility scans, trust metrics, growth planning, partner discovery, keyword research and a marketplace.

First thing worth asking it, to check the key is on a plan that actually returns data:

Claude Code
Check my VerifiedDR account usage and tell me what tier I am on.

Mine came back on a partner tier with 10,000 monthly API calls and 25 tracked questions, of which 11 were in use. That prompt budget matters more than the call quota, as I will get to.


Step 2: Ask it where you actually stand

This is the tool that justifies the whole setup. It takes a set of questions, asks them across ChatGPT, Perplexity and Google AI Mode, and counts how often your brand appears in the answer.

Claude Code
Run an AI visibility check on nicklaunches.com. Give me the score, the
breakdown per platform, and which brands are being named instead of me.

The result for nicklaunches.com:

MetricValue
AI visibility score39 / 100
Answers naming the site12 of 31
ChatGPT4 of 11 answers
Perplexity4 of 11 answers
Google AI Mode4 of 9 answers
Named more often than meProduct Hunt, Reddit, BetaList

The history is the more interesting column. On 23 July the score was 0, across 12 answers, on all three platforms. By 28 July it was 36, and by 29 July it was 39. That is not a tool getting better at finding me, that is the underlying corpus changing as more third party pages about the site got indexed and read.

The part I did not expect

The scan also lists the pages the models actually cited. Mine, ranked by citation count:

Cited pageTimes citedPlatform
scamadviser.com check page for nicklaunches.com4Perplexity
nicklaunches.com homepage3ChatGPT
trustmrr.com startup profile3Perplexity, Google AI Mode
A press release on 2news.com3Perplexity
aidirectori.es review page3Perplexity
submitator.com/nick-launches-alternative2Perplexity

The single most cited page about my site, in Perplexity, is a ScamAdviser "is this legit" check page that I did not create and do not control. My own homepage is second. And a competitor's dedicated "alternative to Nick Launches" page is being read into answers about me.

Aggregated by domain it is starker: reddit.com contributed 12 citations, nicklaunches.com 7, youtube.com 7, scamadviser.com 6, linkedin.com 5, quora.com 4. My own site is a minority shareholder in what the models say about it.

I have run this site for months and had no idea. That single table changed my content plan for the quarter, because there is no amount of on-site optimization that fixes "the model is reading a trust-check page instead of your homepage". That is a job for third party placements, and it is the same problem the launch directory list exists to solve.


Step 3: Read a ranked plan instead of a dashboard

Where this beats a browser tab is that the agent can pull the plan and immediately act on it. I asked for the growth plan and the trust breakdown together.

Claude Code
Pull the VerifiedDR growth plan for nicklaunches.com and explain why
TrueDR is below DR.

The trust side first. It reports DR 68 against a TrueDR of 58, a gap of 10 points, on 290 referring domains and validated traffic. TrueDR is their attempt at a DR that cannot be inflated by bulk directory links, which, as someone who runs a directory, I find pleasantly hard to argue with. The stated diagnosis was that the supporting evidence is weaker than the headline score.

The plan came back as four ranked tasks:

PriorityImpactTask
High8Review a partnership with a specific matched site
Medium2Analyze a 9 point DR benchmark gap against a named competitor
Low8Validate trust through traffic-driving pages
Low1Review visibility movement next week

Each task ships with a handoff field written as instructions for an agent rather than for a human. The benchmark task, for example, handed over a list of 12 domains that link to a competitor but not to me, each with its DR and an example page. That is a working prospect list, not a suggestion.


Step 4: Let the agent draft the outreach, then stop

The top task was partner outreach, so I let it run that one end to end. The tool drafts the email and, critically, defaults to not sending it.

Terminal
vdr opportunities nicklaunches.com --contact bananaeditor-art --dry-run

The draft it produced was not good. It opened by telling the recipient I had found them "through VerifiedDR's partner matching", pasted the fit rationale into the body verbatim, semicolon included, and repeated the same reason twice. I would not send it.

But the workflow is right. It surfaced a real match I had never heard of, gave me the fit reasoning and their numbers, wrote a first draft, then stopped and printed the exact command to send once I had edited it. The task checklist even includes the line "Stop for approval before sending." An agent that drafts outreach and refuses to send it unattended is the correct default, and it is rarer than it should be.

The matched partners were genuinely relevant, including one, LaunchPanda, that I already track as a competitor.


Step 5: Check any domain, not just your own

Most of the tools are gated to sites you have verified. Authority lookup is not, which makes it the quickest competitor check in the set.

Terminal
vdr authority:lookup producthunt.com

Product Hunt returns DR 91, TrueDR 85, trust score 85, high confidence, with 4.1M validated traffic. The interesting field is the gap: 6 points, against my 10. The bigger the spread between DR and TrueDR, the more of the headline number is coming from links that do not carry weight.


Using the CLI instead of the MCP server

Everything above also works from a terminal, which is useful if your editor is not an MCP client or you want it in a script.

Terminal
npm install -g verifieddr
export VERIFIEDDR_API_KEY=vdr_your_key
 
vdr analyze nicklaunches.com
vdr diagnose nicklaunches.com
vdr sites:visibility nicklaunches.com
vdr growth:tasks nicklaunches.com
vdr opportunities nicklaunches.com

vdr analyze is the one I now run most. It prints TrueDR, DR, the gap, the AI visibility score and three ranked actions in about fifteen lines, which is the right density for a check you do weekly.

There is also keyword research attached, which is where the AI search optimization angle gets practical. Running vdr keywords:research "ai visibility tool" returns the live SERP with both the public DR and the tracked TrueDR per result, so you can see which competitors have real authority and which just have a big number. For this term the top results were tryprofound.com, frase.io and zapier.com.

If you want the agent framework side of this rather than the SEO side, I compared the open source options separately.


What it got right and what it did not

Worth being specific, since I am linking to them.

What worked. The visibility scan is the product. Three platforms, real questions, per-answer attribution, and the cited-page list that told me something I could not have guessed. The CLI is fast and the output is dense in a good way. The agent-first design is real rather than a wrapper on a dashboard, and the dry-run-by-default on anything that contacts a human is the correct call.

The numbers do not always agree with each other. The growth plan summary reported DR 67, TrueDR 50 and 2,762 traffic. The site record in the same response reported DR 68, TrueDR 58 and 6,000. Both are in one payload. The reason is that the plan is a cached run from five days earlier and the site record is live, but nothing in the output says so. If you screenshot the wrong half you will quote a stale number.

Priority and impact contradict each other. One task was marked low priority with an impact of 8, the same impact as the high priority task at the top. I would sort by impact and ignore the priority label.

Question quality is your problem, not the tool's. Several of my tracked questions used the word "builders", and one of the pages cited back to me was an article about selling building products to home builders. The construction industry. The scan is only as good as the questions, and the auto-generated ones need editing.

It is weekly, not live. After a scan, the next refresh was seven days out, and the prompt budget is per plan rather than per run. This is a monitor you check on a cadence, not a dashboard you leave open. Given each run means asking three answer engines a dozen questions, that is a reasonable constraint rather than a flaw, but plan around it.

What I still want, from this category generally rather than from this product: a scoring method I can inspect, because TrueDR 58 is a number I am asked to trust rather than audit. Runs on demand instead of once a week. Something open source or self-hostable, so the measurement is not a black box I rent. And an export I own, so the history survives my subscription.


What this does not replace

It does not replace Search Console, and it is not trying to. Crawling, indexing and clicks are still the foundation, and if Google has not discovered your pages then no amount of answer engine tuning matters.

It does not tell you why a model chose a source. You get the cited page and the count, not the reasoning, so the causal story is still yours to construct.

And it does not fix the underlying problem it reveals. Learning that ScamAdviser outranks my own homepage inside Perplexity is diagnosis, not treatment. The treatment is the same unglamorous work it has always been: get mentioned on pages that other people trust.

What changed for me is that the work now has an instrument attached to it. I was optimizing for answer engines blind, on the assumption that good classic SEO would carry over. Some of it did. The 39 was not zero. But a third of my citations coming from Reddit, and the single most-cited page being a scam check I do not control, is not something I would have found by looking at rankings.


Launching something and want it visible to both Google and the models? Start with the launch directory list, then work through the basic SEO guide. Get the classic layer right first, then measure the answer engines on top.

Related Posts

Get the latest AI insights delivered to your inbox

Stay up to date with the latest trends, tutorials, and industry insights. Join community of developers who trust our newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy