get_content_opportunities
Surface content gaps for the brand: monitored questions where competitors are mentioned but the brand is not, monitored questions with low brand visibility, and the top competitor threats. Use it to prioritize content production.
Parameters
| Parameter | Type | Required | Description |
|---|
brandId | string | Yes | The brand ID from list_brands |
period | number | No | Number of days to analyze (default: 30) |
limit | number | No | Max opportunities to return (default: 10) |
Returns
| Field | Description |
|---|
period / periodLabel | The analyzed window |
missedOpportunities[] | Questions where competitors appear but the brand does not: question, keyword, competitorsMentioned[] |
lowVisibilityQuestions[] | Questions with under 30% brand visibility: question, keyword, type, totalAnswers, brandMentions, visibilityRate |
competitorThreats[] | Competitors most often present where the brand is missing: name, mentionsWhereWeMiss |
summary | totalMissedOpportunities, totalLowVisibilityQuestions, topThreat, actionNeeded |
Example Prompts
Where should I create content to win more AI mentions?
Which questions am I losing to competitors?
OAuth Scope
Requires: read:visibility
get_brand_perception
Get the latest brand perception snapshot: sentiment, alignment, consistency, factual-alignment scores, and SWOT insights (strengths, weaknesses, opportunities, threats). Returns only the most recent snapshot. For evolution over time, use get_perception_history.
Parameters
| Parameter | Type | Required | Description |
|---|
brandId | string | Yes | The brand ID from list_brands |
Returns
| Field | Description |
|---|
snapshot.sentimentScore | Overall sentiment score |
snapshot.alignmentScore | Alignment with brand positioning |
snapshot.consistencyScore | Consistency across AI providers |
snapshot.factualAlignment | Alignment with known brand facts (description, attributes) |
strengths[] | Brand strengths identified by AI |
weaknesses[] | Areas of improvement |
opportunities[] | Growth opportunities |
threats[] | Potential threats |
OAuth Scope
Requires: read:visibility
get_perception_history
Get the evolution of the brand’s perception snapshots over time: sentiment, alignment, consistency, and factual-alignment scores plus SWOT insights for each historical snapshot. For only the latest snapshot, use get_brand_perception.
Parameters
| Parameter | Type | Required | Description |
|---|
brandId | string | Yes | The brand ID from list_brands |
limit | number | No | Max snapshots to return (default: 10, max: 20) |
Returns
| Field | Description |
|---|
brand | id, name |
totalSnapshots | Total snapshots available for the brand |
snapshots[] | Per snapshot: month, year, sentimentScore, alignmentScore, consistencyScore, factualAlignment, and the strengths, weaknesses, opportunities, threats arrays |
Example Prompts
How has my brand perception changed over time?
Show me my sentiment and alignment scores month by month
OAuth Scope
Requires: read:visibility
get_technical_status
Get technical SEO status: AI Readiness Score, robots.txt, llms.txt, sitemap.xml analysis, blocked AI crawlers, and open page issues by severity.
Parameters
| Parameter | Type | Required | Description |
|---|
brandId | string | Yes | The brand ID from list_brands |
Returns
| Field | Description |
|---|
technical.aiReadinessScore | AI Readiness Score (0-100), same value as the dashboard |
technical.robotsStatus | robots.txt analysis status |
technical.llmsStatus | llms.txt analysis status |
technical.sitemapStatus | sitemap.xml analysis status |
technical.blockedCrawlers[] | AI crawlers blocked by robots.txt |
issues | Open issues count by severity (critical, high, medium, low) |
topIssues[] | Most important open issues |
OAuth Scope
Requires: read:visibility
get_prompt_signals
Get prompt signal analysis: attack/defend/monitor/ignore labels based on Share of Voice and market openness. Identifies which prompts to invest in. Supports period, provider, topic, and tag filters.
Parameters
| Parameter | Type | Required | Description |
|---|
brandId | string | Yes | The brand ID from list_brands |
period | number | No | Number of days to analyze (e.g. 1, 7, 14, 30). Omit for all time. |
startDate | string | No | Start date in YYYY-MM-DD format |
endDate | string | No | End date in YYYY-MM-DD format |
providers | string[] | No | Filter by provider slugs (e.g. ["openai", "anthropic"]) |
topicIds | string[] | No | Filter by topic/keyword IDs |
tagIds | string[] | No | Filter by tag IDs |
limit | number | No | Max prompts per category (default: 5) |
Returns
| Field | Description |
|---|
summary.attackCount | Prompts where market is open and brand is underrepresented |
summary.defendCount | Prompts where brand has strong position to defend |
summary.monitorCount | Prompts to keep watching |
summary.ignoreCount | Low-priority prompts |
summary.avgOpenness | Average market openness (0-1) |
summary.visibilityRate | Percentage of prompts where brand is visible |
summary.avgSoV | Average Share of Voice across visible prompts |
summary.totalPrompts | Total prompts analyzed |
topAttackPrompts[] | Best attack opportunities: includes priorityScore, visibilityPct, quadrant |
topDefendPrompts[] | Positions to defend: includes priorityScore, visibilityPct, quadrant |
OAuth Scope
Requires: read:prompts
get_site_diagnostics
Per-page site health for the brand’s monitored pages: latest technical, content, AEO, and performance scores plus open issue counts by severity, with brand-level averages. Complements get_technical_status (brand-wide) with a page-by-page view.
Parameters
| Parameter | Type | Required | Description |
|---|
brandId | string | Yes | The brand ID from list_brands |
limit | number | No | Max pages to return (default: 25, max: 100) |
Returns
| Field | Description |
|---|
summary | totalPages, pagesAudited, pagesWithIssues, avgTechnicalScore, avgContentScore, avgAeoScore, avgPerformanceScore |
pages[] | Per page: url, title, technicalScore, contentScore, aeoScore, performanceScore, issues (critical/high/medium/low/total), status, lastAuditAt. Sorted worst-first (unaudited, then lowest scores). |
Example Prompts
Which of my pages have the worst technical health?
Show me pages with open critical issues
OAuth Scope
Requires: read:visibility
get_actions
Return the Action Center’s prioritized recommendation queue: deterministic actions with a 3-tier priority label, a 1-5 demand badge, the quantified “why”, the target engine when relevant, effort and a step-by-step checklist.
Private beta. The Action Center must be enabled for the team; otherwise the tool returns a FORBIDDEN error.
Parameters
| Parameter | Type | Required | Description |
|---|
brandId | string | Yes | The brand ID from list_brands |
actionId | string | No | Fetch one specific action by ID, regardless of status (full context: signals, why, checklist) |
status | string | No | SUGGESTED, PENDING, IN_PROGRESS, COMPLETED, DISMISSED, RESOLVED. Default: live queue (SUGGESTED + PENDING + IN_PROGRESS) |
type | string | No | Filter by action type (e.g. CONTENT_GAP, TECHNICAL_FIX, SOURCE_OUTREACH) |
category | string | No | TECHNICAL, CONTENT, AEO, AUTHORITY, VISIBILITY |
limit | number | No | Max actions to return (default: 25, max: 100) |
Returns
| Field | Description |
|---|
total | Total actions matching the filters |
actions[] | Prioritized actions: id, type, category, sourceType (detector family), scope (ON_SITE / OFF_SITE / SETUP), title, description, sourceUrl, targetProvider, forceTier (CRITICAL / HIGH / STANDARD), demandBadge (1-5), isQuickWin, effort, status, why, signals, target (baseline, goal), checklist[] |
Example Prompts
What should I work on next to improve my AI visibility?
Show me the critical actions in my queue
OAuth Scope
Requires: read:visibility