list_competitors

list_competitors MCP tool: tracked competitors with mention totals, average position, LLM presence and prompt coverage. Filter by status, source, mentions threshold.

Updated 2026-04-26

list_competitors

list_competitors returns the competitors tracked on a project, with mention totals, average ranking position, the LLMs where they are mentioned and how many of your prompts they show up on. Three statuses are supported: CONFIRMED, SUGGESTED (auto-detected, awaiting moderation), REJECTED.

When to use

Reach for this tool whenever the user asks "who am I competing against in AI answers?", "who is gaining visibility on my prompts?", "list new competitors I need to review". The default filters.status: ["CONFIRMED"] returns the validated set; switch to ["SUGGESTED"] to triage the auto-detection queue. Combine with bulk_update_competitor_status to act on the result.

Input

Field Type Default Description
projectId string (CUID) required Project to query.
cursor string Pagination cursor.
limit integer 20 1 to 100.
filters.status enum[] ["CONFIRMED"] CONFIRMED, SUGGESTED, REJECTED.
filters.source string[] Filter by detection source.
filters.minMentions integer 0 Minimum total mentions.
filters.nameContains string Case-insensitive substring on canonical name.
sortBy enum mentions_desc mentions_desc, recent, alphabetical.

Response

Each row is a competitor with aliases, status, source and a stats block. The top-level summary.byStatus lets the agent see the moderation backlog without a second call.

{
  "data": [
    {
      "id": "clxcomp001",
      "canonicalName": "Otterly",
      "aliases": ["Otterly.ai", "OtterlyAI"],
      "status": "CONFIRMED",
      "source": "auto-detected",
      "createdAt": "2026-02-15T00:00:00.000Z",
      "stats": {
        "totalMentions": 89,
        "averagePosition": 2.3,
        "llmsWhereMentioned": ["CHATGPT", "PERPLEXITY"],
        "promptCoverage": 12
      }
    }
  ],
  "pageInfo": { "hasMore": false, "nextCursor": null, "totalCount": 7 },
  "summary": {
    "totalCompetitors": 7,
    "byStatus": { "CONFIRMED": 7, "SUGGESTED": 12, "REJECTED": 3 }
  }
}

Tips and patterns

  • Sort by mentions_desc for competitive intel; sort by recent to surface newcomers in the auto-detection queue.
  • averagePosition is computed across runs where the competitor was mentioned. A low totalMentions makes it noisy.
  • promptCoverage is the count of distinct prompts where the competitor showed up. Pair it with list_prompts to see which prompts overlap.
  • Pull filters.status: ["SUGGESTED"] periodically and feed the IDs into bulk_update_competitor_status to keep the dataset clean.

Related tools