run_campaign
Execute a campaign and wait for results. Blocks until completion and returns per-test results.
Execute a campaign and wait for results — blocks until completion and returns per-test results.
Destructive · Writes data · Calls external systems. This tool can modify or delete data. Review the arguments before letting an agent call it.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
campaign_json | string | Yes | Campaign JSON template (from build_campaign) |
ignore_errors | boolean | No | Ignore failures across all action types (options.ignore_failed = <all action codes>). Per-test statuses may be rewritten to success. |
max_poll_duration | string | No | Maximum time to wait for results (default: 10m). Format: duration string (e.g. 5m, 15m) |
overrides | string | No | JSON object mapping test IDs to their variable values and owner assignments. Format: {"<test_id>": {"input_variables": {...}, "direct_owners": {...}}}. input_variables values are flat strings (e.g. "42"); direct_owners maps a device identifier to a value (e.g., {"sim_owner": "SIM-001"}). To target a specific variant, pin it at build time via build_campaign variants=[…] — the {value, bucket} object form is NOT accepted here. |
parallel | boolean | No | Run campaign tests in parallel (options.parallel_test_execution=-1). Superadmin-only; the platform rejects test lists that use SIM or SMARTPHONE actions, or sleep on unlocked resources. |
Example arguments
Illustrative arguments an agent supplies when calling this tool:
{
"campaign_json": "string"
}
Description
Best for quick ad-hoc / CI runs. It holds ONE connection open for the entire run, so on the hosted (HTTP) MCP transport a longer run can be reset by the gateway; for anything beyond a quick smoke test prefer start_execution + poll_execution (start returns a result_id immediately, then poll until terminal).
For ad-hoc runs: build_campaign(test_ids=…) → run_campaign. For a saved Tests campaign: build_campaign(test_campaign_id=…) → run_campaign(overrides=…).
Related
What's next?
Last updated on