DEV Community

rarora2026-gif
rarora2026-gif

Posted on

I built an MCP server that tells you why ChatGPT never mentions your product

Your rank tracker measures Google. It says nothing about the moment a buyer asks ChatGPT "what's the best X" and gets three names back. If you're not one of them, you lost the deal before your site loaded, and nothing in the classic SEO stack sees it happen.

So I built Cituna: it asks the same buyer prompts across all seven answer engines (ChatGPT, Perplexity, Gemini, Claude, Grok, Google AI Overviews and Google AI Mode) every day, records who each one cited, then generates the fix. And because I live in Claude, I exposed it over the Model Context Protocol.

Wire it into Claude

{ "mcpServers": { "cituna": { "command": "npx", "args": ["-y", "cituna-mcp"], "env": { "CITUNA_API_KEY": "cituna_sk_..." } } } }
Enter fullscreen mode Exit fullscreen mode

Run npx cituna-mcp and you're live. Generate a key in the app under Integrations.

A real first conversation

You: We sell scheduling software. Why does ChatGPT never mention us?

Claude: (get_visibility) You're cited in 3 of 18 prompt x engine cells. (get_engine_answers) For "best scheduling software for clinics" ChatGPT cites Calendly, Acuity and a Capterra roundup. Every citation is a third-party list you are absent from. (gsc_query) Google already sends you 1,240 impressions for that intent. So you are Google-visible and AI-invisible.

That is the whole point of answer engine optimization: a perfect page does not matter if the engines build their answer out of roundups, Reddit threads and comparison pages you are not on.

The tools

Sixteen tools, twelve read and four write:

  • get_visibility: the daily prompt x engine grid
  • get_engine_answers: what each engine actually said, and who it cited instead
  • list_gaps / set_gap_status: the fix queue
  • gsc_*: Search Console joined to the answers
  • queue_article: hand a gap to the content generator

The same data is available over a REST API if you would rather build on it.

Why an MCP and not just a dashboard

Because the reasoning happens where you already are. I do not want to open a tab to learn why I am invisible; I want to ask the model that is ignoring me.

The first scan is free and runs on your real domain: https://cituna.com

Top comments (0)