Run a bounded Sonar scan
Run bounded reconnaissance for one target through the public pentest MCP surface.
Use this procedure on the public pentest MCP surface when one target needs fresher or missing
Inventory. Starting a scan is consequential network activity; tool availability is not by itself a
reason to launch.
Consequential action
A scan performs live reconnaissance against a real target. Resolve exactly one program, confirm the workflow, and launch once — never fall back to match-all work.
Inspect before scanning
Follow Explore a target and resolve exactly one program UUID. If the program is absent or ambiguous, stop and request clarification. Never omit the program parameter to fall back to match-all work.
Select an approved workflow
Confirm from the returned definition:
categoryis exactlyAI;- the workflow declares the
programparameter; - its steps and output tables answer the missing-Inventory question; and
- the selected ID is the current workflow definition version, not a family ID.
Do not run a non-AI workflow through the public pentest policy.
Launch exactly once
Do not add secrets, client-generated manifests, hashes, concurrency limits, routing tags, or result
schema metadata. create_scan accepts only the documented strict arguments,
and required step secrets come from Sonar's current global secret store at dispatch.
Uncertain launch
The simple scan-creation call is not idempotent. If it times out or the response is lost, do not automatically retry. Report that the launch may have succeeded and route it for manual verification; a retry can duplicate network work.
Monitor the confirmed scan
With the returned scan ID:
Poll at a reasonable interval until the scan is terminal. Keep task failures or missing worker
capacity visible; CompletedWithErrors is not equivalent to complete coverage. A creation receipt,
running status, task count, or terminal status is not a vulnerability conclusion.
Read the resulting Inventory
After completion, call get_target_overview again, then page the asset types written by the
workflow. Attribute only observations actually returned from refreshed Inventory.
Not the result surface
The simple create_scan path does not use list_scan_results. That tool serves compatible
manifest-backed scans with a frozen revision and cursor; an empty response there does not mean
this scan found nothing.
For the execution model behind these steps, see Workflow runtime and Reliability.