← All MCP tools

MCP tool

prove_it

Run a matched-market geo-lift test on a campaign’s geo-tagged conversions: power analysis first (the engine REFUSES underpowered tests and says why), then diff-in-diff lift vs matched control markets. Returns status completed (with lift + confidence) or refused (with the power readout).

Input

Pass fields from this schema as the tool arguments. Runtime ownership, product scope and readiness checks still apply.

Input JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "campaign id"
    },
    "testMarket": {
      "description": "test market key (default \"london\")",
      "type": "string"
    },
    "expectedLiftPct": {
      "description": "expected lift % for power analysis (default 15)",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "exposureStart": {
      "description": "exposure start date; defaults to the campaign start",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "campaignId"
  ]
}

REST mapping and authority

The tool wraps this REST endpoint. The mapping identifies path/query/body transformations and approval or idempotency headers.

Request contract
{
  "method": "POST",
  "path": "/api/v1/campaigns/{campaignId}/prove-it",
  "pathFields": [
    "campaignId"
  ],
  "pathSchema": {
    "type": "object",
    "properties": {
      "campaignId": {
        "type": "string",
        "description": "campaign id"
      }
    },
    "additionalProperties": false,
    "required": [
      "campaignId"
    ]
  },
  "pathEncoding": "encodeURIComponent for each path field",
  "governedAction": null,
  "headers": {},
  "bodySchema": {
    "type": "object",
    "properties": {
      "testMarket": {
        "description": "test market key (default \"london\")",
        "type": "string"
      },
      "expectedLiftPct": {
        "description": "expected lift % for power analysis (default 15)",
        "type": "number",
        "exclusiveMinimum": 0
      },
      "exposureStart": {
        "description": "exposure start date; defaults to the campaign start",
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      }
    },
    "additionalProperties": false
  },
  "responseMapping": "REST JSON is returned as MCP structuredContent and a compatibility text block; privacy-sensitive tools validate their output schema."
}

Output

This is the registered MCP output envelope. Nested fields are only modeled where the schema explicitly defines them.

Output JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "proveIt": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "proveIt"
  ],
  "additionalProperties": {}
}

Safety annotations

MCP annotations
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}

Annotations help a client present the tool. The API independently enforces authorization and exact action approvals. Error and retry guidance →

prove_it | AdBuyMCP docs