Profound MCP uses OAuth 2.1. Each tool runs as the authenticated Profound user and returns only the data that user can access.
How the tools work together
Most workflows start with discovery, then move into reports. Here’s what that typically looks like:Confirm access
Use
whoami to confirm the signed-in user, available organizations, regions, and entitlements.Find the right scope
Use
list_organizations, then list_categories for visibility reports or list_domains for traffic reports.Add optional filters
Use
list_regions, list_models, list_tags, list_topics, and list_prompts to narrow a report to the relevant market, AI engine, prompt set, topic, or tag.Behavior and safety
All tools are read-only. They retrieve analytics and reference data, but don’t create, update, or delete anything in Profound.| Behavior | What it means |
|---|---|
| Non-destructive | No tool performs destructive updates |
| Live data | Tools read from the Profound API, so results reflect the caller’s current access and data |
| Hint | Value | What it means |
|---|---|---|
readOnlyHint | true | The tool only reads data |
idempotentHint | true | The tool is safe to retry with the same arguments |
YYYY-MM-DD format. Reports validate start_date and end_date and return an actionable error if the date window is invalid.
Discovery tools
Use discovery tools to resolve human-readable context into IDs that report tools can use.| Tool | Use it for |
|---|---|
whoami | Confirm the authenticated principal, organizations, regions, and entitlements |
list_organizations | List organizations the user can access |
list_regions | List geographic regions, optionally scoped to an organization |
list_models | List tracked AI models such as ChatGPT, Perplexity, Google AI Overviews, and Gemini |
list_categories | List tracked categories for an organization |
list_domains | List tracked domains for an organization |
list_tags | List tags in a category |
list_topics | List topics in a category |
list_prompts | List configured prompts in a category, with optional status, tag, and topic filters |
whoami
whoami
Confirm the authenticated user, organizations, regions, and entitlements available to this MCP session.Inputs: none.
list_organizations
list_organizations
List the organizations the authenticated user can access. Returned IDs feed category, domain, and report tools.Inputs: none.
list_regions
list_regions
List geographic regions configured for an organization. Omit
Example:
org_id to see regions across all accessible organizations.| Input | Required | Default | Description |
|---|---|---|---|
org_id | No | null | Organization to scope to |
list_models
list_models
List the AI models Profound tracks. Use returned model IDs to filter reports to a single engine.Inputs: none.
list_categories
list_categories
List tracked categories, markets, or segments in an organization. Most brand visibility reports are scoped to a category.
Example:
| Input | Required | Default | Description |
|---|---|---|---|
org_id | Yes | - | Organization whose categories to list |
list_domains
list_domains
List tracked domains for an organization. Domains are exact hostnames, so
Example:
www.example.com and example.com are distinct.| Input | Required | Default | Description |
|---|---|---|---|
org_id | Yes | - | Organization whose tracked domains to list |
list_tags
list_tags
list_topics
list_topics
List topics available within a category for filtering prompts and reports.
Example:
| Input | Required | Default | Description |
|---|---|---|---|
category_id | Yes | - | Category to list topics for |
list_prompts
list_prompts
List prompts configured in a category. Prompts are the questions Profound runs against AI engines to measure brand visibility.
Example:
| Input | Required | Default | Description |
|---|---|---|---|
category_id | Yes | - | Category to list prompts for |
status | No | all | One of active, disabled, or all |
tag_ids | No | null | Include only prompts carrying these tags |
topic_ids | No | null | Include only prompts under these topics |
exclude_tag_ids | No | null | Exclude prompts carrying these tags |
exclude_topic_ids | No | null | Exclude prompts under these topics |
combine | No | AND | How include filters combine: AND or OR |
limit | No | 100 | Maximum prompts to return |
cursor | No | null | Pagination token from a previous response’s next_cursor |
Brand visibility reports
These tools are scoped to acategory_id and a date range. Use them to understand how brands appear in AI answers, how those answers feel, and which sources AI engines cite.
| Tool | Description |
|---|---|
get_visibility_report | How visible a brand is in AI answers and how that varies by model, topic, region, prompt, tag, or persona |
get_sentiment_report | What sentiment AI answers express about a brand or competitor and which themes are positive or negative |
get_citations_report | Which domains, pages, or URLs are AI engines citing for this category |
get_prompt_answers | What raw AI answers were observed behind the metrics |
get_visibility_report
get_visibility_report
Measure how often and how prominently a brand appears in AI answers for a category over a date range.Default metric:
Example:
visibility_score.Other useful metrics include share_of_voice, mentions_count, executions, and average_position. Useful dimensions include date, region, topic, model, prompt, tag, and persona.| Input | Required | Default | Description |
|---|---|---|---|
category_id | Yes | - | Category to report on |
start_date | Yes | - | Window start (inclusive) in YYYY-MM-DD format |
end_date | Yes | - | Window end (inclusive) in YYYY-MM-DD format |
metrics | No | visibility_score | Metrics to return |
dimensions | No | null | Group-by fields |
filters | No | null | Advanced { "field", "operator", "value" } predicates |
limit | No | null | Top-N row cap. When set, next_cursor is always null |
topic_filter | No | null | Narrow to one or more topics |
tag_filter | No | null | Narrow to one or more tags |
region_filter | No | null | Narrow to one or more regions |
model_filter | No | null | Narrow to one or more AI models |
persona_filter | No | null | Narrow to one or more personas |
asset_filter | No | null | Narrow to one or more brand or competitor assets |
cursor | No | null | Pagination token from a previous response |
page_size | No | 500 | First-page size, up to 10,000 |
get_sentiment_report
get_sentiment_report
Measure sentiment in AI answers for a category over a date range.Default metrics:
Example:
positive, negative, and occurrences. positive and negative are weighted aggregates; occurrences is a raw count.| Input | Required | Default | Description |
|---|---|---|---|
category_id | Yes | - | Category to report on |
start_date | Yes | - | Window start (inclusive) in YYYY-MM-DD format |
end_date | Yes | - | Window end (inclusive) in YYYY-MM-DD format |
metrics | No | positive, negative, occurrences | Metrics to return |
filters | No | null | Advanced { "field", "operator", "value" } predicates |
limit | No | null | Top-N row cap. When set, next_cursor is always null |
topic_filter | No | null | Narrow to one or more topics |
tag_filter | No | null | Narrow to one or more tags |
region_filter | No | null | Narrow to one or more regions |
model_filter | No | null | Narrow to one or more AI models |
persona_filter | No | null | Narrow to one or more personas |
asset_filter | No | null | Narrow to one or more brand or competitor assets |
theme_filter | No | null | Narrow to one or more sentiment themes, such as pricing |
cursor | No | null | Pagination token from a previous response |
page_size | No | 500 | First-page size, up to 10,000 |
get_citations_report
get_citations_report
See which sources AI engines cite for a category, and how often, over a date range.Default metrics:
Example:
count and citation_share. Useful dimensions include hostname, path, root_domain, url, model, topic, prompt, tag, and persona.root_domain_filter must be paired with dimensions: ["root_domain"].| Input | Required | Default | Description |
|---|---|---|---|
category_id | Yes | - | Category to report on |
start_date | Yes | - | Window start (inclusive) in YYYY-MM-DD format |
end_date | Yes | - | Window end (inclusive) in YYYY-MM-DD format |
metrics | No | count, citation_share | Metrics to return |
dimensions | No | null | Group-by fields |
filters | No | null | Advanced { "field", "operator", "value" } predicates |
limit | No | null | Top-N row cap. When set, next_cursor is always null |
topic_filter | No | null | Narrow to one or more topics |
tag_filter | No | null | Narrow to one or more tags |
region_filter | No | null | Narrow to one or more regions |
model_filter | No | null | Narrow to one or more AI models |
persona_filter | No | null | Narrow to one or more personas |
root_domain_filter | No | null | Narrow to one or more root domains. Requires root_domain in dimensions |
hostname_filter | No | null | Narrow to one or more hostnames |
citation_category_filter | No | null | Narrow to one or more citation categories |
cursor | No | null | Pagination token from a previous response |
page_size | No | 500 | First-page size, up to 10,000 |
get_prompt_answers
get_prompt_answers
Retrieve the actual answers AI engines gave for a category’s prompts over a date range.
Example:
| Input | Required | Default | Description |
|---|---|---|---|
category_id | Yes | - | Category to retrieve prompt answers for |
start_date | Yes | - | Window start (inclusive) in YYYY-MM-DD format |
end_date | Yes | - | Window end (inclusive) in YYYY-MM-DD format |
limit | No | 100 | Rows per page |
offset | No | 0 | Row offset for pagination |
Traffic reports
These tools are scoped to a tracked domain, not a category. Uselist_domains first and pass the exact hostname returned by Profound.
| Tool | Description |
|---|---|
get_referrals_report | How many visits did a domain receive from AI engines, and which referrers drove them |
get_bots_report | Which AI crawlers are visiting a domain, and how often |
get_referrals_report
get_referrals_report
Measure visits a domain received from AI engines, such as ChatGPT and Perplexity, over a date range.Default metric:
Example:
visits. Useful dimensions include referral_type, referral_source, and date.| Input | Required | Default | Description |
|---|---|---|---|
domain | Yes | - | Tracked domain, using the exact hostname from list_domains |
start_date | Yes | - | Window start (inclusive) in YYYY-MM-DD format |
end_date | Yes | - | Window end (inclusive) in YYYY-MM-DD format |
metrics | No | visits | Metrics to return |
dimensions | No | null | Group-by fields, such as referral_type, referral_source, or date |
organization_id | No | null | Disambiguates the domain when the caller belongs to multiple organizations |
filters | No | null | Advanced { "field", "operator", "value" } predicates |
limit | No | null | Top-N row cap. When set, makes next_cursor always null |
referral_source_filter | No | null | Narrow to one or more referrer vendors, such as openai |
referral_type_filter | No | null | Narrow to one or more referral categories: internal, referer, utm, or none |
cursor | No | null | Pagination token from a previous response |
page_size | No | 500 | First-page size, up to 10,000 |
get_bots_report
get_bots_report
Measure AI crawler activity against a domain over a date range, including bots such as GPTBot and PerplexityBot.Default metrics:
Example:
count and citations. Useful dimensions include bot_provider, bot_name, bot_type, and date.| Input | Required | Default | Description |
|---|---|---|---|
domain | Yes | - | Tracked domain, using the exact hostname from list_domains |
start_date | Yes | - | Window start (inclusive) in YYYY-MM-DD format |
end_date | Yes | - | Window end (inclusive) in YYYY-MM-DD format |
metrics | No | count, citations | Metrics to return |
dimensions | No | null | Group-by fields, such as bot_provider, bot_name, bot_type, or date |
organization_id | No | null | Disambiguates the domain when the caller belongs to multiple organizations |
filters | No | null | Advanced { "field", "operator", "value" } predicates |
limit | No | null | Top-N row cap. When set, makes next_cursor always null |
bot_provider_filter | No | null | Narrow to one or more providers, such as openai or anthropic |
bot_name_filter | No | null | Narrow to one or more individual bots, such as GPTBot |
bot_type_filter | No | null | Narrow to one or more bot categories: ai_assistant, ai_training, index, or ai_agent |
cursor | No | null | Pagination token from a previous response |
page_size | No | 500 | First-page size, up to 10,000 |
Resources
Profound MCP also exposes read-only MCP resources: static reference material that an MCP client can load into context.| Resource URI | Audience | Use it for |
|---|---|---|
file:///profound/glossary | Assistant | Compact index of Profound-specific terms to load once per session |
file:///profound/glossary/full | User | Full glossary with definitions and examples, larger than the index |
file:///profound/glossary/{term} | Assistant | Full definition of one glossary term, addressed by slug |
Glossary lookup flow
Glossary lookup flow
The glossary defines recurring Profound terms such as visibility score, share of voice, citations, prompts, and AI engines.A client typically loads
file:///profound/glossary once, then fetches a specific term with file:///profound/glossary/{term} when it needs a precise definition. For example, use file:///profound/glossary/visibility-score for the visibility score definition.Glossary structure
Glossary structure
The glossary includes 38 terms across seven categories: Identity, Taxonomy, AI Engines, Prompts, Reports, Metrics, and Agents.Each term has a stable lowercase hyphenated slug, short summary, full description, examples, and see-also references to related terms.