Cituna
Eternum Capital FZE LLC v0.2.2
AI visibility & Search Console
From the developer
Declared capabilities
- Interactive
- Read
- Write
Cost & access
The plugin does not sell products, open checkout, or process payments. It accesses an existing paid Cituna subscription purchased independently on cituna.com. Website subscription billing is handled by Stripe. MCP reads require a paid plan and writes require Pro or higher. No payment or upgrade tool is exposed.
Declared limitations
- N1 — Billing is outside this plugin. Explain that Cituna has no billing/checkout tool and cannot upgrade or charge the account. Do not invoke any Cituna tools, create a payment session, collect card details, or claim payment success.
- N2 — Direct CMS publication is unsupported. Explain that queue_article queues future drafting, mark_article_published only records an already-live URL, update_article edits only Cituna's stored copy of an AutoSEO article, and enrich_article only refreshes a live AutoSEO article's title, description and FAQs. Do not call any of these tools, any other Cituna tool, or claim a page was published.
- N3 — Sending outreach is unsupported. Explain that Cituna can inspect source evidence or record outreach statuses but cannot send email. Reading the citation-source list the user named is acceptable. Do not call set_outreach_status, change any status, or claim anyone was contacted.
Onboarding example
Show what AI engines say about my brand and which sources they cite.
Sources & dates
Developer declarations; not independently tested. Listing last checked Nov 12, 2026. Package observed Nov 12, 2026.
Description
From the marketplace listing
See what AI engines say about your brand and which sources they cite. Compare stored answers and competitors, choose and manage tracked prompts, explore Google Search Console performance, and prioritize content, citation and visibility fixes. Cituna Autopilot plans a weekly round of work only from evidence: Search Console queries, tracked prompts your brand is not named on, and verified source gaps. It holds pages still inside a 28-day measurement window, drafts the pages you approve with a claims ledger and a separate fact check, and re-checks each change after 28 days. Drafts come back to you, or to a pull request you review when you work in a code repository. When requested, update tracking and queue statuses, edit or refresh AutoSEO articles, skip queued topics, or run a fresh visibility scan. Results include measurement dates and distinguish missing answers from citation misses. Connect your own Cituna account through OAuth. Google Search Console must first be connected in Cituna. Some tools need write consent or a level of access your account may not include; the plugin says so when that happens. Fresh scans and article refreshes draw on your account's usage allowances. The plugin does not publish new pages to your CMS, merge code, or send outreach messages. The one live change it can make is a refresh of an AutoSEO article's title, description and FAQs through Cituna's existing site connection, and only when you ask for it. Cituna is operated by Eternum Capital FZE LLC.
Language: English · Automatically detected from descriptions.
Changes
No changes recorded yet. Follow this plugin to keep track of future changes.
First seen Nov 12, 2026. Last seen Nov 12, 2026.
Similar plugins
Find competitors to follow as you develop your plugin.
-
Connect to RankZero for AI search visibility, competitors, prompts, citations, GA4, and Google Search Console insights.
Shared terms: visibility, search, citation, cite
-
Narron helps users inspect how their brands appear in AI search. It reports visibility scores, platform breakdowns, topic performance, co...
Shared terms: visibility, search, competitor, measurement
-
Read and manage your Promvia AI-search visibility data: scores, citations, cited sources, GEO findings and AI-referred traffic.
Shared terms: visibility, search, citation, cite
-
Analyze your brand’s visibility, competitors, and citations in AI search answers using geoSurge project data.
Shared terms: visibility, search, citation, competitor
-
See how AI search engines mention and cite your brand, how you compare with competitors, and what to publish next, using your live Thrive...
Shared terms: visibility, search, citation, cite
Keywords
Files & skills
File archives
Skill instructions
autopilot9.27 KB
--- name: autopilot description: Run Cituna Autopilot, the weekly plan built only from evidence (Search Console queries, tracked prompts the brand is not named on, verified source gaps). It holds pages inside their 28-day window and proposes enrich, publish, title, pitch, fix or skip; nothing is written until the user picks rows. Use for "run the autopilot", "weekly SEO or AEO plan", "what should we work on this week", "get us cited". --- # Cituna Autopilot: plan the week from evidence Read [connection and evidence rules](../../references/connection-and-evidence.md) and [autopilot rules](../../references/autopilot-rules.md). Writing goes to the sibling `autopilot-write` skill; logging and the 28-day re-check to `autopilot-measure`. One rule decides everything: **no evidence, no work.** Evidence is a Search Console query with impressions, a tracked prompt the brand is not named on, or a verified source gap. Everything else is enriched into an existing page or skipped. Building the plan costs only reads (stored Cituna data is free; Search Console reads are metered but cheap). Model writing happens only for the rows the user picks. Options the user may add: `dry` (show the plan and stop, no question), `write N` (new pages this week, default 2), `enrich N` (default 2), a brand or domain. ## 1 · Connect and load last week 1. `whoami`, `list_brands`, `gsc_status`, once per conversation. Use the named brand, the only brand, or ask. On Starter, say once that the plan and drafts work but applying needs Pro. If Search Console is not connected for the domain, drop the Search Console lanes, say the plan covers AI answers and sources only, and point to https://cituna.com/integrations. 2. Read the change log and last plan if they exist (see autopilot-measure): pages whose `hold_until` has not passed are held; open rows from last week come back first. If re-checks are due, run autopilot-measure first so this week's plan learns from them. ## 2 · Read (about ten calls) | Call | Arguments | Keep | | --- | --- | --- | | `gsc_striking_distance` | `domain`, `days: 28`, `minPosition: 4`, `maxPosition: 60`, `limit: 40` | query, page, position, impressions | | `gsc_zero_click_pages` | `domain`, `days: 28`, `limit: 20` | `snippet` and `page-two` rows with top queries | | `gsc_cannibalisation` | `domain`, `days: 28`, `limit: 20` | non-brand queries split across pages | | `gsc_coverage_gap` | `domain`, `days: 90`, `limit: 50` | silent URLs: page inventory, not work by itself | | `get_visibility` | `brand` | prompts answered and not cited, per engine | | `list_citation_sources` | `domain`, `range: "30d"`, `gapsOnly: true`, `limit: 15` | verified gaps, `yourPagesEnginesCite`, `whatEachEngineReads` | | `list_keywords` | `domain`, `stage: "none"` | `content.existingUrl`: the page that already serves a keyword | | `list_content_queue` | `domain`, `limit: 5` | `enabled`, `destination`, the `queued` topics | | `list_articles` | `domain`, `status: "live"` | AutoSEO pages: `url`, `lastSentAt`, `editsNotSent`, `enrich.eligible` | | `list_gaps` | `domain` | Cituna's own fix list | Read every `history` block first. `windowTruncated: true` means a young property: deep positions there mean Google barely knows the site, not that the content is weak. Do not page through `list_content_queue` articles for the plan; they are large. `list_articles` gives the AutoSEO pages as short rows, 50 a call; pass `nextCursor` as `before` only when an older page is a candidate. ## 3 · Candidates Sort every signal into the lanes in the rules: - **Near page one:** striking rows at 4 to 20 with 20+ impressions, grouped by page. The page's searches are the evidence; what they ask that the page does not answer is the work. - **Seen, not clicked:** zero-click rows with cause `snippet`. `page-two` rows go to enrichment, `ranking` rows are not title work, `branded` rows are skipped. - **Unserved demand:*
Preview of the first 4,000 characters. Read full instructions →
autopilot-measure5.41 KB
---
name: autopilot-measure
description: Keep Cituna Autopilot's change log and re-check each change after its 28-day window, comparing Search Console clicks with the site's own trend and AI citations with the 30-day record, without claiming causes the data cannot show. Use for "log this change", "did our changes work", "28-day re-check", "what have we learned".
---
# Log every change, re-check it after 28 days
Read [connection and evidence rules](../../references/connection-and-evidence.md) and
[autopilot rules](../../references/autopilot-rules.md), which define the log line. A change
nobody logged cannot be learned from, so log on the day it goes live, not the day it merges.
## Log a change
1. Take the live date (deploy day), the URL, the type and the evidence from the plan row.
For an AutoSEO page the live date is its new `lastSentAt` in `list_articles`.
2. Read the `before` numbers now, while they are easy to get:
- The page: `gsc_query` with `domain`, `dimensions: ["page"]`, `startDate` = live date
minus 28 days, `endDate` = live date minus 1, and a filter `{dimension: "page",
operator: "equals", expression: <url>}`. Keep clicks, impressions, CTR, position.
- The site, same window: `gsc_query` with `dimensions: ["date"]`, `rowLimit: 40`; sum the
clicks and impressions.
- Each evidence prompt: today's `get_visibility` cells (engines that answered, engines
naming the brand) and the page's entry in `list_citation_sources.yourPagesEnginesCite`
(30-day `count` and `byEngine`), if it has one.
- A pitch: the host's `youOnThisSite` and `outreachStatus` from `list_citation_sources`
with `search` set to the host.
- A refresh: the title and description it replaced, from the `before` that
`enrich_article` returned.
3. Set `hold_until` to the live date plus 30 days and `recheck_on` to the live date plus 33:
the after-window runs from day 3 to day 30, and Search Console reports about 3 days late.
4. Append the line to the log (with a filesystem,
`~/.cituna/autopilot/<domain>/changes.jsonl`; otherwise print it in a fenced block titled
"Cituna change log" and ask the user to keep it for the next run).
## Re-check what is due
Read the log (or ask the user to paste it). Due: `recheck_on` on or before today. Early: at
least 14 days of after-data; report those as "so far", never as a result.
For each due change:
1. **Windows.** Before: the 28 days before the live date. After: day 3 to day 30. Read the
page and the site for the after window exactly as for `before`. Check the `history` block:
a window the property does not fully cover is reported as such.
2. **Search Console verdict.**
- `title`, `description` or `refresh`: if the average position moved more than 3, the change is
confounded (report it as a ranking move). Otherwise expected clicks = after impressions x
before CTR.
- `enrich` or `fix`: expected clicks = before clicks x (site clicks after / site clicks
before), so a seasonal rise or fall does not count.
- Win or loss only when actual and expected clicks differ by more than 2 x the square root
of expected and by at least 5 clicks; otherwise flat. Under 100 impressions in the after
window: too few impressions to judge, report the movement only.
- `new-page`: no before. Report the impressions, clicks, position and top queries it
earned in the after window (`gsc_query` with `dimensions: ["query"]` and the page filter).
3. **AI verdict.** Compare with the `before` snapshot. The 30-day record is the measure: read
at the re-check, the page's `yourPagesEnginesCite` entry (`count`, `byEngine`, `queries`)
covers about the after window. Missing before and listed now means engines started reading
the page; more engines or citations means they read it more. Today's `get_visibility` cells
for each evidence prompt say whether engines name the brand: absent toPreview of the first 4,000 characters. Read full instructions →
autopilot-write6.8 KB
---
name: autopilot-write
description: Write one page or enrichment a Cituna Autopilot plan approved, with a claims ledger for every fact and a separate fact-check pass, then publish through the user's repository or CMS, or Cituna's copy of an AutoSEO page, and record it in Cituna. Never writes without evidence or publishes by itself. Use for "write the approved page", "draft the enrichment", "fact-check this draft".
---
# Write, check and publish one approved row
Read [connection and evidence rules](../../references/connection-and-evidence.md),
[autopilot rules](../../references/autopilot-rules.md) and
[page rules](../../references/autopilot-pages.md). Work one row at a time and finish it
before the next.
## 0 · Pick the lane before writing a word
Nothing generated may be thrown away, so the publishing route is chosen first:
- **Write here:** draft with a ledger, fact-check, the user publishes (repository or CMS),
then `mark_article_published` records the live URL.
- **Queue for AutoSEO:** `queue_article` hands the keyword to Cituna's AutoSEO, which writes
its own draft. Check `list_content_queue.enabled` first: when AutoSEO is off the topic only
waits. Never draft here as well; that draft would be discarded.
- **Enrichments are written here.** For a page AutoSEO wrote (it is in `list_articles`), the
approved blocks go into Cituna's copy with `update_article`, and the page changes when the
user sends the article from the Cituna app. Keep its edits in Cituna: `enrich_article`
refuses a page edited on the site since Cituna sent it.
- **A refresh is Cituna's, not a draft:** a `title` row on an AutoSEO page that
`list_articles` shows with `enrich.eligible: true` goes to `enrich_article`, which writes the
title, description and up to two FAQ answers from the page's own queries and updates the
live page. Draft nothing here for it.
## 1 · Re-check the row (free)
The row must carry its evidence: the queries with impressions and position, the prompt with
the engines that answered without the brand, or the source host with its `absent` check. A
request without evidence goes back through the autopilot gates; if none applies, stop and
offer to enrich an existing page or skip.
The plan may be days old, so re-run two gates for this row: the 28-day hold on the target
page, and `list_keywords` (`content.stage`, `content.existingUrl`) for the keyword. Queued,
drafted or published means stop and report the existing work. For an AutoSEO page, read its
row again with `list_articles`: `lastSentAt` for the hold, `enrich.eligible` for a refresh.
## 2 · Brief (reads only)
- **Searches** for an enrichment: `gsc_query` with `domain`, `dimensions: ["query"]`,
`days: 28`, `rowLimit: 25` and a filter `{dimension: "page", operator: "equals",
expression: <url>}`. For a new page: `dimensions: ["query", "page"]` with a `query`
`contains` filter on its core words, to see what Google shows of the brand today.
- **Prompts:** `get_engine_answers` with `brand` and the exact `prompt`, all engines, once:
who is named, which pages are cited, whether the brand's page is among them. For more on a
cited host, `list_citation_sources` with `search` set to it.
- **The brand's facts:** in a repository, its facts files (pricing, plans, product docs) with
`path:line`; otherwise the brand's own pages (fetch) or the user. Never from memory.
- **Link targets:** only URLs seen in this run (Search Console page rows, the coverage list,
the sitemap).
- **What wins:** one web search for the primary query or prompt. Note the type of the top
results (list, guide, tool, official page), their count, table, method and FAQ. Read at
most 3 winners, headings only. Learn the shape; never copy text.
- **The live page** for an enrichment: one fetch for title, H1, description, H2s, opening.
For an AutoSEO page, `get_article` also gives the stored text the blocks will change.
## 3 · DrafPreview of the first 4,000 characters. Read full instructions →
citation-sources2.69 KB
--- name: citation-sources description: Find the source sites and pages cited in Cituna's measured AI answers, compare engines, identify verified coverage gaps, and update requested outreach statuses. --- # Inspect citation sources and outreach Read [connection and evidence rules](../../references/connection-and-evidence.md). 1. Call `list_citation_sources` with the target domain. Match the requested `range` (`today`, `7d`, `30d`, `all`) and `engine` where relevant. The default range is 30 days; state it rather than implying all-time coverage. 2. Use `search` for a brand name, source host or URL fragment. Search can return cited pages excluded from outreach targets; preserve `excludedAs` and do not conflate all cited sources with suitable pitch targets. 3. Use `limit` and returned `nextOffset` to paginate targets. For a complete requested inventory, continue until `nextOffset` is null. Disclose truncation of other lists; pagination of targets does not establish completeness of search pages or `yourPagesEnginesCite`. 4. Report source hosts, sample page URLs, citation counts, engines, associated prompts and rivals. Use `get_engine_answers` for exact answer context, keeping its latest-day scope distinct from the source aggregation window. 5. Interpret `youOnThisSite` precisely: `linked` means linked to the brand, `mentioned` means named without a backlink, and `absent` means a completed page check found no brand. `unknown` and `unreachable` are not verified gaps. `gapsOnly: true` filters verified gaps and may undercount unexamined sources. 6. Show `yourPagesEnginesCite` to explain which owned pages already receive citations. Its 50-item cap can truncate results; absence from a capped list does not prove a page is never cited. Use `whatEachEngineReads` for engine comparisons and disclose that it covers all engines even when targets are filtered to one engine. 7. Prioritize observed source gaps by relevance and repeated citation evidence. Do not guarantee inclusion, recommendations or ranking improvements. ## Requested outreach status changes Read the target list first. Call `set_outreach_status` with the exact returned `host`, target domain, and one of `planned`, `pitched`, `placed`, `declined` or `none` (clear). Use `planned` for a requested plan, not `pitched` unless the user says outreach happened. Read `list_citation_sources` again to verify the change. Updating a status does not send an email or obtain a placement. Draft outreach copy if requested; this MCP has no tool for sending messages. ## Relevant tools `list_citation_sources`, `get_engine_answers`, `get_visibility`, `set_outreach_status`.
content-and-fixes4.53 KB
--- name: content-and-fixes description: Use Cituna to prioritize visibility fixes and content opportunities, manage gap statuses, inspect keyword and article queues, queue requested articles, edit or refresh AutoSEO articles, skip queued topics, and record pages already published. --- # Manage content opportunities and visibility fixes Read [connection and evidence rules](../../references/connection-and-evidence.md). For a weekly plan built from evidence, with drafting and 28-day re-checks, use the `autopilot` skill. ## Prioritize existing work 1. Read `list_gaps` for an explicit scan ID or the domain's latest audit. Preserve gap keys, category, impact, effort and existing status. 2. Use `list_keywords` for keyword evidence and article stages. Filter `stage: "none"` for keywords with no content yet. The optional Search Console join is enabled by default and metered; `includeSearchConsole: false` skips that join. It does not make all MCP usage unmetered. 3. Inspect `list_content_queue` before proposing or queueing an article. Match the requested `status` (`all`, `live`, `review`, `rejected`, `attention`). For a complete article inventory, pass each returned `nextCursor` as `before` until there is no next cursor; `limit` accepts 1 to 50. Later pages contain articles only, so keep the first page's pipeline context. Disclose partial coverage if you stop early. Existing queued, drafted or published work should not be duplicated. Distinguish a live rank-check result from a period-average GSC position; missing rank-check results outside its range are not evidence of zero search visibility. For the articles alone, `list_articles` returns one short row per AutoSEO article with its live URL and when it was published, last sent to the site, edited and refreshed. 4. Rank actions using actual impressions, observed citation gaps, relevance and effort. Keep estimates labeled. Use the search-console and citation-sources workflows for supporting evidence without automatically changing state. ## Apply requested actions | Intent | Tool and inputs | Verification | | --- | --- | --- | | Change a fix's status | `set_gap_status` with returned domain, `gapKey`, and `todo` / `doing` / `done` | Read `list_gaps` | | Queue an article | `queue_article` with domain and exact keyword from `list_keywords`; include supported evidence when available | Read `list_content_queue` and keyword state | | Record an already-live page | `mark_article_published` with domain, exact keyword, full HTTPS URL, optional title | Read content queue or keyword state | | Edit an AutoSEO article's text | `get_article` with the `id` from `list_articles`, then `update_article` with only the fields to change (`sections`, `faqs` and `tags` replace whole lists) | Read back with `get_article` | | Refresh a live AutoSEO article | `enrich_article` with the `id`, only when `list_articles` shows `enrich.eligible: true` | The returned `before` and `after` | | Remove queued topics | `skip_queued_topics` with ids from `list_content_queue` (`queued[].id`) | Read `list_content_queue`; `notQueued` ids were not open | Queueing schedules an AutoSEO draft on its next run and may have downstream effects under the user's existing automation settings. It does not guarantee an immediate draft or publication. Explain that effect when preparing the change. Handle duplicate notices as existing work, not a new queued article. `mark_article_published` records a page that is already live; it does not publish or edit a CMS page. Use it only when the user has supplied/confirmed the actual published page or the publication has otherwise been verified. It should not be called merely because text was drafted in chat. `update_article` changes Cituna's stored copy only: a page already on the site changes when the user sends the article again from the Cituna app. `enrich_article` does change the live pag
Preview of the first 4,000 characters. Read full instructions →
prompt-tracking4.24 KB
---
name: prompt-tracking
description: Select buyer questions worth tracking in Cituna using Search Console and existing evidence, and add, enable, disable, remove or replace tracked prompts when the user asks.
---
# Select and manage tracked prompts
Read [connection and evidence rules](../../references/connection-and-evidence.md).
## Recommend prompts
1. Resolve the brand with `list_brands`. Its brand `prompts` configuration, when
returned, is the current set of `{text, enabled}` entries. Read `get_visibility`
separately for questions measured in the latest saved scan and their engine
results. That scan can predate configuration changes and is not the current
prompt editor. Check `whoami` for workspace-wide prompt capacity. If current
configuration is missing, say it is unavailable rather than assuming it empty.
2. When GSC is connected, use `gsc_query`, `gsc_query_mix` or
`gsc_striking_distance` to identify observed buyer demand. `gsc_ai_searches`
can supply conversational-query candidates, but its classifications do not
prove AI-origin traffic. Respect history coverage and reporting lag.
3. Propose a small set aligned with the brand's actual offering, market and
language. Include category discovery, relevant use cases, comparisons and
buyer concerns where the evidence supports them. Avoid leading premises or
questions designed solely to force a brand mention.
4. Show each proposed prompt, its supporting query/evidence, buyer intent and
reason to track. Label rewrites or inferred questions as suggestions, never
literal GSC queries. If GSC is unavailable, use the user's supplied topics and
clearly disclose that demand is unverified.
5. Deduplicate against the current configured prompts and show the proposed additions and
capacity implications. A request for recommendations alone does not authorize
editing the tracked set. If the user asks to add/track specified prompts, apply
that instruction without an extra approval loop.
## Apply changes
Use `set_prompts` with the real brand ID/domain and the exact requested text:
| User intent | Argument | Effect |
| --- | --- | --- |
| Track additional questions | `add` | Preserves current questions; duplicates ignored |
| Resume questions | `enable` | Re-enables existing questions |
| Stop tracking for now | `disable` | Stops checks while retaining the question |
| Delete specified questions | `remove` | Removes them; destructive |
| Explicitly replace the whole set | `replace` | Deletes questions omitted from the replacement |
Prefer `disable` for pausing. Use `remove` only for an explicit deletion request.
Use `replace` only when the user explicitly requests a complete replacement and
the exact final set is established. Never combine `replace` with other actions.
An empty replacement is refused by this MCP; to pause everything, use `disable`
with the existing exact questions. Explain which questions will leave tracking
before deletion when the user has not already been told. A prompt-config update
does not prove that stored historical scans were deleted. Never silently remove
existing questions to fit a capacity limit. Adding an already-present disabled
prompt does not resume it; use `enable` for that.
Inspect the returned `counts`, `added`, `removed`, `notFound`, and final `prompts`
list. An `ok: true` response can still include unmatched questions in `notFound`;
report those as unapplied rather than claiming every requested edit succeeded.
Read `list_brands` again and compare the target brand's saved `prompts` text and
enabled flags. If that read does not expose the configuration, distinguish the
tool's write receipt from an independent verification and point to the app's
prompt settings. Do not repeat a write just to verify it.
Use `get_visibility` to check measurements only. New or resumed prompts may not
have answers until the next scan; changed configuratPreview of the first 4,000 characters. Read full instructions →
search-console3.7 KB
--- name: search-console description: Use Cituna's connected Google Search Console properties to analyze queries, pages, clicks, impressions, ranking opportunities, zero-click pages, intent, coverage and AI-style searches. --- # Analyze Google Search Console with Cituna Read [connection and evidence rules](../../references/connection-and-evidence.md). ## Connection and scope Call `gsc_status` and resolve the requested property from all connected accounts. If disconnected, guide the user to https://cituna.com/integrations to connect Google and verify the property, then recheck. Do not ask for Google credentials or claim this MCP can connect, disconnect or verify a Google property directly. Select the report that directly answers the request: | Request | Tool | | --- | --- | | Traffic summary, top queries/pages, country/device splits | `gsc_overview` | | Specific dimensions, filters, dates or pagination | `gsc_query` | | Queries near page one worth improving | `gsc_striking_distance` | | Pages with impressions and few or no clicks | `gsc_zero_click_pages` | | Brand, competitor, commercial and other query intent | `gsc_query_mix` | | Sitemap pages without observed impressions | `gsc_coverage_gap` | | Multiple owned pages competing for the same query | `gsc_cannibalisation` | | Queries with conversational or AI-style wording | `gsc_ai_searches` | ## Query and interpret correctly - Use a bare `domain`, or the exact accessible `siteUrl` where supported. Observe each tool's schema: overview supports 1–90 days; several analysis tools and raw queries support 1–480 days. Never assume the same bounds for every tool. - For `gsc_query`, choose dimensions from `query`, `page`, `country`, `device`, `searchAppearance`, `date`. Pair explicit `startDate` and `endDate`, or use trailing `days`. Filters combine with AND. Paginate with `startRow` when a response reaches `rowLimit`; disclose sampling if not retrieving every row. - State dates and GSC reporting lag. Inspect returned `history`, actual covered dates and `windowTruncated` before describing a period as a full month/quarter. Use comparable windows and property scopes for trends. - Use returned site totals for site totals. Named-query rows omit anonymized queries, so summing them may undercount. Calculate aggregate CTR from total clicks divided by impressions; do not average row percentages. Do not average positions without the appropriate weighting and scope. - Striking-distance `priority` is an ordering heuristic, not forecast traffic. For zero-click pages, preserve the tool's distinctions between brand searches, snippet issues, page-two position and deeper ranking. Phrase causes as the report's classifications rather than independently proven diagnoses. - No impressions is not proof a page is unindexed. `gsc_coverage_gap` compares sitemap URLs with observed impressions and cannot separate indexing failures from low visibility. Recommend checking URL Inspection when needed. - `gsc_ai_searches` identifies query wording; it does not measure Google's AI Overviews/AI Mode totals or prove where an individual query originated. Keep those heuristic results separate from Cituna's measured AI-engine answers. - Join GSC demand to prompt tracking, citations or content opportunities only with explicit matching evidence. If the match is semantic, label it as such. - Google access is read-only. This plugin cannot submit sitemaps, request indexing, change Google settings or mutate GSC data. ## Relevant tools `gsc_status`, `gsc_overview`, `gsc_query`, `gsc_striking_distance`, `gsc_zero_click_pages`, `gsc_query_mix`, `gsc_coverage_gap`, `gsc_cannibalisation`, `gsc_ai_searches`.
visibility-analysis3.94 KB
--- name: visibility-analysis description: Use Cituna to inspect measured AI answers, brand mentions and citations, compare engines and competitors, review audit history, or run a visibility scan when requested. --- # Analyze AI visibility with Cituna Read [connection and evidence rules](../../references/connection-and-evidence.md). Use this workflow for answers and audits. Use the sibling prompt-tracking skill to edit tracked questions, citation-sources for cited pages, and search-console for Google performance. ## Current visibility and actual answers 1. Establish the account and brand using the shared rules. 2. Call `get_visibility` with the returned brand ID or bare domain. Identify the latest measurement day and the exact strings in `prompts[].prompt`. 3. Call `get_engine_answers` for each requested prompt, copying its exact text. If no prompt is specified, start with the most relevant prompts and disclose the sample. Retrieve all requested prompts if the user requests full coverage. If `availablePrompts` is returned, select from that list instead of guessing. 4. Engine keys are `chatgpt`, `perplexity`, `gemini`, `claude`, `grok`, `aioverviews`, and `aimode`. Google AI Overviews and Google AI Mode are distinct surfaces. Omit the engine filter for a cross-engine comparison. 5. Report prompt, engine, date, measurement status, answer summary, brand mention or citation and cited position when returned, and source links. Mark answers with `truncated: true` as incomplete. Never infer an absent citation merely from text that may have been truncated. ## Audits, trends and competitors - Use `list_audits` with a domain filter, then `get_audit` for the needed scan IDs. Explain score components and show the citation matrix without counting missing measurements as misses. Inspect `scoring_epoch` before score comparisons. - For a weekly review, use actual dated audits that bracket the requested window. If history is insufficient, report the available snapshot and missing baseline. The daily visibility and answer tools return the latest stored day; they are not historical time-series endpoints. - Use `competitor_discovery` to find candidates observed in engine answers and GSC that are absent from the tracked competitor list. Distinguish configured competitors from newly observed candidates, and show the evidence source. This tool discovers rivals; it does not edit the competitor list. - For "why am I not cited", join the visibility grid and answer receipts with citation sources and, when connected, GSC evidence. Classify observed gaps without asserting that absent GSC rows prove non-indexation. Clearly label explanations about source selection as hypotheses. ## Requested fresh scan First read recent audits to determine whether existing data answers the request. Use `run_scan` only for an authorized fresh measurement with a clear target and known quota effects. Accept the URL/domain and up to eight explicit competitor domains supported by its schema. A scan can add an untracked brand. Respect backend plan and write-scope checks. An untracked domain without competitors can return a recent shared measurement instead of a new run. MCP v1.7.2 trims the scan response and does not reliably expose its measurement date, replay status or quota effect. Never invent those fields or label every successful response fresh. Compare `list_audits` before and after the requested run and use a returned scan ID/date when available. If there is no new history entry, state that freshness could not be confirmed; this alone does not prove a replay. Use account usage only when returned and avoid attributing concurrent usage changes to this scan. Do not automatically repeat a scan to resolve an uncertain result. ## Relevant tools `whoami`, `list_brands`, `gsc_status`, `get_visibility`, `get_engine_answers`, `list_audits`, `get_audit`, `c
Preview of the first 4,000 characters. Read full instructions →
Release notes
Adds Cituna Autopilot, three skills that run a weekly evidence-led loop on the 31-tool MCP service. autopilot plans only from Search Console queries, tracked prompts the brand is not named on and verified source gaps, and holds pages inside a 28-day measurement window. autopilot-write drafts approved pages with a claims ledger and a separate fact check. autopilot-measure logs each change and re-checks it after 28 days against the site's own trend. Pages AutoSEO wrote are worked through the server's article tools: list_articles for their change dates, update_article to edit Cituna's copy, enrich_article to refresh a due page's title, description and FAQs on the site, and skip_queued_topics to clear queued topics with no evidence. Nothing is written, queued, refreshed or published until the user picks it. No checkout, and no publishing of new pages to a CMS. 0.2.1 rewrites the listing description and moves the plugin to Data & Analytics. 0.2.2 adds the demo recording and rewords review case N3.
Declared in the saved package. Remote tools may change independently.
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package author
- Eternum Capital FZE LLC
- Keywords
- See keywords
- Declared availability
- No country restrictions declaredDeclared regions; live availability may differ.
- Commerce declaration
- Does not support commerceThis does not establish whether access is free or paid.
- Review scenarios
- 5 positive · 3 negativeScenario counts, not test results.
Declared capabilities
- Interactive
- Read
- Write
Package observed Nov 12, 2026.
Technical details
- First seen
- Nov 12, 2026 · 00:00 UTC
- Last seen
- Nov 12, 2026 · 12:00 UTC
- Collection status
- Collected
plugin_asdk_app_6ae474ea2c1c81918efff2bfa353d0a5
Download plugin data (JSON)Plugin details: freshly prepared. Prepared . Refreshed when plugin data changes or after 6 hours. Your account and Follow status are live.