Insights tools
Query brand visibility, sentiment, alignment, citations, and shopping from an LLM agent
The 13 Insights tools answer questions like "how are LLMs describing my brand?" and "which sources cite us?" — all read-only, no credits consumed.
Served at https://mcp.getmint.ai/mcp. See Connect, Authentication, and the Capabilities matrix. The MCP is a curated read set; the full Insights surface (per-report detail, prompt config, topic management, wider shopping, sponsored ads) stays on the REST API.
Discovery
list_domains — Every domain your org can reach. Usually the first call; other tools need a domainId.
Inputs: none.
get_domain — One domain's brand attributes, aliases, tracked markets/languages, owned sources. Every prompt of a brand attribute carries the attribute's id (attributeId, or its own id for the attribute's first prompt), the id alignment results are grouped by.
Inputs: domainId (required).
list_topics — A domain's tracked topics (competitors live here, not on the domain).
Inputs: domainId (required).
get_topic — One topic's config: prompts, LLM models, markets. name is the stored label; displayName is what the topic is shown as and what its competition prompts compare brands on, and competitionSubject overrides that subject when you set one. Both are absent when unset, in which case name is used.
Inputs: domainId, topicId (required).
get_topic_summary — Quick headline for a topic, your brand only: summary.averageVisibilityScore and summary.averageCompetitionScore (0–100, averaged over the last 30 days), report counts, lastAnalyzed, analysisRange, and trends (improving / declining / stable). No competitor figures, no sentiment.
Inputs: domainId, topicId (required). The 30-day window is fixed.
Visibility & competition
get_topic_visibility — How often LLMs mention your brand vs each competitor. Returns a transformed payload: visibilityScore (your brand, 0–100), scoreVariation (change vs previous period, percentage points), competitors ({ name, visibilityScore }, ranked highest-first), modelBreakdown (per-model), topMentions (top 10), totalAnswers (how many answers the scores are computed from), dateRange (first and last analysis dates the scores cover).
Inputs: domainId, topicId (required); startDate, endDate (optional ISO dates), models (optional model families).
Omit startDate/endDate for the default: last 6 months, and models to cover every model. Each call returns totals for its window — no time series, no rolling average — so for month-by-month figures, call once per month. For the full, untrimmed report, call GET /domains/{id}/topics/{topicId}/visibility/aggregated over REST — see the Cookbook.
get_topic_mentions — Share-of-voice leaderboard: brands ranked by how often LLMs name them. Returns mentions ([{ mention, count, percentage }], by count), mentionsDetailed (per-model { mention, modelId, count }), and pagination.
Inputs: domainId, topicId (required); startDate, endDate (optional ISO dates), models (optional model families); page, pageSize (optional, max 100).
percentage is each brand's cumulative share over the requested window (default: last 6 months), not a rolling share of voice. For a monthly series, call once per month with that month's startDate/endDate.
get_topic_competition — Your brand's competition score on the topic's 10 most recent analyses, newest first: each with reportDate, averageScore (0–100), scoreVariation, availableModels. No per-competitor scores.
Inputs: domainId, topicId (required). Takes no date and cannot reach older analyses, so it is not a monthly history.
Brand perception
get_domain_sentiment_aggregated — "How are LLMs describing my brand?" — aggregated sentiment scores, quotes, and trend. modelBreakdown[] gives each model its own average score.
Inputs: domainId (required); fromDate, toDate (optional, inclusive ISO dates); citationsPage, citationsPageSize (optional).
get_domain_alignment_aggregated — How closely LLM depictions match the brand's stated attributes. modelBreakdown[] gives each model its own average score; modelAttributeScores splits it by attribute id, and attributeBreakdown[] names each id (removed: true for an attribute since dropped from the brand profile).
Inputs: domainId (required); fromDate, toDate (optional, inclusive ISO dates); citationsPage, citationsPageSize (optional).
Every scan produces one report per model. Both aggregates average each model over its own reports, so modelBreakdown[].score is comparable across models even when one of them ran on fewer days.
fromDate/toDate translate to the endpoint's startDate/endDate; omit them for the last 6 months. The topic tools take startDate/endDate directly, plus models.
Both reports carry a citations block, and it is paginated default 20 · max 100. citations.items holds one page; totalItems, totalPages and hasMore describe the rest.
Prop
Type
Inline, the citation list is 93-99% of these responses — hundreds of KB on an active domain, past what some agent hosts accept in one tool result. Ask for the page you need; for the complete list over an arbitrary window, use GET /domains/{id}/{sentiment,alignment}/aggregated over REST.
Citations & sources
get_domain_explorer_aggregated — What your brand is known for in LLM answers. Returns topKeywords and topSources (each { count, percentage }), summary, domainSourceAnalysis, availableModels, availableTopics, reportCount, dateRange, totalAnswers. Top lists are top 25 and webSearchResults is dropped to stay compact.
Inputs: domainId (required); topicId (optional — narrows to one topic; visibility + competition only).
list_explorer_citations — Paginated individual citations, row by row. Each row carries link (cited URL), linkDomain, analysis type, and model. Filter to drill down to exact threads, videos, and pages.
Prop
Type
Always scoped to the last 1 month 1-month cap — the citation set is huge and a wider window would time out. Read further by passing the response's nextCursor back as cursor (or page with page/pageSize); for arbitrary ranges, query the REST endpoint directly.
Places
get_mention_entities — The places your brands are named at: a specific hotel property, store or branch, rather than the brand as a whole. Returns rows with displayName, propertyName (the establishment's own name, such as "ibis Paris Porte de la Chapelle", when the answer named one), countryCode, cityText, localityText, ownership (ourbrand / competitor / other, resolved live against your current configuration), mentions and mentionRate. On the default entity axis, two hotels of one brand in the same district are two rows.
mentions counts distinct answers — an answer naming one property three times counts once — and mentionRate is that over every answer in the window, 0-100.
Inputs: domainId (required), plus groupBy (entity by default, or country / city / locality / brand), segment, search, sortBy, sortDir, page, limit and the usual window filters.
get_mention_entity_geo — Where those brands are named. Returns two independent layers: countries (per-country totals, always populated) and points (one per named establishment, with its propertyName and brandName, and one per place named without an establishment, with coordinates where they have been resolved). A point's precision is property when it sits on the establishment itself; an establishment not located yet sits at its district or city until it is. unlocatedPoints says how many places carry no coordinates yet; they still count toward their country total, so countries is never under-reported by them.
Inputs: domainId (required), plus segment, brandName and the usual window filters.
Both require brand entity extraction on the organization. Without it there is simply nothing to read: the tools return an empty list rather than an error.
Shopping
get_topic_shopping_overview — The shopping overview of one topic: how often the answers came back with product carousels, how often a product of the brand is in them and at what position (its mean slot against the longest carousel), the competitor brands on the shelf, the merchants and the top products, with the topic name. Fed by the prompts of the topic assigned to shopping, on ChatGPT and Alexa Shopping. Shopping surface only — for the answer-engine ranking use get_topic_mentions. Empty sections when no prompt of the topic feeds shopping.
Inputs: domainId, topicId (required); startDate, endDate, usedModels, tagIds, granularity (optional).
Example Agent Session
User: How is my brand positioned vs. competitors for the topic "cloud security"?
Agent:
list_topics→ found "Cloud Security".get_topic_visibility→ your brand 34%, Competitor A 28%, Competitor B 19% (ranked, per-model split).get_topic_mentionsgives the same ranking by raw mention share;list_explorer_citations(linkDomain: ["reddit.com"]) surfaces the threads driving it;get_domain_sentiment_aggregatedconfirms sentiment is positive. Wantget_topic_competitionfor how your competition score moved over the last few analyses?