Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

com.cituna/cituna-mcp

NPM · CITUNA-MCP · SCANNED AUG 3

Track how 6 AI engines cite your brand, daily, with live Google Search Console.

Available components

65 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security86
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3783 tokens (~236/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · cituna-mcp

# add to Claude Code
claude mcp add com-cituna-cituna-mcp -- npx -y cituna-mcp
# add to Codex CLI
codex mcp add com-cituna-cituna-mcp -- npx -y cituna-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-cituna-cituna-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "cituna-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-cituna-cituna-mcp --command npx --arg -y --arg cituna-mcp
# ~/.hermes/config.yaml
mcp_servers:
  com-cituna-cituna-mcp:
    command: "npx"
    args: ["-y", "cituna-mcp"]
// mcp.json
{
  "mcpServers": {
    "com-cituna-cituna-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cituna-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 65

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 16 exposed · ~2,818 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
get_audit ~211

Get one AI-visibility audit in detail by scanId (from list_audits): overall AI-citation score + SEO/GEO/authority scores, per-engine citation summary (ChatGPT/Perplexity/Gemini/Claude/Grok/Google AI Overviews), the query×engine citation matrix, competitors cited, the top prioritised gaps (title, category, impact, effort), and pass/warn/fail audit check counts. In the citation matrix every engine appears explicitly per query with one of three states: "cited" (the engine's answer cited the brand), "not_cited" (the engine answered but did not cite the brand), or "not_run" (the engine produced no measured answer for that query — it sat the query out or errored; NOT a miss). Bulky raw fields (page HTML, full engine answers) are omitted. Requires a signed-in account.

NameTypeReqDescription
scanIdstringyesThe audit/scan id from list_audits.

No output schema declared.

No examples provided.

get_engine_answers ~260

The RECEIPTS behind the tracking grid. For a brand (id or domain) and one tracked prompt — optionally a single engine — returns the actual stored answer text each engine gave on the most recent day, the brands it cited, the source URLs, and whether your brand was cited and at what position. Answer text is capped (~4000 chars per engine) with a `truncated` flag. Copy the exact prompt text from get_visibility's prompts[].prompt; a prompt that isn't found returns availablePrompts to pick from. Requires a signed-in account; works on Starter and up (the free trial has no MCP access).

NameTypeReqDescription
brandstringyesThe brand — a brand id (from list_brands) OR its bare domain, e.g. 'acme.com'.
enginestringOptional — limit to a single engine. One of: ChatGPT, Perplexity, Gemini, Claude, Grok, or Google AI Overviews (pass the key `aioverviews` for that last one; the others are their lowercase name, e.g.…
promptstringyesThe exact tracked prompt text to pull answers for — copy it from get_visibility (prompts[].prompt).

No output schema declared.

No examples provided.

get_visibility ~222

Your brand's LATEST DAILY TRACKING GRID — the core Cituna deliverable. For a brand (a brand id from list_brands, OR its bare domain), returns the most recent day's per-prompt × per-engine grid: for every tracked prompt and each of the six engines (ChatGPT/Perplexity/Gemini/Claude/Grok/Google AI Overviews) whether your brand was cited, its position when cited, the engine mode that ran (live/value/lite/off), plus per-cell status (cited / answered / empty / error / notrun). Also the brand's current visibility score, its label, and the UTC day it was measured. Compact JSON, designed to be read directly. Use get_engine_answers to see what an engine actually said for a prompt. Requires a signed-in account; works on Starter and up (the free trial has no MCP access).

NameTypeReqDescription
brandstringyesThe brand to report on — a brand id (from list_brands) OR its bare domain, e.g. 'acme.com'.

No output schema declared.

No examples provided.

gsc_overview ~181

Live Google Search Console SUMMARY for a domain over the last N days: headline totals (clicks, impressions, CTR, average position) plus top queries, top pages, country and device splits, and a day-by-day time series. Windows are UTC and end ~2 days ago (GSC reporting lag). Best default for 'how is my search traffic doing?'. Requires a paid plan (Starter+). Returns {configured:false, message} if GSC isn't connected or no property matches the domain.

NameTypeReqDescription
daysintegerTrailing window in days (1–90). Default 28. Data lags ~2–3 days, so the window ends ~2 days ago.
domainstringyesBare domain to report on, e.g. 'example.com' (no scheme/path). Must match a connected GSC property.

No output schema declared.

No examples provided.

gsc_query ~464

Run an arbitrary Google Search Console Search Analytics query — the raw, flexible tool. Choose any dimensions (query, page, country, device, searchAppearance, date), an explicit date range OR a trailing `days` window, a row limit, and optional filters. Use dimensions:['date'] for day-by-day trends; ['country'] or ['device'] for splits; add filters to focus on a specific query or page. Windows are UTC and end ~2 days ago (GSC lag). Returns rows with keys[] plus clicks/impressions/ctr/position. Default rowLimit 100 — page with startRow when capped. Requires a paid plan (Starter+).

NameTypeReqDescription
dataStatestring'final' (default, stable) or 'all' (includes the freshest partial data for the last ~2 days).
daysintegerTrailing window in days (1–480) when startDate/endDate are omitted. Default 28. Window ends ~2 days ago (GSC lag).
dimensionsarrayDimensions to group by. Default ['query'].
domainstringBare domain, e.g. 'example.com'. Resolved to a connected GSC property. Provide this OR siteUrl.
endDatestringYYYY-MM-DD. Overrides `days`. Must be paired with startDate.
filtersarrayOptional filters, combined with AND. Each: {dimension, operator, expression}. e.g. {dimension:'query', operator:'contains', expression:'pricing'} or {dimension:'country', operator:'equals', expressio…
rowLimitintegerMax rows to return (1–25000). Default 100.
siteUrlstringExact GSC property instead of a domain, e.g. 'sc-domain:example.com' or 'https://example.com/'. Optional.
startDatestringYYYY-MM-DD. Overrides `days`. Must be paired with endDate.
startRowintegerZero-based offset for pagination. Default 0.
typestringSearch type. Default 'web'.

No output schema declared.

No examples provided.

gsc_status ~81

The authoritative Google Search Console connection check for this workspace: whether GSC OAuth is configured server-side, whether THIS workspace has connected (`connected`), the connected Google account email, and the list of verified GSC properties (site URLs / sc-domain: properties) available to query. whoami does not report GSC state — this tool is the truthful signal.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_audits ~139

List recent AI-visibility audits (scans) for your workspace, newest first: scanId, domain, date, AI-citation score, on-page SEO / GEO / authority scores, open-gap count, and each audit's scoring_epoch (the score-formula version that produced it). Only compare scores between audits with the SAME scoring_epoch — across epochs the scores are re-based, so compare citation counts instead. Pass a scanId to get_audit for the full breakdown. Requires a signed-in account.

NameTypeReqDescription
domainstringOptional client-side filter — only return audits for this bare domain, e.g. 'acme.com'.

No output schema declared.

No examples provided.

list_brands ~38

List the brands/domains tracked in this Cituna workspace. Handy for discovering which domains you can pass to the audit and gsc_* tools.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_content_queue ~84

The AutoSEO content pipeline for a domain: topics waiting to be written, and the articles already generated or published, with the keyword or prompt that produced each one. Use it to see what is in flight before queueing more. Free, reads stored data. Requires a signed-in account.

NameTypeReqDescription
domainstringyesBare domain, e.g. 'acme.com'.

No output schema declared.

No examples provided.

list_gaps ~146

The fix/action queue for a domain: each AI-visibility gap with its stable gapKey, current status (todo / doing / done), title, category, impact, effort, and the concrete fix. Pass a scanId (exact audit) OR a domain (uses that domain's newest audit). Use set_gap_status to update a gap. Requires a signed-in account.

NameTypeReqDescription
domainstringBare domain, e.g. 'acme.com' — uses its most recent audit. Optional if `scanId` is given.
scanIdstringAudit id (from list_audits) to read gaps from. Optional if `domain` is given.

No output schema declared.

No examples provided.

list_keywords ~148

The keyword board for a domain: every tracked keyword with its Google position (or 'not ranking'), monthly search volume, competition, the verdict on what to do about it, and — the part that makes this actionable — whether an article for it is already queued, drafted or published. This is the join you want before writing anything: it tells you which keywords still have no page behind them. Free, reads stored data, spends no quota. Requires a signed-in account.

NameTypeReqDescription
domainstringyesBare domain, e.g. 'acme.com'.
stagestringOptional filter on content state. 'none' is the useful one: keywords with nothing written for them yet.

No output schema declared.

No examples provided.

mark_article_published ~173

Tell Cituna a page for this keyword is LIVE on the site — one you wrote yourself, published from your own CMS, or produced by driving this MCP. Cituna then stops suggesting the topic, shows the keyword as published on the Keywords board, and stops offering to write a competing page for it. Use it right after you publish; pass the keyword exactly as list_keywords shows it and the page's full https URL. WRITE ACTION — requires a Pro plan or higher.

NameTypeReqDescription
domainstringyesBare domain the page belongs to, e.g. 'acme.com'.
keywordstringyesThe keyword this page targets, as listed by list_keywords.
titlestringOptional page title. Defaults to the keyword.
urlstringyesFull https URL of the published page.

No output schema declared.

No examples provided.

queue_article ~184

Queue an article for a keyword so AutoSEO drafts it on the next run. Pass the keyword exactly as it appears in list_keywords, plus its numbers when you have them (they are kept as provenance and used to prioritise the queue). Queueing a keyword that already has a topic or article returns a duplicate notice rather than a second copy. WRITE ACTION — requires a Pro plan or higher; on Starter/trial the MCP is read-only.

NameTypeReqDescription
competitionnumberOptional competition, 0-1.
domainstringyesBare domain the keyword belongs to, e.g. 'acme.com'.
keywordstringyesThe keyword to write about, exactly as listed by list_keywords.
positionnumberOptional current Google position, if the site ranks at all.
volumenumberOptional monthly search volume, for queue priority.

No output schema declared.

No examples provided.

run_scan ~260

Run an AI-visibility audit for a website and return the completed result (scores, citation matrix, competitors, top gaps). A fresh scan takes about a minute and CONSUMES ONE SCAN from your monthly quota. Two honest caveats: (1) for a domain the workspace does not already track (and with no competitors passed), the backend may answer from a recent shared measurement up to 7 days old — that replay consumes no quota and adds NO entry to list_audits; (2) a successful scan of a new domain also adds it as a tracked brand, which counts against the plan's brand cap. Optionally pass competitors to steer the comparison (this forces a fresh run). Prefer list_audits/get_audit to read an existing audit for free; use run_scan only when fresh data is needed. WRITE ACTION — requires a Pro plan or higher; on Starter/trial the MCP is read-only (run scans in the app instead).

NameTypeReqDescription
competitorsarrayOptional competitor domains to compare against (up to 8). Steers the comparison instead of relying only on auto-detection.
urlstringyesSite to scan — bare domain 'acme.com' or full URL 'https://acme.com'.

No output schema declared.

No examples provided.

set_gap_status ~115

Update one gap's status in the action queue (todo / doing / done). Use the gapKey and domain from list_gaps. e.g. mark the schema gap for acme.com done. WRITE ACTION — requires a Pro plan or higher; on Starter/trial the MCP is read-only.

NameTypeReqDescription
domainstringyesBare domain the gap belongs to, e.g. 'acme.com'.
gapKeystringyesThe stable gapKey from list_gaps.
statusstringyesNew status.

No output schema declared.

No examples provided.

whoami ~112

Return the authenticated Cituna account (email, workspaceId, role), the backend URL, your plan (Starter/Pro/Max), and — when available — the full usage meters: per-tool used/limit (scans, MCP calls, GSC reads, …) plus brand and prompt-pool counts. Use this first to confirm the connection works. Does NOT report Search Console state — call gsc_status for that. Fails with an actionable message if the API key is missing, invalid, or revoked.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.