---
title: "create_test_campaign"
description: "Create a new SAVED, reusable Tests campaign."
sidebarTitle: "create_test_campaign"
lastUpdated: "2026-09-23"
---

> **For AI agents:** the complete documentation index is at [llms.txt](/llms.txt). Append `.md` to any page URL for its markdown version.

{/* GENERATED FILE: do not edit by hand. Regenerate with: node scripts/generate.mjs */}

Create a new SAVED, reusable Tests campaign.

<Info>
  **Writes data · Calls external systems.**
</Info>

## Parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `acknowledge` | boolean | No | Reset edit budget after user approval |
| `collection_uid` | string | No | Collection UID to nest the Tests campaign under (default: product's campaigns root; a tests-root UID is rejected) |
| `description` | string | No | Tests campaign description |
| `name` | string | Yes | Tests campaign name |
| `product` | string | Yes | Product slug (e.g. operator~product) |
| `test_list` | string | Yes | JSON array of TestCampaignMember entries, e.g. '[\{"position":0,"test":123,"owners":\{\},"input_variables":\{\}\}]' |

## Example arguments

Illustrative arguments an agent supplies when calling this tool:

```json
{
  "product": "string",
  "name": "string",
  "test_list": "string"
}
```

## Description

```text
(To run tests ad-hoc without saving, use build_campaign(test_ids=…) instead.)

test_list is a JSON array of {position, test, owners, input_variables}. All tests must belong to the given product. The authenticated user is auto-set as creator.

collection_uid nests the Tests campaign under a specific collection. When omitted, defaults to the product's campaigns root (test_campaigns_root_collection_uid). A Tests campaign must never live under a tests root — it renders as a test row and crashes the UI test list — so a tests-root collection_uid is rejected.

Consumes one slot of the per-session Tests-campaign edit budget (default: 20). Pass acknowledge=true after a budget-exhaustion message to reset.
```

## Related

- [`build_campaign`](/mcp/tools/execution/build_campaign)

## What's next?

<Columns cols={2}>
  <Card title="All MCP tools" icon="robot" href="/mcp/tools/overview">
    Browse the full tool reference by category.
  </Card>
  <Card title="Connect a client" icon="plug" href="/mcp/connect">
    Point Claude, Cursor, or Claude Code at the server.
  </Card>
</Columns>
