# MCP tool reference

> Generated from `apps/web/src/lib/developer-contracts/mcp.ts` by `pnpm docs:developer:generate`.

The hosted server advertises and serves the v14 MCP runtime contract with exactly 14 semantic product-reference, account, scenario, and campaign tools. The v14 artifact tree publishes that surface alongside the webhook catalog. Input and output objects are closed unless a referenced schema explicitly says otherwise.

## `elicitra_get_started`

**Scope:** `scenario:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Read the safe, canonical workflow for authoring Betterstood scenario and campaign drafts with this MCP server.

- [Input JSON Schema](/developers/v14/schemas/mcp/elicitra_get_started.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/elicitra_get_started.output.schema.json)

### Example input

```json
{}
```

### Example output

```json
{
  "constraints": [
    "Only scenarios without active campaigns can be updated over MCP.",
    "Only DRAFT campaigns can be configured; routing changes also require no open respondent interactions.",
    "Publishing, public access, provider deployment, live testing, and scenario-specific knowledge bases remain operator-led.",
    "Product knowledge search is read-only and never exposes respondent data or organization-specific scenario content.",
    "Never remove fields unless the customer explicitly requested the removal."
  ],
  "contractVersion": "v14",
  "docsUrl": "https://betterstood.com/developers/agent.md",
  "workflow": [
    "Read account context, effective scopes, and current organization limits before authoring.",
    "Use elicitra_knowledge_search for canonical guidance about the Betterstood product, campaigns, credits, pricing tiers, or use cases.",
    "List or create scenario drafts, then read the latest revision immediately before each update.",
    "Create and configure campaign drafts only after selecting a scenario by stable id.",
    "Review each complete draft and send the operator to the linked editor for publishing."
  ]
}
```

## `elicitra_account_info`

**Scope:** `scenario:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Read allowlisted owner, organization, plan, effective token scope, usage limits, available credits, and derived MCP capabilities. A null scenario or campaign limit means unlimited capacity.

- [Input JSON Schema](/developers/v14/schemas/mcp/elicitra_account_info.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/elicitra_account_info.output.schema.json)

### Example input

```json
{}
```

### Example output

```json
{
  "capabilities": {
    "campaignDraftAuthoring": false,
    "campaignRead": true,
    "scenarioDraftAuthoring": false,
    "scenarioRead": true
  },
  "credits": {
    "available": 1250,
    "enforcement": "enforced"
  },
  "organization": {
    "id": "org_01",
    "name": "Helios Energy",
    "plan": "growth",
    "role": "admin"
  },
  "owner": {
    "email": "ada@example.invalid",
    "id": "user_01",
    "name": "Ada Lovelace"
  },
  "token": {
    "effectiveScopes": [
      "scenario:read",
      "campaign:read"
    ],
    "expiresAt": "2026-10-29T12:00:00.000Z",
    "prefix": "eli_pat_9ee7fb"
  },
  "usage": {
    "activePersonalAccessTokens": {
      "limit": 5,
      "used": 2
    },
    "campaigns": {
      "limit": 1000,
      "used": 4
    },
    "scenarios": {
      "limit": 25,
      "used": 3
    }
  }
}
```

## `scenario_list`

**Scope:** `scenario:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

List scenarios in the authenticated organization, including revision and current MCP editability.

- [Input JSON Schema](/developers/v14/schemas/mcp/scenario_list.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/scenario_list.output.schema.json)

### Example input

```json
{
  "limit": 20,
  "query": "solar"
}
```

### Example output

```json
{
  "nextCursor": null,
  "scenarios": [
    {
      "language": "en-US",
      "mcpEditability": {
        "activeCampaignCount": 0,
        "editable": true,
        "reason": "draft",
        "studioUrl": "/app/studio/solar_consultation"
      },
      "name": "Solar consultation",
      "revision": 1,
      "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
      "slug": "solar_consultation",
      "updatedAt": "2026-07-31T12:00:00.000Z"
    }
  ]
}
```

## `scenario_get`

**Scope:** `scenario:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Read one organization-scoped scenario by stable id before attempting a revision-aware update.

- [Input JSON Schema](/developers/v14/schemas/mcp/scenario_get.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/scenario_get.output.schema.json)

### Example input

```json
{
  "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1"
}
```

### Example output

```json
{
  "scenario": {
    "definition": {
      "assistantName": "Acme solar guide",
      "audience": "Homeowners in Italy",
      "fields": [
        {
          "followupGuidance": [],
          "goodAnswerExamples": [
            "Detached house"
          ],
          "key": "property_type",
          "label": "Property type",
          "options": [
            "Detached house",
            "Apartment building",
            "Commercial property"
          ],
          "primaryQuestion": "What kind of property would you like to install solar panels on?",
          "required": true,
          "type": "select",
          "weakAnswerExamples": [
            "Not sure"
          ]
        }
      ],
      "liveFit": {
        "gates": [],
        "schemaVersion": "live-fit.v1"
      },
      "purpose": "Qualify homeowners who are exploring residential solar."
    },
    "language": "en-US",
    "mcpEditability": {
      "activeCampaignCount": 0,
      "editable": true,
      "reason": "draft",
      "studioUrl": "/app/studio/solar_consultation"
    },
    "name": "Solar consultation",
    "revision": 1,
    "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
    "slug": "solar_consultation",
    "updatedAt": "2026-07-31T12:00:00.000Z"
  }
}
```

## `scenario_create_draft`

**Scope:** `scenario:write`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota `maxScenarios` · 0 credits

Atomically create a validated, unpublished scenario draft from a template and semantic definition.

- [Input JSON Schema](/developers/v14/schemas/mcp/scenario_create_draft.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/scenario_create_draft.output.schema.json)

### Example input

```json
{
  "definition": {
    "assistantName": "Acme solar guide",
    "audience": "Homeowners in Italy",
    "fields": [
      {
        "followupGuidance": [],
        "goodAnswerExamples": [
          "Detached house"
        ],
        "key": "property_type",
        "label": "Property type",
        "options": [
          "Detached house",
          "Apartment building",
          "Commercial property"
        ],
        "primaryQuestion": "What kind of property would you like to install solar panels on?",
        "required": true,
        "type": "select",
        "weakAnswerExamples": [
          "Not sure"
        ]
      }
    ],
    "liveFit": {
      "gates": [],
      "schemaVersion": "live-fit.v1"
    },
    "purpose": "Qualify homeowners who are exploring residential solar."
  },
  "idempotencyKey": "create-solar-20260731",
  "language": "en-US",
  "name": "Solar consultation",
  "templateId": "lead_qualification"
}
```

### Example output

```json
{
  "receipt": {
    "expiresAt": "2026-08-01T12:00:00.000Z",
    "idempotencyKey": "create-solar-20260731",
    "replayed": false
  },
  "scenario": {
    "definition": {
      "assistantName": "Acme solar guide",
      "audience": "Homeowners in Italy",
      "fields": [
        {
          "followupGuidance": [],
          "goodAnswerExamples": [
            "Detached house"
          ],
          "key": "property_type",
          "label": "Property type",
          "options": [
            "Detached house",
            "Apartment building",
            "Commercial property"
          ],
          "primaryQuestion": "What kind of property would you like to install solar panels on?",
          "required": true,
          "type": "select",
          "weakAnswerExamples": [
            "Not sure"
          ]
        }
      ],
      "liveFit": {
        "gates": [],
        "schemaVersion": "live-fit.v1"
      },
      "purpose": "Qualify homeowners who are exploring residential solar."
    },
    "language": "en-US",
    "mcpEditability": {
      "activeCampaignCount": 0,
      "editable": true,
      "reason": "draft",
      "studioUrl": "/app/studio/solar_consultation"
    },
    "name": "Solar consultation",
    "revision": 1,
    "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
    "slug": "solar_consultation",
    "updatedAt": "2026-07-31T12:00:00.000Z"
  }
}
```

## `scenario_update_draft`

**Scope:** `scenario:write`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Apply closed semantic operations to an editable scenario using optimistic revision and idempotency guards.

- [Input JSON Schema](/developers/v14/schemas/mcp/scenario_update_draft.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/scenario_update_draft.output.schema.json)

### Example input

```json
{
  "expectedRevision": 1,
  "idempotencyKey": "update-solar-20260731",
  "operations": [
    {
      "profile": {
        "audience": "Homeowners",
        "purpose": "Qualify residential solar enquiries."
      },
      "type": "set_profile"
    }
  ],
  "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1"
}
```

### Example output

```json
{
  "receipt": {
    "expiresAt": "2026-08-01T12:00:00.000Z",
    "idempotencyKey": "update-solar-20260731",
    "replayed": false
  },
  "scenario": {
    "definition": {
      "assistantName": "Acme solar guide",
      "audience": "Homeowners",
      "fields": [
        {
          "followupGuidance": [],
          "goodAnswerExamples": [
            "Detached house"
          ],
          "key": "property_type",
          "label": "Property type",
          "options": [
            "Detached house",
            "Apartment building",
            "Commercial property"
          ],
          "primaryQuestion": "What kind of property would you like to install solar panels on?",
          "required": true,
          "type": "select",
          "weakAnswerExamples": [
            "Not sure"
          ]
        }
      ],
      "liveFit": {
        "gates": [],
        "schemaVersion": "live-fit.v1"
      },
      "purpose": "Qualify residential solar enquiries."
    },
    "language": "en-US",
    "mcpEditability": {
      "activeCampaignCount": 0,
      "editable": true,
      "reason": "draft",
      "studioUrl": "/app/studio/solar_consultation"
    },
    "name": "Solar consultation",
    "revision": 2,
    "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
    "slug": "solar_consultation",
    "updatedAt": "2026-07-31T12:00:00.000Z"
  }
}
```

## `scenario_review_draft`

**Scope:** `scenario:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Validate the complete scenario bundle and return readiness, warnings, and a safe prompt preview.

- [Input JSON Schema](/developers/v14/schemas/mcp/scenario_review_draft.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/scenario_review_draft.output.schema.json)

### Example input

```json
{
  "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1"
}
```

### Example output

```json
{
  "issues": [],
  "promptPreview": "Ask one clear qualification question at a time.",
  "ready": true,
  "revision": 1,
  "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
  "studioUrl": "/app/studio/solar_consultation",
  "warnings": []
}
```

## `scenario_export`

**Scope:** `scenario:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Export a versioned, secret-free public snapshot for review or archival; it is not a round-trip import format.

- [Input JSON Schema](/developers/v14/schemas/mcp/scenario_export.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/scenario_export.output.schema.json)

### Example input

```json
{
  "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1"
}
```

### Example output

```json
{
  "exportedAt": "2026-07-31T12:00:00.000Z",
  "format": "elicitra.scenario.v1",
  "scenario": {
    "definition": {
      "assistantName": "Acme solar guide",
      "audience": "Homeowners in Italy",
      "fields": [
        {
          "followupGuidance": [],
          "goodAnswerExamples": [
            "Detached house"
          ],
          "key": "property_type",
          "label": "Property type",
          "options": [
            "Detached house",
            "Apartment building",
            "Commercial property"
          ],
          "primaryQuestion": "What kind of property would you like to install solar panels on?",
          "required": true,
          "type": "select",
          "weakAnswerExamples": [
            "Not sure"
          ]
        }
      ],
      "liveFit": {
        "gates": [],
        "schemaVersion": "live-fit.v1"
      },
      "purpose": "Qualify homeowners who are exploring residential solar."
    },
    "language": "en-US",
    "mcpEditability": {
      "activeCampaignCount": 0,
      "editable": true,
      "reason": "draft",
      "studioUrl": "/app/studio/solar_consultation"
    },
    "name": "Solar consultation",
    "revision": 1,
    "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
    "slug": "solar_consultation",
    "updatedAt": "2026-07-31T12:00:00.000Z"
  }
}
```

## `campaign_list`

**Scope:** `campaign:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

List allowlisted campaign summaries in the authenticated organization with pagination and governed filters.

- [Input JSON Schema](/developers/v14/schemas/mcp/campaign_list.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/campaign_list.output.schema.json)

### Example input

```json
{
  "channel": "web_call",
  "limit": 20,
  "status": "DRAFT"
}
```

### Example output

```json
{
  "campaigns": [
    {
      "campaignKey": "solar-consultation-web",
      "channel": "web_call",
      "mcpEditability": {
        "editable": true,
        "editorUrl": "/app/campaigns/solar-consultation-web",
        "reason": "draft"
      },
      "name": "Solar consultation — web",
      "revision": 1,
      "scenario": {
        "language": "en-US",
        "name": "Solar consultation",
        "revision": 1,
        "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
        "slug": "solar_consultation"
      },
      "status": "DRAFT",
      "textChatBudget": null,
      "updatedAt": "2026-07-31T12:00:00.000Z"
    }
  ],
  "nextCursor": null
}
```

## `campaign_get`

**Scope:** `campaign:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Read one organization-scoped campaign by campaignKey through a data-minimized public configuration projection.

- [Input JSON Schema](/developers/v14/schemas/mcp/campaign_get.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/campaign_get.output.schema.json)

### Example input

```json
{
  "campaignKey": "solar-consultation-web"
}
```

### Example output

```json
{
  "campaign": {
    "campaignKey": "solar-consultation-web",
    "channel": "web_call",
    "editorUrl": "/app/campaigns/solar-consultation-web",
    "intake": {
      "callback": {
        "capacityPerSlot": 1,
        "enabled": false,
        "label": null
      },
      "ctaLabel": "Start the conversation",
      "headline": "Tell us about your solar project",
      "quickAnswers": {
        "enabled": false,
        "label": null
      },
      "subheadline": "A short guided conversation helps us understand the request.",
      "title": "Solar consultation"
    },
    "mcpEditability": {
      "editable": true,
      "editorUrl": "/app/campaigns/solar-consultation-web",
      "reason": "draft"
    },
    "name": "Solar consultation — web",
    "review": {
      "campaignKey": "solar-consultation-web",
      "draftReady": true,
      "editorUrl": "/app/campaigns/solar-consultation-web",
      "issues": [],
      "operatorActions": [
        "prepare_scenario",
        "configure_access",
        "publish_campaign"
      ],
      "publishReadiness": {
        "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
        "ready": false
      },
      "revision": 1,
      "warnings": [
        {
          "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
          "message": "Prepare the linked scenario in Studio before publishing this campaign.",
          "path": "/publishReadiness"
        },
        {
          "code": "ACCESS_CONFIGURATION_REQUIRED",
          "message": "Choose and configure campaign access in the editor before publishing.",
          "path": "/access"
        }
      ]
    },
    "revision": 1,
    "scenario": {
      "language": "en-US",
      "name": "Solar consultation",
      "revision": 1,
      "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
      "slug": "solar_consultation"
    },
    "status": "DRAFT",
    "textChatBudget": null,
    "theme": {
      "brandName": "Helios Energy",
      "fontPreset": "inter",
      "logoUrl": "https://assets.example.invalid/helios.svg",
      "radiusDensity": "medium",
      "tokens": {
        "accent": "#24d365",
        "accentText": "#04140a",
        "background": "#0e1111",
        "border": "#3b4144",
        "button": "#24d365",
        "buttonText": "#04140a",
        "mutedText": "#9fa9a4",
        "surface": "#17191b",
        "surfaceAlt": "#272b2d",
        "text": "#f7f7f2"
      }
    },
    "updatedAt": "2026-07-31T12:00:00.000Z"
  }
}
```

## `campaign_create_draft`

**Scope:** `campaign:write`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota `maxCampaigns` · 0 credits

Idempotently create a DRAFT campaign for a stable scenario id while enforcing the ordinary campaign quota.

- [Input JSON Schema](/developers/v14/schemas/mcp/campaign_create_draft.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/campaign_create_draft.output.schema.json)

### Example input

```json
{
  "channel": "web_call",
  "idempotencyKey": "create-solar-web-20260731",
  "name": "Solar consultation — web",
  "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1"
}
```

### Example output

```json
{
  "campaign": {
    "campaignKey": "solar-consultation-web",
    "channel": "web_call",
    "editorUrl": "/app/campaigns/solar-consultation-web",
    "intake": {
      "callback": {
        "capacityPerSlot": 1,
        "enabled": false,
        "label": null
      },
      "ctaLabel": "Start the conversation",
      "headline": "Tell us about your solar project",
      "quickAnswers": {
        "enabled": false,
        "label": null
      },
      "subheadline": "A short guided conversation helps us understand the request.",
      "title": "Solar consultation"
    },
    "mcpEditability": {
      "editable": true,
      "editorUrl": "/app/campaigns/solar-consultation-web",
      "reason": "draft"
    },
    "name": "Solar consultation — web",
    "review": {
      "campaignKey": "solar-consultation-web",
      "draftReady": true,
      "editorUrl": "/app/campaigns/solar-consultation-web",
      "issues": [],
      "operatorActions": [
        "prepare_scenario",
        "configure_access",
        "publish_campaign"
      ],
      "publishReadiness": {
        "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
        "ready": false
      },
      "revision": 1,
      "warnings": [
        {
          "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
          "message": "Prepare the linked scenario in Studio before publishing this campaign.",
          "path": "/publishReadiness"
        },
        {
          "code": "ACCESS_CONFIGURATION_REQUIRED",
          "message": "Choose and configure campaign access in the editor before publishing.",
          "path": "/access"
        }
      ]
    },
    "revision": 1,
    "scenario": {
      "language": "en-US",
      "name": "Solar consultation",
      "revision": 1,
      "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
      "slug": "solar_consultation"
    },
    "status": "DRAFT",
    "textChatBudget": null,
    "theme": {
      "brandName": "Helios Energy",
      "fontPreset": "inter",
      "logoUrl": "https://assets.example.invalid/helios.svg",
      "radiusDensity": "medium",
      "tokens": {
        "accent": "#24d365",
        "accentText": "#04140a",
        "background": "#0e1111",
        "border": "#3b4144",
        "button": "#24d365",
        "buttonText": "#04140a",
        "mutedText": "#9fa9a4",
        "surface": "#17191b",
        "surfaceAlt": "#272b2d",
        "text": "#f7f7f2"
      }
    },
    "updatedAt": "2026-07-31T12:00:00.000Z"
  },
  "receipt": {
    "expiresAt": "2026-08-01T12:00:00.000Z",
    "idempotencyKey": "create-solar-web-20260731",
    "replayed": false
  }
}
```

## `campaign_update_draft`

**Scope:** `campaign:write`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Atomically apply one operation of each supported type to a DRAFT campaign with optimistic revision and idempotency guards.

- [Input JSON Schema](/developers/v14/schemas/mcp/campaign_update_draft.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/campaign_update_draft.output.schema.json)

### Example input

```json
{
  "campaignKey": "solar-consultation-web",
  "expectedRevision": 1,
  "idempotencyKey": "update-solar-web-20260731",
  "operations": [
    {
      "intake": {
        "ctaLabel": "Start the conversation",
        "headline": "Tell us about your solar project",
        "subheadline": "A short guided conversation helps us understand the request.",
        "title": "Solar consultation"
      },
      "type": "set_intake"
    },
    {
      "theme": {
        "brandName": "Helios Energy",
        "fontPreset": "inter"
      },
      "type": "set_theme"
    }
  ]
}
```

### Example output

```json
{
  "campaign": {
    "campaignKey": "solar-consultation-web",
    "channel": "web_call",
    "editorUrl": "/app/campaigns/solar-consultation-web",
    "intake": {
      "callback": {
        "capacityPerSlot": 1,
        "enabled": false,
        "label": null
      },
      "ctaLabel": "Start the conversation",
      "headline": "Tell us about your solar project",
      "quickAnswers": {
        "enabled": false,
        "label": null
      },
      "subheadline": "A short guided conversation helps us understand the request.",
      "title": "Solar consultation"
    },
    "mcpEditability": {
      "editable": true,
      "editorUrl": "/app/campaigns/solar-consultation-web",
      "reason": "draft"
    },
    "name": "Solar consultation — web",
    "review": {
      "campaignKey": "solar-consultation-web",
      "draftReady": true,
      "editorUrl": "/app/campaigns/solar-consultation-web",
      "issues": [],
      "operatorActions": [
        "prepare_scenario",
        "configure_access",
        "publish_campaign"
      ],
      "publishReadiness": {
        "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
        "ready": false
      },
      "revision": 2,
      "warnings": [
        {
          "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
          "message": "Prepare the linked scenario in Studio before publishing this campaign.",
          "path": "/publishReadiness"
        },
        {
          "code": "ACCESS_CONFIGURATION_REQUIRED",
          "message": "Choose and configure campaign access in the editor before publishing.",
          "path": "/access"
        }
      ]
    },
    "revision": 2,
    "scenario": {
      "language": "en-US",
      "name": "Solar consultation",
      "revision": 1,
      "scenarioId": "018f769b-7a6a-7c32-9f3c-8399b27c33f1",
      "slug": "solar_consultation"
    },
    "status": "DRAFT",
    "textChatBudget": null,
    "theme": {
      "brandName": "Helios Energy",
      "fontPreset": "inter",
      "logoUrl": "https://assets.example.invalid/helios.svg",
      "radiusDensity": "medium",
      "tokens": {
        "accent": "#24d365",
        "accentText": "#04140a",
        "background": "#0e1111",
        "border": "#3b4144",
        "button": "#24d365",
        "buttonText": "#04140a",
        "mutedText": "#9fa9a4",
        "surface": "#17191b",
        "surfaceAlt": "#272b2d",
        "text": "#f7f7f2"
      }
    },
    "updatedAt": "2026-07-31T12:00:00.000Z"
  },
  "receipt": {
    "expiresAt": "2026-08-01T12:00:00.000Z",
    "idempotencyKey": "update-solar-web-20260731",
    "replayed": false
  }
}
```

## `campaign_review_draft`

**Scope:** `campaign:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Run deterministic provider-free DRAFT validation and return allowlisted blockers, warnings, operator actions, and the editor link.

- [Input JSON Schema](/developers/v14/schemas/mcp/campaign_review_draft.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/campaign_review_draft.output.schema.json)

### Example input

```json
{
  "campaignKey": "solar-consultation-web"
}
```

### Example output

```json
{
  "campaignKey": "solar-consultation-web",
  "draftReady": true,
  "editorUrl": "/app/campaigns/solar-consultation-web",
  "issues": [],
  "operatorActions": [
    "prepare_scenario",
    "configure_access",
    "publish_campaign"
  ],
  "publishReadiness": {
    "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
    "ready": false
  },
  "revision": 1,
  "warnings": [
    {
      "code": "PUBLISH_PROVIDER_NOT_PUBLISHED",
      "message": "Prepare the linked scenario in Studio before publishing this campaign.",
      "path": "/publishReadiness"
    },
    {
      "code": "ACCESS_CONFIGURATION_REQUIRED",
      "message": "Choose and configure campaign access in the editor before publishing.",
      "path": "/access"
    }
  ]
}
```

## `elicitra_knowledge_search`

**Scope:** `scenario:read`

**Availability:** PAYG/Growth/Scale · entitlement `mcpControlPlaneEnabled` · quota none · 0 credits

Search the canonical, customer-safe Betterstood product knowledge in one requested locale, optionally limited to selected topics.

- [Input JSON Schema](/developers/v14/schemas/mcp/elicitra_knowledge_search.input.schema.json)
- [Output JSON Schema](/developers/v14/schemas/mcp/elicitra_knowledge_search.output.schema.json)

### Example input

```json
{
  "limit": 3,
  "locale": "en-US",
  "query": "How do credits work?",
  "topics": [
    "credits"
  ]
}
```

### Example output

```json
{
  "hasMore": false,
  "locale": "en-US",
  "productVersion": "0.7.1",
  "resultCount": 1,
  "results": [
    {
      "documentTitle": "Credits",
      "id": "credits:credit-basics",
      "sectionTitle": "How credits work",
      "text": "Credits measure metered Betterstood usage. Product knowledge searches do not consume credits.",
      "topic": "credits"
    }
  ],
  "schemaVersion": 1,
  "topicsSearched": [
    "credits"
  ]
}
```
