Skip to main content
Profound MCP gives AI assistants read-only access to Profound’s Answer Engine Optimization (AEO), brand visibility, citation, sentiment, shopping, prompt volume, and Agent Analytics data. Use this page to understand what the hosted MCP server can do before connecting it to an MCP client. When you’re ready to connect, refer to the Connection guides.

How the tools work together

Most conversations start with the discovery tools, then move into reports. Here’s what that typically looks like:
1

Confirm access

Ask what data you can see. The assistant confirms the signed-in user, available organizations, regions, and entitlements with whoami.
2

Find the right scope

Ask about the brand or site you care about. The assistant resolves it with list_organizations, then list_categories for visibility reports or list_domains for traffic reports.
3

Add optional filters

Ask to narrow the question to a market, AI engine, prompt set, topic, or tag. The assistant resolves those filters with list_regions, list_models, list_tags, list_topics, and list_prompts.
4

Run a report

Ask about what you want reported. The assistant retrieves visibility, sentiment, citations, prompt answers, shopping, prompt volume, referrals, or bot crawl data for the date range you name.

Behavior and safety

All tools are read-only. They retrieve analytics data, but don’t create, update, or delete anything in Profound. All report tools set the following MCP hints: Dates are ISO 8601 strings in YYYY-MM-DD format. Reports validate start_date and end_date and return an actionable error if the date window is invalid.

Visibility reports

These tools are scoped to a category_id and a date range. Use them to understand how brands appear in AI answers, both in regular text answers and in shopping mode results.

Brand visibility reports

Use these tools to understand how brands appear in AI answers, how those answers feel, how accurate they are, and which sources AI engines cite.
Measures how often and how prominently a brand appears in AI answers for a category over a date range.Example prompts:
  • “How visible were we in AI answers last month, broken down by model?”
  • “Are we gaining or losing visibility against competitors this quarter?”
Default metric: visibility_score. The other metrics are share_of_voice and average_position.visibility_score is a raw decimal. Multiply it by 100 to match the percentage the Profound platform shows, so 0.42 is 42%.InputsNotes:
  • Every row carries an asset object of {name, owned}. Results are always grouped by brand as well as by group_by, so you get one row per brand per bucket.
  • limit caps top-level groups rather than rows, so a grouped query returns more rows than the limit you set.
Measures the sentiment AI answers express about one brand or competitor in a category over a date range, or the sentiment of the pages those answers cite.Example prompts:
  • “How do AI answers feel about our pricing?”
  • “Which cited pages are most negative about our brand?”
Sentiment comes from either the answers themselves or the pages they cite, and source selects which.InputsNotes:
  • citation_category, page_contains, citation_sort_by, and citation_sort_direction are available only when source is citation, and return an error otherwise.
  • Filters narrow results, and never group them. When source is citation, the model changes which pages qualify and their citation share, but the sentiment is still for the page, not for the model.
Shows which sources AI engines cite for a category, and how often, over a date range.Example prompts:
  • “Which sites do AI engines cite most in our category?”
  • “How often do AI answers cite our own domain?”
Default metrics: count and citation_share. count is raw citation frequency, and citation_share is averaged per AI model so it stays comparable across models.With no group_by, each row is one cited domain, ranked most cited first. Use that default to find which sites AI engines cite most.
group_by: ["page"] returns one row per cited page and can’t be combined with scope: "owned" or domain_filter, which both narrow to a domain.
InputsNotes:
  • Every row carries a rank, where 1 is the most cited. first_cited_at is returned on page rows only.
  • limit caps top-level groups rather than rows, so a grouped query returns more rows than the limit you set.
Retrieves the answers AI engines gave for a category’s prompts over a date range: the raw text behind the visibility metrics.Example prompts:
  • “What did AI engines answer for our savings prompts last week?”
  • “Pull the answers behind last month’s visibility drop.”
InputsNotes:
  • Several IDs in one list match any of those IDs. When both inputs are set, an answer has to match both.
  • Filters apply before pagination, so a filtered call pages through matching answers only.
Reports how accurately AI answers describe a category over a date range: the FactCheck score, its trend, and the accurate and inaccurate counts behind it.Example prompts:
  • “What’s our FactCheck score for last month?”
  • “Is accuracy improving, and which models are least accurate?”
Rows always return accuracy, accurate, and inaccurate. With no group_by, the report returns the headline score for the category.InputsNotes:
  • FactCheck is scoped to a category, so there’s no brand or competitor input.
  • Filters match names exactly.
  • topic_negate applies to topic only, and leaves the other filters narrowing as usual.
Lists the inaccurate claims AI answers made about a category over a date range.Example prompts:
  • “Which inaccurate claims came up in our category last month?”
  • “What’s the evidence behind the most common inaccurate claim, and which pages are cited for it?”
InputsNotes:
  • group_by takes one value, and group_by: ["tag"] can’t be combined with a tag filter. Grouping by date, citation, or claim isn’t supported.
  • citation_sources adds the pages cited for each claim, so it can’t be combined with group_by, and limit has to be 5 or less. A higher limit returns an error instead of being reduced automatically.
  • The include values add why each claim is inaccurate, which models repeated it, and which pages are cited for it. Those values can be combined, so one ungrouped call can return a claim’s theme, reasoning, models, evidence, and citation sources together.
  • For the score, its trend, or accurate and inaccurate counts, use get_factcheck_report instead.

Legacy visibility and citations reports

get_visibility_report and get_citations_report each have an earlier version that returns the legacy response shape: rows as positional values, grouped with dimensions rather than group_by, and without the scope and assets brand scoping. Both remain available for integrations built against the earlier shape.
These tools take a half-open date window: start_date is inclusive and end_date is exclusive. To cover all of April 2026, pass start_date: 2026-04-01 and end_date: 2026-05-01. The current tools treat both ends as inclusive, so the same dates cover a different window.
Measures how often and how prominently a brand appears in AI answers for a category over a date range, and returns the legacy response shape. For new integrations, use get_visibility_report instead.Default metric: visibility_score.Other useful metrics include share_of_voice, mentions_count, executions, and average_position. Useful dimensions include date, region, topic, model, prompt, tag, persona, and asset_name.InputsNotes:
  • visibility_score is a raw decimal. Multiply it by 100 to match the percentage the Profound platform displays.
  • Without an asset filter or asset_name in dimensions, visibility_score is summed across every tracked brand in the category, so the total can exceed 1. To scope the report to one brand, pass asset_filter or add asset_name to dimensions.
Shows which sources AI engines cite for a category, and how often, over a date range, and returns the legacy response shape. For new integrations, use get_citations_report instead.Default metrics: count and citation_share. Dimensions include hostname, path, root_domain, url, model, topic, prompt, tag, and persona.
root_domain_filter must be paired with dimensions: ["root_domain"].
Inputs

Shopping visibility reports

Shopping analysis data is currently available only for ChatGPT.
Use these tools to understand how brands, products, and retailers appear when AI answers a prompt with shopping mode results.
Start by asking the assistant how often the category’s prompts return shopping results (get_shopping_trigger_rate_report). If they rarely do, the other shopping reports have little data to show.
Measures how often each brand appears when ChatGPT returns shopping results. This is the shopping counterpart to get_visibility_report.Example prompts:
  • “Which brands appear most in ChatGPT shopping results for our category?”
  • “How does our shopping visibility compare to competitors, day by day?”
InputsNotes:
  • Every row carries an asset object of {name, owned}, and asset is always an implicit grouping key: results are one row per asset and group-by bucket.
Measures individual product visibility inside AI shopping results, one row per product plus any group-by bucket.Example prompts:
  • “How visible are our products in ChatGPT shopping results?”
  • “Where is our flagship product sold, and at what price?”
InputsNotes and tips:
  • The default metrics are visibility_score, average_position, visibility_rank, position1_percentage, position2_percentage, position3_percentage, position_above3_percentage, product_rating, and product_num_reviews.
  • The position metrics are how your assistant tells “always shown, always fourth” from “sometimes shown first”. Each one is a raw 0–1 fraction of the product’s appearances at that slot, and together they sum to about 1, so 0.30 is 30%.
  • include_merchants mode accepts no group_by or target_product, and the position-frequency metrics aren’t available in it.
Measures which retailers appear in a category’s shopping results.Example prompt:
  • “Which retailers does ChatGPT surface for our category?”
InputsThe view input decides what each row represents and which metrics are available.Each view accepts its own metrics, and the server rejects anything outside the set:Notes and tips:
  • This report has no merchant or product filter, so you can’t narrow the results to one retailer. Instead, narrow by topic, region, persona, prompt, or tag, then look up the retailer you care about in the returned rows.
  • The info.view metadata field names the view the server applied. view is optional and defaults to distribution, so if the rows don’t look like what you expected, check info.view to see which view produced them.
Measures how often prompts return shopping mode results. This is the denominator behind the other shopping reports, the assistant can use it to explain a thin or empty result.Example prompts:
  • “How often do our prompts trigger shopping mode results?”
  • “Which topics trigger shopping mode most often?”
InputsNotes and tips:
  • The default metrics are total_runs, shopping_triggered_runs, and trigger_rate_percentage.
  • Despite its name, trigger_rate_percentage is a decimal fraction between 0 and 1, so 0.17 means 17%.
  • Group results by prompt or topic to see which prompts or topics trigger shopping results most often. Those are the places where shopping visibility is worth optimizing.

Prompt volume reports

These tools measure demand for a keyword across everything people ask AI platforms. Ask about one keyword at a time; the assistant makes one call per keyword. To see how you appear in the prompts you track, ask for a visibility report instead.
When the assistant reports no estimate for a keyword, that doesn’t mean nobody asks about it. Either nothing matched the keyword in that date range, or every slice had two or fewer distinct users and Profound removed it for privacy.
Measures projected weekly and monthly volume for a keyword, by country and platform.Example prompts:
  • “How many people asked ChatGPT about running shoes last month?”
  • “Is demand for ‘project management software’ going up this quarter?”
Inputs
  • Figures come back as weekly and monthly projections, one per country and platform. Weekly figures are dated by the Monday of that week, and monthly figures by the first day of the month. A monthly figure exists only for a calendar month that falls fully inside the date range you ask about, never the current month, so a question about this month gets weekly figures only. A monthly figure isn’t the sum of its weeks, because a week that crosses a month boundary is split between the two months. When you need a monthly number, ask for one rather than adding up weeks.
  • A broad question, such as every country and platform over several months, can exceed the 10,000-row limit. The assistant then gets incomplete totals and info.truncated set to true. Narrow the question to a country, a platform, or a shorter date range to get complete figures.
  • Each new keyword counts toward your organization’s limit of 1,000 distinct keywords per UTC day. Asking again about a keyword you already looked up that day doesn’t count. If you reach the limit, wait and ask about the same keyword again. Rephrasing it uses more of the allowance.
Measures the share of conversations about a keyword that fall under each intent, so you can tell whether people are researching or ready to buy. It doesn’t measure how many people ask; get_prompt_volume does.Example prompts:
  • “Are people researching CRM software or ready to buy?”
  • “What intents drive AI conversations about electric bikes?”
Each intent comes back as a share of the classified conversations, as a fraction from 0 to 1 in pct_conversation, so 0.42 is 42%. Shares across all intents add up to 100%. Where an intent has subcategories, each subcategory is its own row (main_classification plus sub_category_classification), and the share for the main intent is the sum of its subcategories.Inputs
  • Asking about intents doesn’t count toward the daily keyword limit, but it shares a burst limit with get_prompt_volume. If the assistant is rate-limited, asking about the same keyword again a little later works.

Traffic reports

These tools are scoped to a tracked domain, not a category. The assistant resolves the domain with list_domains first and passes the exact hostname Profound returns.
Measures visits a domain received from AI engines, such as ChatGPT and Perplexity, over a date range.Default metric: visits. Useful dimensions include referral_type, referral_source, and date.Inputs
Measures AI crawler activity against a domain over a date range, including bots such as GPTBot and PerplexityBot.Example prompts:
  • “Which AI crawlers visit our domain?”
  • “Is GPTBot crawling us more since the site update?”
Default metrics: count and citations. Useful dimensions include bot_provider, bot_name, bot_type, and date.Inputs

Resources

Profound MCP also exposes read-only MCP resources: static reference material that an MCP client can load into context. The {term} slot accepts any slug from the glossary index, which includes the metrics and report concepts behind this page’s tools: