Skip to main content
Glama
mambalabsdev

AI Answer Visibility Tracker MCP Server

AI Answer Visibility Tracker MCP Server

Smithery Glama score MCP Registry npm version npm downloads license mcpservers.org

An MCP server for the Mamba Labs AI Answer Visibility Tracker actor on Apify. Give it a brand and the questions its buyers ask. Each question is asked several times on Google AI Overviews and, on your own API keys, on ChatGPT, Claude, Perplexity, and Gemini, and every answer is checked for the brand.

What's Inside

Related MCP server: mcp-server-peecai

What it does

  • Sample rows: one row per answer, with brand_named, brand_cited, first_mention_rank, competitors_named, competitors_cited, cited_domains, and an answer excerpt.

  • Rates rows: one question_summary row per question and engine, with brand_named_rate, brand_cited_rate, a 95 percent range for the named rate, the top cited domains, and each competitor's rates. One free brand_summary row per engine covers all questions.

  • Google AI Overviews with no key: shown, not_shown (no overview on the page), or deferred (Google writes the overview live and loads it after the page; free and left out of the rates).

Bad input returns one free row whose error_reason starts with input_invalid:.

All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:

{
  "mcpServers": {
    "mamba-ai-answer-visibility-tracker": {
      "command": "npx",
      "args": [
        "-y",
        "@mambalabsdev/mcp-ai-answer-visibility-tracker"
      ],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}

Restart the client. The track_ai_answer_visibility tool appears.

To ask ChatGPT, Claude, Perplexity, or Gemini as well, add that vendor's key to the same env block: OPENAI_API_KEY, ANTHROPIC_API_KEY, PERPLEXITY_API_KEY, or GEMINI_API_KEY.

Prerequisites

  • Node.js 18 or newer.

  • An Apify API token from console.apify.com/account/integrations, set as APIFY_TOKEN. The server lists its tool without a token; a call needs one.

  • Optional: your own OpenAI, Anthropic, Perplexity, or Google AI Studio key for those engines.

Example prompts

  • "Does Google's AI Overview mention HubSpot for best crm for small business? Ask 3 times."

  • "For these 10 questions, how often do AI answers name Attio, and how often do they name HubSpot and Pipedrive?"

  • "Which sites do AI Overviews cite most for best wiki tool for a remote team?"

Tool

track_ai_answer_visibility. One tool. Example arguments:

{
  "brand_name": "HubSpot",
  "brand_domain": "hubspot.com",
  "questions": [
    "best crm for small business"
  ],
  "samples": "3",
  "competitors": [
    "Pipedrive|pipedrive.com",
    "zoho.com"
  ]
}

Inputs

Every buyer facing input of the actor except the four engine keys, which come from the server environment so they never pass through the conversation. Omitted inputs take the actor's own defaults. Numbers and booleans are sent as strings.

Input

Type

Description

brand_name

string

Required. The brand to look for, as people write it. Matched as a whole word, any case

questions

array

Required. 1 to 50 questions buyers ask

brand_domain

string

The brand domain, such as hubspot.com. A cited page on it, or on a subdomain, counts as cited

engines

array

Any of google_ai_overview, openai, anthropic, perplexity, gemini. Default google_ai_overview

samples

string

Asks per question per engine, 1 to 10. Default 3

competitors

array

Up to 20, as a name, a domain, or name|domain

brand_aliases

array

Other ways answers write the brand

country, language

string

For Google. Default us, en

include_answer_text

string

true (default) or false

openai_model, anthropic_model, perplexity_model, gemini_model

string

Defaults gpt-5-mini, claude-sonnet-5-5, sonar, gemini-2.5-flash

max_charge_usd

string

Optional. The run stops before it would charge more than this

Pricing

Pay per event on Apify, billed to your Apify account. Prices in USD.

Event

Free plan

Bronze

Silver

Gold

ai-overview-sample, one Google result page read for one question

$0.0316

$0.03002

$0.02844

$0.02686

answer-sample, one answer from ChatGPT, Claude, Perplexity, or Gemini on your own key

$0.009

$0.00855

$0.0081

$0.00765

question-summary, one rates row per question and engine

$0.003

$0.00285

$0.0027

$0.00255

apify-actor-start, per run start

$0.001082

$0.001082

$0.001082

$0.001082

Deferred Google samples, blocked pages, engine errors, the brand rates rows, and refused input are free.

Your keys

Google AI Overviews needs no key. ChatGPT, Claude, Perplexity, and Gemini run on your own API key, read from this server's environment and passed in the run input as a secret field. The actor sends a key only to that vendor's API and never logs, stores, or returns it. The model use is billed to you by that vendor. Mamba Labs pays the Apify platform and proxy costs of the run.

Full actor documentation

apify.com/mambalabs/ai-answer-visibility-tracker

License

MIT. See LICENSE.

Available Tools

1 tool
track_ai_answer_visibilityTrack brand visibility in AI answersA
Read-only

Check whether AI answers name and cite a brand for the questions its buyers ask. Give brand_name, brand_domain, and questions (for example "best crm for small business"). Each question is asked samples times (default 3) on each engine: google_ai_overview needs no key; openai (ChatGPT), anthropic (Claude), perplexity, and gemini run on the caller's own API keys, which this server reads from its environment (OPENAI_API_KEY, ANTHROPIC_API_KEY, PERPLEXITY_API_KEY, GEMINI_API_KEY). Returns one sample row per answer (brand_named, brand_cited, first_mention_rank, competitors_named, cited_domains, answer_excerpt), one question_summary row per question and engine (brand_named_rate, brand_cited_rate with a 95 percent range, top_cited_domains, competitor rates), and one free brand_summary row per engine. Bad input returns one free row whose error_reason starts with input_invalid. A run that does not succeed is returned as an error with its run ID. Read-only; requires an APIFY_TOKEN; Apify charges per Google sample, per engine sample, and per question rates row.

NameRequiredDescriptionDefault
countryNoTwo letter country code for Google, such as us or gb. Default us.
enginesNoWhere to ask. Default google_ai_overview only. openai, anthropic, perplexity, and gemini need that vendor's API key in this server's environment; the model use is billed to the key owner by the vendor.
samplesNoHow many times each question is asked on each engine, 1 to 10. Default 3.
languageNoLanguage code for Google, such as en or de. Default en.
questionsYes1 to 50 questions buyers ask, written the way they would type them, for example best crm for small business.
brand_nameYesThe brand to look for in the answers, as people write it, for example HubSpot. Matched as a whole word, any case.
competitorsNoUp to 20 competitors to track in the same answers, as a name, a domain, or name|domain (Pipedrive|pipedrive.com).
brand_domainNoThe brand website domain, such as hubspot.com. An answer that cites a page on it, or on a subdomain, counts as cited.
gemini_modelNoModel for the gemini engine. Default gemini-2.5-flash.
openai_modelNoModel for the openai engine. Default gpt-5-mini.
brand_aliasesNoOther ways answers write the brand, such as a product name. Up to 10.
max_charge_usdNoOptional. The run stops before it would charge more than this.
anthropic_modelNoModel for the anthropic engine. Default claude-sonnet-5-5.
perplexity_modelNoModel for the perplexity engine. Default sonar.
include_answer_textNotrue (default) returns the answer text up to 8,000 characters on each sample row; false returns the 300 character excerpt only.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnly, openWorld, non-idempotent) by disclosing billing implications, the APIFY_TOKEN requirement, per-vendor API key consumption billed to the key owner, and max_charge_usd protection. It also explains failure behavior precisely: invalid input yields a free row with error_reason starting with input_invalid, and a failed run returns an error carrying the run ID.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then inputs, then cost/auth, then return shape — a sensible order with no filler sentences. It is a single dense block that repeats a few schema details (env var names, default sample count), slightly longer than necessary but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters and no output schema, the description carries the burden of explaining returns and does so concretely: sample rows with brand_named/brand_cited/first_mention_rank, question_summary rows with rates and a 95 percent range, and a free brand_summary row per engine. Error paths and cost/auth prerequisites are also covered, leaving no material gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented with examples and defaults; the description mostly restates that (samples default 3, example question, engine key requirements). The added value is limited to reinforcing which inputs are required and how a question should be phrased, which is the baseline expectation when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: checking whether AI answers name and cite a brand for buyer questions, across named engines. There is no sibling to confuse it with, and the first sentence alone tells an agent exactly what the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: which engines need which API keys in the server environment, that google_ai_overview needs none, default sample counts, and that Apify charges per sample and per rate row. It does not state exclusions (e.g. when not to use it), but with no sibling tools and a single obvious use case, the guidance is nearly complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedtrack_ai_answer_visibility

TDQS

A4.4/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of tool-selection confusion. Its purpose is clearly scoped to checking AI answer visibility for a brand across questions and engines.

Naming Consistency5/5

The single tool uses a clear snake_case verb_noun pattern: track_ai_answer_visibility. With only one tool, there are no competing conventions or naming inconsistencies.

Tool Count4/5

A single tool is reasonable for a focused visibility-tracking operation, and it avoids unnecessary surface area. However, the one tool bundles many engines, sampling, and summary outputs, so 1 tool is on the thin side and could arguably be split into more granular operations.

Completeness4/5

The tool covers the core domain well: multi-engine querying, sampling, per-answer rows, per-question summaries, per-brand summaries, and input/error handling. Minor gaps remain around retrieving prior runs by run ID or managing historical visibility comparisons, but the main workflow is complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Audit your brand's visibility across ChatGPT, Perplexity, Claude, and Google AI - get citation rates, AEO health scores, content gap analysis, and a 9-page content suite to rank in AI-generated answers.
    5
    51 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Track how your brand appears in AI-generated answers across ChatGPT, Perplexity, and other AI models. Analyze visibility, sentiment, citations, and domain rankings with 31 tools — including analytics reports, chat inspection, query analysis, and full CRUD for brands, prompts, tags, and topics.
    17
    52 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables auditing AI search visibility: checks site readiness for AI crawlers and measures whether ChatGPT, Gemini, and Perplexity recommend your site, including verbatim answers and citation gap analysis.
    79 npm
    4
    AGPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Enables querying a brand's visibility in AI assistant answers, including competitor presence, tracked prompts, and the answers and sources behind the metrics.
    60
    MIT