list_scans
list_scans MCP tool: list a project's tracking runs (scans) with status, timestamps, the LLMs covered, result counts and mention rate. Inputs, response shape, JSON example.
Updated 2026-06-08
list_scans
list_scans lists the tracking runs (scans) of a project, newest first. Each scan is one execution of the daily or thrice-weekly tracking job, grouping every prompt result it produced. A row carries the scan's status, its started/completed timestamps, the LLMs it covered, how many results it produced and the overall mention rate.
When to use
Use list_scans when an agent needs to reason at the scan level before pulling any answers: "what was the last scan, and how did visibility move between two runs?". It is the cheapest way to discover scan dates and IDs. Take a trackingRunId from here and pass it to list_prompt_results to read that scan's per-prompt answers, then get_prompt_result for the full response and sources. Filter by dateRange to build period-over-period reports.
Input
| Field | Type | Default | Description |
|---|---|---|---|
projectId |
string (CUID) | required | Project to query. |
cursor |
string | — | Pagination cursor (the id of the last row). |
limit |
integer | 20 | 1 to 100. |
filters.status |
enum | — | PENDING, SCANNING, ANALYZING, COMPLETED, FAILED. |
filters.dateRange.from |
string (ISO) | — | Only scans started on/after this timestamp. |
filters.dateRange.to |
string (ISO) | — | Only scans started on/before this timestamp. |
sortBy |
enum | recent |
recent (newest first) or oldest. |
Response
data is an array of scan objects. mentionRate is mentionedCount / resultCount (0 when the scan has no results yet).
{
"data": [
{
"id": "clx_run_88",
"status": "COMPLETED",
"startedAt": "2026-06-08T06:00:00.000Z",
"completedAt": "2026-06-08T06:04:12.000Z",
"totalExpectedResults": 28,
"receivedResults": 28,
"resultCount": 28,
"mentionedCount": 17,
"mentionRate": 0.607,
"llms": ["CHATGPT", "GEMINI", "PERPLEXITY"]
}
],
"pageInfo": { "hasMore": true, "nextCursor": "clx_run_88", "totalCount": 96 },
"summary": { "totalScans": 96 }
}
Tips and patterns
- Two recent scans with the same prompt set let you compute a visibility delta. Pull
mentionRatefrom each, then drill into the prompts that flipped withlist_prompt_resultsfiltered bytrackingRunId. - A scan stuck in
SCANNINGorANALYZINGfor a long time, or aFAILEDstatus, explains gaps in the history. Surface it rather than treating missing data as a real visibility drop. resultCountbelowtotalExpectedResultsmeans some LLMs did not return for that run. Cross-checkllmsto see which engines are missing.
Related tools
- list_prompt_results — the per-prompt answers of a scan (filter by
trackingRunId). - get_prompt_result — the full response and sources of a single result.
- list_prompts — tracked prompts with aggregate mention rates.