# LeanrIQ (remote · iq.leanrads.com)

Creative-intelligence MCP for campaign strategy, ad builds, QA, and reporting.

- Trust score: 72/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-16

## Components

- remote · `iq.leanrads.com`: 72/100 (this document), [markdown](https://verifymcp.io/servers/leanrads-leanriq/iq.md), [page](https://verifymcp.io/servers/leanrads-leanriq/iq)

## Channel facts

- Endpoint: `https://iq.leanrads.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-16.

- **Endpoint Security**: 91/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 62/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Context-footprint check failed: tool/resource definitions use about 24095 tokens (~223/item across 108 items; 87 tools + 21 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 9/100
  - Stability check failed: schema churn in the 3 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 2 additions.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add --transport http leanrads-leanriq https://iq.leanrads.com/mcp
```

### Codex

```toml
[mcp_servers.leanrads-leanriq]
url = "https://iq.leanrads.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "leanrads-leanriq": {
      "type": "remote",
      "url": "https://iq.leanrads.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add leanrads-leanriq --url https://iq.leanrads.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  leanrads-leanriq:
    url: "https://iq.leanrads.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "leanrads-leanriq": {
      "type": "http",
      "url": "https://iq.leanrads.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-15 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 6.

### 2026-08-14 (score 71, 0)

- [security regression] Stability: unverified → fail
- [security regression] A breaking change shipped without a version bump: still 1.0.0
- [security] Tool “get_competitor_intelligence” rewrote its description, which is the text the model reads
- [security] Tool “leanriq_get_competitor_creative_intelligence” rewrote its description, which is the text the model reads
- [functional regression] “get_competitor_intelligence” dropped the required parameter “brandName”
- [functional] New tool “list_competitor_evidence”
- [functional] New tool “run_competitor_intelligence”
- [cosmetic] “get_competitor_intelligence” added an optional parameter “advertiserId”
- [cosmetic] “get_competitor_intelligence” added an optional parameter “competitorDomain”
- [cosmetic] “get_competitor_intelligence” added an optional parameter “competitorId”
- [cosmetic] “get_competitor_intelligence” added an optional parameter “competitorName”
- [cosmetic] “get_competitor_intelligence” added an optional parameter “includeEvidence”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “advertiserGuidanceSnapshot”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “advertiserId”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “competitorDomain”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “competitorId”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “competitorName”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “competitorWebsite”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “domain”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “evidenceLimit”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “evidenceMode”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “forceRefresh”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “lookbackDays”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “market”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “markets”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “name”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “strategyMode”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “strategyModes”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” added an optional parameter “targetMarkets”
- [cosmetic] “get_competitor_intelligence” dropped the optional parameter “adFormat”
- [cosmetic] “get_competitor_intelligence” dropped the optional parameter “limit”
- [cosmetic] “get_competitor_intelligence” dropped the optional parameter “region”
- [cosmetic] “get_competitor_intelligence” dropped the optional parameter “vertical”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” dropped the optional parameter “adFormat”
- [cosmetic] “leanriq_get_competitor_creative_intelligence” dropped the optional parameter “vertical”
- [cosmetic] “get_competitor_intelligence” made “website” optional
- [cosmetic] “leanriq_get_competitor_creative_intelligence” made “brandName” optional
- [cosmetic] “leanriq_get_competitor_creative_intelligence” made “website” optional
- [cosmetic] Tool “get_competitor_intelligence” changed its title: get competitor intelligence → Read saved canonical LeanrIQ Competitor Intelligence V2 for an advertiser-scoped competitor. This does not reacquire evidence or generate new recommendations.
- [cosmetic] Tool “leanriq_get_competitor_creative_intelligence” changed its title: get competitor intelligence (deprecated alias) → Run canonical LeanrIQ Competitor Intelligence V2 for one advertiser-scoped competitor. Defaults match Studio: 90-day DISPLAY evidence and no mixed social/video banner inference. Without forceRefresh, an existing canonical result is reused when available. (deprecated alias)

### 2026-08-13 (score 71, +35)

- [security improvement] Transport: unverified → pass
- [security] Authorization: Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Tool coverage: 0
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fair
- [functional] First check of Schema quality: fail
- [functional] First check of Capabilities: pass
- [functional] First check of Tool coverage: 100

### 2026-08-12 (score 36)

First indexed and scored.

## MCP tools (87)

### `get_current_user` (~121 tokens)

get current user

get current user. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_accessible_seats` (~123 tokens)

list accessible seats

list accessible seats. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_current_seat` (~122 tokens)

get current seat

get current seat. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_permissions` (~127 tokens)

get permissions

get permissions. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_capabilities` (~128 tokens)

get capabilities

get capabilities. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `includeHidden` (boolean)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_media_buy_delivery` (~234 tokens)

AdCP-standard media-buy delivery reporting.

AdCP-standard media-buy delivery reporting.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `account` (object)
- `adcp_version` (string)
- `attribution_window` (object)
- `context` (object)
- `end_date` (string)
- `ext` (object)
- `include_package_daily_breakdown` (boolean)
- `include_window_breakdown` (boolean)
- `media_buy_ids` (array, required)
- `reporting_dimensions` (object)
- `seatId` (string)
- `seatName` (string)
- `start_date` (string)
- `status_filter`
- `time_granularity` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_advertisers` (~174 tokens)

list advertisers

list advertisers. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_advertiser` (~193 tokens)

get advertiser

get advertiser. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string, required)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `flightId` (string)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `create_advertiser` (~264 tokens)

create advertiser

create advertiser. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiser` (object, required)
- `approvalId` (string)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `update_advertiser` (~272 tokens)

update advertiser

update advertiser. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiserId` (string, required)
- `approvalId` (string)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `patch` (object, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `archive_advertiser` (~299 tokens)

archive advertiser

archive advertiser. Classification: writes to Studio, destructive. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiserId` (string, required)
- `approvalId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `dryRun` (boolean)
- `expectedVersion`
- `flightId` (string)
- `idempotencyKey` (string)
- `resourceId` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_brand_profile` (~168 tokens)

Research and return a LeanrIQ brand profile. This read capability does not save to Studio.

Research and return a LeanrIQ brand profile. This read capability does not save to Studio.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `advertiserId` (string)
- `brandName` (string, required)
- `brandUrl` (string, required)
- `forceRefresh` (boolean)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `refresh_brand_profile` (~279 tokens)

Refresh and save a standalone Studio advertiser brand profile.

Refresh and save a standalone Studio advertiser brand profile.. Classification: writes to Studio, creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiserId` (string, required)
- `brandName` (string, required)
- `brandUrl` (string, required)
- `forceRefresh` (boolean)
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_brand_visuals` (~197 tokens)

Collect brand logos, imagery, colours, fonts, and visual previews for use in Studio creative builds. Use this before build_ad when a campaign needs visual grounding; this read capability does not sav…

Collect brand logos, imagery, colours, fonts, and visual previews for use in Studio creative builds. Use this before build_ad when a campaign needs visual grounding; this read capability does not save to Studio.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `advertiserId` (string, required)
- `brandName` (string, required)
- `options` (object)
- `seatId` (string)
- `seatName` (string)
- `storage` (object)
- `websiteUrl` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `refresh_brand_visuals` (~280 tokens)

refresh brand visuals

refresh brand visuals. Classification: writes to Studio, creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiserId` (string, required)
- `brandName` (string, required)
- `idempotencyKey` (string, required)
- `options` (object)
- `seatId` (string)
- `seatName` (string)
- `storage` (object)
- `websiteUrl` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_competitors` (~174 tokens)

list competitors

list competitors. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `run_competitor_intelligence` (~385 tokens)

Run canonical LeanrIQ Competitor Intelligence V2 for one advertiser-scoped competitor. Defaults match Studio: 90-day DISPLAY evidence and no mixed social/video banner inference. Without forceRefresh,…

Run canonical LeanrIQ Competitor Intelligence V2 for one advertiser-scoped competitor. Defaults match Studio: 90-day DISPLAY evidence and no mixed social/video banner inference. Without forceRefresh, an existing canonical result is reused when available.. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `advertiserGuidanceSnapshot` (object)
- `advertiserId` (string)
- `brandName` (string)
- `competitorDomain` (string)
- `competitorId` (string)
- `competitorName` (string)
- `competitorWebsite` (string)
- `domain` (string)
- `evidenceLimit` (integer)
- `evidenceMode` (string)
- `forceRefresh` (boolean)
- `limit` (integer)
- `lookbackDays` (integer)
- `market`
- `markets`
- `name` (string)
- `region` (string)
- `seatId` (string)
- `seatName` (string)
- `strategyMode` (string)
- `strategyModes` (array)
- `targetMarkets`
- `website` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_competitor_intelligence` (~196 tokens)

Read saved canonical LeanrIQ Competitor Intelligence V2 for an advertiser-scoped competitor. This does not reacquire evidence or generate new recommendations.

Read saved canonical LeanrIQ Competitor Intelligence V2 for an advertiser-scoped competitor. This does not reacquire evidence or generate new recommendations.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `advertiserId` (string)
- `competitorDomain` (string)
- `competitorId` (string)
- `competitorName` (string)
- `includeEvidence` (boolean)
- `seatId` (string)
- `seatName` (string)
- `website` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_competitor_evidence` (~200 tokens)

List qualified display evidence from saved canonical LeanrIQ Competitor Intelligence V2. Cross-channel inspiration is not mixed into DISPLAY evidence.

List qualified display evidence from saved canonical LeanrIQ Competitor Intelligence V2. Cross-channel inspiration is not mixed into DISPLAY evidence.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `advertiserId` (string)
- `competitorDomain` (string)
- `competitorId` (string)
- `competitorName` (string)
- `includeEvidence` (boolean)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `website` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_vertical_intelligence` (~299 tokens)

get vertical intelligence

get vertical intelligence. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_campaigns` (~173 tokens)

list campaigns

list campaigns. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_campaign` (~256 tokens)

get campaign

get campaign. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. Campaign metadata only. Studio aiActivation/adBuild fields describe workflow or progress state, not saved creative inventory, and must never be used to infer whether creatives exist or how many are saved. If the user asks for creatives or creative inventory for a known campaignId, call list_creatives directly; do not preflight get_campaign.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string, required)
- `creativeId` (string)
- `flightId` (string)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `create_campaign` (~313 tokens)

Create a Studio campaign. Put all campaign fields inside campaign. Map natural-language requests such as "called" to campaignName, awareness/consideration/conversion to funnelStage, impression goals…

Create a Studio campaign. Put all campaign fields inside campaign. Map natural-language requests such as "called" to campaignName, awareness/consideration/conversion to funnelStage, impression goals to targetImpressions, and KPI labels to primaryKpi or secondaryKpi.. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `approvalId` (string)
- `campaign` (object, required)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `update_campaign` (~306 tokens)

Update a Studio campaign. Use the canonical campaign fields inside patch, including campaignName, funnelStage, targetImpressions, primaryKpi, and secondaryKpi when those values are being changed.

Update a Studio campaign. Use the canonical campaign fields inside patch, including campaignName, funnelStage, targetImpressions, primaryKpi, and secondaryKpi when those values are being changed.. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `campaignId` (string, required)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `patch` (object, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `archive_campaign` (~297 tokens)

archive campaign

archive campaign. Classification: writes to Studio, destructive. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiserId` (string)
- `approvalId` (string)
- `campaignId` (string, required)
- `creativeId` (string)
- `dryRun` (boolean)
- `expectedVersion`
- `flightId` (string)
- `idempotencyKey` (string)
- `resourceId` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `create_creative_brief` (~456 tokens)

Generate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints. When creative IDs and saveToStudio are supplied, LeanrIQ s…

Generate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints. When creative IDs and saveToStudio are supplied, LeanrIQ saves only when the caller has Studio write permission; otherwise it returns a non-destructive proposal.. Classification: writes to Studio, creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `create_production_plan` (~293 tokens)

create production plan

create production plan. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `advertiserId` (string)
- `assets` (array)
- `brand` (required)
- `brief` (object, required)
- `campaignId` (string)
- `campaignName` (string, required)
- `constraints` (array)
- `creative` (object)
- `creativeId` (string)
- `format` (string, required)
- `mode` (string)
- `requestedOperationTypes` (array)
- `seatId` (string)
- `seatName` (string)
- `studioCapabilities` (object)
- `template` (object)
- `templateAnalysis` (object)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `qa_creative` (~243 tokens)

QA a creative for launch readiness with actionable issues, certification evidence, and next steps before preview, revision, or trafficking.

QA a creative for launch readiness with actionable issues, certification evidence, and next steps before preview, revision, or trafficking.. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `brand` (string, required)
- `context` (string)
- `creative` (object, required)
- `format` (string, required)
- `objective` (string, required)
- `rules` (array)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `run_creative_chain` (~435 tokens)

run creative chain

run creative chain. Classification: writes to Studio, creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `KPI` (string)
- `accountId` (string)
- `advertiserId` (string)
- `audience` (string)
- `brand`
- `budget`
- `buildAds` (boolean)
- `campaignId` (string)
- `campaignName` (string)
- `channel` (string)
- `constraints` (array)
- `creativeId` (string)
- `creativeIds` (array)
- `deliverables` (array)
- `endDate` (string)
- `force` (boolean)
- `funnelStage` (string)
- `goal` (string)
- `idempotencyKey` (string)
- `mustAvoid` (array)
- `mustInclude` (array)
- `objective` (string)
- `offer` (string)
- `product` (string)
- `saveToStudio` (boolean)
- `seatId` (string)
- `seatName` (string)
- `startDate` (string)
- `targetSizes` (array)
- `tone` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `launch_creative_campaign` (~589 tokens)

LeanrIQ Creative Runtime: Default preview mode works without Studio and stores research, briefs, builds, QA, and previews in a LeanrIQ workspace. collaborate keeps proposals non-destructive; operate…

LeanrIQ Creative Runtime: Default preview mode works without Studio and stores research, briefs, builds, QA, and previews in a LeanrIQ workspace. collaborate keeps proposals non-destructive; operate deliberately creates Studio work. Publish is never inferred: traffic_ready and publish remain explicit governed Studio actions.. Classification: writes to Studio, creates billable AI usage, publishes externally. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `KPI` (string)
- `accountId` (string)
- `advertiserId` (string)
- `approvalId` (string)
- `audience` (string)
- `brand`
- `budget`
- `campaignId` (string)
- `campaignName` (string)
- `channel` (string)
- `constraints` (array)
- `createCampaignIfMissing` (boolean)
- `deliverables` (array)
- `destination` (string)
- `elements` (array)
- `endDate` (string)
- `executionMode` (string)
- `flightId` (string)
- `flightName` (string)
- `force` (boolean)
- `funnelStage` (string)
- `idempotencyKey` (string)
- `landingPageUrl` (string)
- `mustAvoid` (array)
- `mustInclude` (array)
- `objective` (string, required)
- `offer` (string)
- `performanceEvidence` (array)
- `persistence` (string)
- `platform` (string)
- `product` (string)
- `revisionRequest` (string)
- `saveToStudio` (boolean)
- `seatId` (string)
- `seatName` (string)
- `startDate` (string)
- `targetSizes` (array)
- `tone` (string)
- `vertical` (string)
- `workspaceAccessToken` (string)
- `workspaceId` (string)
- `workspaceSource` (object)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `promote_creative_workspace` (~316 tokens)

Deliberately promote one approved LeanrIQ creative workspace into Studio. The workspace and selected territory are retained, and a repeated promotion returns the recorded result rather than duplicati…

Deliberately promote one approved LeanrIQ creative workspace into Studio. The workspace and selected territory are retained, and a repeated promotion returns the recorded result rather than duplicating Studio production records.. Classification: writes to Studio, creates billable AI usage. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `approvalId` (string)
- `campaignId` (string)
- `campaignName` (string)
- `idempotencyKey` (string)
- `seatId` (string)
- `seatName` (string)
- `workspaceId` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_creatives` (~338 tokens)

List Studio creatives. Prefer campaignId for deterministic campaign inventory reads. If only campaignName is available, pair it with advertiserId or advertiserName so LeanrIQ can resolve the campaign…

List Studio creatives. Prefer campaignId for deterministic campaign inventory reads. If only campaignName is available, pair it with advertiserId or advertiserName so LeanrIQ can resolve the campaign once, follow pagination centrally, and return the full campaign creative set without local guesswork.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. This tool is the authoritative saved Studio creative inventory for the requested scope. With an exact campaignId, call list_creatives directly as the first and only inventory read. The MCP response returns a compact inventory containing creative names, IDs, sizes and statuses; use get_creative only when full creative internals are needed. Non-empty rows prove saved creatives exist regardless of campaign build or activation workflow state; a completed empty result is authoritative. Do not call get_campaign first to decide whether creatives exist.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `advertiserName` (string)
- `campaignId` (string)
- `campaignName` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_creative` (~192 tokens)

get creative

get creative. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string, required)
- `flightId` (string)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `build_ad` (~465 tokens)

Build and save existing Studio creative records. When campaignId or campaignName is supplied, LeanrIQ resolves the complete persisted campaign inventory, uses each saved brief, approved asset set, an…

Build and save existing Studio creative records. When campaignId or campaignName is supplied, LeanrIQ resolves the complete persisted campaign inventory, uses each saved brief, approved asset set, and eligible global or advertiser template, then runs the canonical Studio Gold build path. Campaign-scoped calls save by default; use persistence preview_only only for an unsaved ad-hoc preview.. Classification: creates billable AI usage. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `build_campaign_creative_set` (~408 tokens)

Plan and create an initial Studio creative set for a campaign that has no saved creatives. Do not use this tool to rebuild existing creatives; use build_ad with campaignId or campaignName, which reso…

Plan and create an initial Studio creative set for a campaign that has no saved creatives. Do not use this tool to rebuild existing creatives; use build_ad with campaignId or campaignName, which resolves and rebuilds the full saved Studio inventory.. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `KPI` (string, required)
- `accountId` (string)
- `advertiserId` (string)
- `audience` (string, required)
- `billing` (string)
- `brand` (object)
- `budget`
- `campaignId` (string)
- `campaignName` (string, required)
- `createAdvertiserIfMissing` (boolean)
- `desiredVariantCount` (integer)
- `endDate` (string)
- `funnelStage` (string, required)
- `generateTags` (boolean)
- `idempotencyKey` (string)
- `notes` (string)
- `objective` (string, required)
- `operator` (string)
- `sandbox` (boolean)
- `saveToStudio` (boolean)
- `seatId` (string)
- `seatName` (string)
- `startDate` (string)
- `strictBrandCompliance` (boolean)
- `targetSizes` (array)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `revise_creative` (~324 tokens)

Revise an existing saved Studio creative from plain-language instructions, save the updated creative, and return fresh preview links plus QA/certification context for review.

Revise an existing saved Studio creative from plain-language instructions, save the updated creative, and return fresh preview links plus QA/certification context for review.. Classification: creates billable AI usage. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `approvalId` (string)
- `creativeId` (string, required)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `instructions` (array)
- `persistence` (string)
- `prompt` (string)
- `saveToStudio` (boolean)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `clone_creative` (~264 tokens)

clone creative

clone creative. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `creativeId` (string, required)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `create_creative_version` (~289 tokens)

create creative version

create creative version. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `changeSummary` (string)
- `creative` (object)
- `creativeId` (string, required)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)
- `versionId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_creative_versions` (~194 tokens)

list creative versions

list creative versions. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string, required)
- `flightId` (string)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `restore_creative_version` (~289 tokens)

restore creative version

restore creative version. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `changeSummary` (string)
- `creative` (object)
- `creativeId` (string, required)
- `dryRun` (boolean)
- `expectedVersion`
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)
- `versionId` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `archive_creative` (~298 tokens)

archive creative

archive creative. Classification: writes to Studio, destructive. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiserId` (string)
- `approvalId` (string)
- `campaignId` (string)
- `creativeId` (string, required)
- `dryRun` (boolean)
- `expectedVersion`
- `flightId` (string)
- `idempotencyKey` (string)
- `resourceId` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_templates` (~172 tokens)

list templates

list templates. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_template` (~191 tokens)

get template

get template. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `flightId` (string)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_assets` (~221 tokens)

list assets

list assets. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. Studio assets are scoped resources: pass advertiserId or creativeId when listing assets, and pass one of those scopes together with assetId when retrieving one asset. LeanrIQ returns INVALID_INPUT rather than a misleading empty result when that scope is absent.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_asset` (~240 tokens)

get asset

get asset. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. Studio assets are scoped resources: pass advertiserId or creativeId when listing assets, and pass one of those scopes together with assetId when retrieving one asset. LeanrIQ returns INVALID_INPUT rather than a misleading empty result when that scope is absent.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string, required)
- `campaignId` (string)
- `creativeId` (string)
- `flightId` (string)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `generate_preview_links` (~168 tokens)

Generate public review preview links for one or more saved Studio creatives without changing campaign content.

Generate public review preview links for one or more saved Studio creatives without changing campaign content.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string, required)
- `creativeId` (string)
- `creativeIds` (array)
- `idempotencyKey` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_preview_link` (~193 tokens)

get preview link

get preview link. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `flightId` (string)
- `previewId` (string, required)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `create_flight` (~302 tokens)

create flight

create flight. Classification: writes to Studio. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `approvalId` (string)
- `campaignId` (string)
- `creativeConfigs` (array)
- `dryRun` (boolean)
- `expectedVersion`
- `flightId` (string)
- `idempotencyKey` (string)
- `name` (string)
- `platform` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_flight` (~192 tokens)

get flight

get flight. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `flightId` (string, required)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_flights` (~173 tokens)

list flights

list flights. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `update_flight` (~302 tokens)

update flight

update flight. Classification: writes to Studio. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `approvalId` (string)
- `campaignId` (string)
- `creativeConfigs` (array)
- `dryRun` (boolean)
- `expectedVersion`
- `flightId` (string, required)
- `idempotencyKey` (string)
- `name` (string)
- `platform` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `delete_flight` (~298 tokens)

delete flight

delete flight. Classification: writes to Studio, destructive. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `advertiserId` (string)
- `approvalId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `dryRun` (boolean)
- `expectedVersion`
- `flightId` (string, required)
- `idempotencyKey` (string)
- `resourceId` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `validate_flight` (~192 tokens)

validate flight

validate flight. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `flightId` (string, required)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `preview_trafficking_output` (~181 tokens)

preview trafficking output

preview trafficking output. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `creativeId` (string)
- `dryRun` (boolean)
- `flightId` (string, required)
- `force` (boolean)
- `idempotencyKey` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `traffick_creative` (~274 tokens)

traffick creative

traffick creative. Classification: publishes externally. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `creativeId` (string, required)
- `dryRun` (boolean)
- `flightId` (string, required)
- `force` (boolean)
- `idempotencyKey` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `traffick_flight` (~274 tokens)

traffick flight

traffick flight. Classification: publishes externally. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `creativeId` (string)
- `dryRun` (boolean)
- `flightId` (string, required)
- `force` (boolean)
- `idempotencyKey` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `retraffick_creative` (~276 tokens)

retraffick creative

retraffick creative. Classification: publishes externally. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `creativeId` (string, required)
- `dryRun` (boolean)
- `flightId` (string, required)
- `force` (boolean)
- `idempotencyKey` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `retraffick_flight` (~276 tokens)

retraffick flight

retraffick flight. Classification: publishes externally. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `approvalId` (string)
- `creativeId` (string)
- `dryRun` (boolean)
- `flightId` (string, required)
- `force` (boolean)
- `idempotencyKey` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `push_flight_to_yahoo` (~299 tokens)

Publish path for approved work only: traffick and certify a saved Studio flight, generate or reuse ad-server tags, and push the resulting inactive or approved payload to Yahoo DSP with audit evidence.

Publish path for approved work only: traffick and certify a saved Studio flight, generate or reuse ad-server tags, and push the resulting inactive or approved payload to Yahoo DSP with audit evidence.. Classification: writes to Studio, publishes externally. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `approvalId` (string)
- `creativeIds` (array)
- `flightId` (string, required)
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_adserver_tag` (~179 tokens)

get adserver tag

get adserver tag. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `approvalId` (string)
- `creativeId` (string, required)
- `flightId` (string, required)
- `force` (boolean)
- `idempotencyKey` (string)
- `platform` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `generate_adserver_tag` (~275 tokens)

generate adserver tag

generate adserver tag. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `approvalId` (string)
- `creativeId` (string, required)
- `flightId` (string, required)
- `force` (boolean)
- `idempotencyKey` (string)
- `platform` (string)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_trafficked_assets` (~197 tokens)

get trafficked assets

get trafficked assets. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `assetId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `flightId` (string, required)
- `previewId` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string)
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `export_trafficked_assets` (~148 tokens)

export trafficked assets

export trafficked assets. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `flightId` (string, required)
- `seatId` (string)
- `seatName` (string)
- `type` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `get_task` (~153 tokens)

Poll a durable LeanrIQ task returned by build_ad, revise_creative, trafficking, or another queued capability and continue with the completed output.

Poll a durable LeanrIQ task returned by build_ad, revise_creative, trafficking, or another queued capability and continue with the completed output.. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `seatId` (string)
- `seatName` (string)
- `taskId` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `list_tasks` (~172 tokens)

list tasks

list tasks. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `campaignId` (string)
- `creativeId` (string)
- `cursor` (string)
- `limit` (integer)
- `seatId` (string)
- `seatName` (string)
- `status` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `cancel_task` (~247 tokens)

cancel task

cancel task. Classification: read-only. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `idempotencyKey` (string)
- `reason` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `retry_task` (~247 tokens)

retry task

retry task. Classification: read-only. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `idempotencyKey` (string)
- `reason` (string)
- `seatId` (string)
- `seatName` (string)
- `taskId` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `provide_performance_feedback` (~259 tokens)

provide performance feedback

provide performance feedback. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string, required)
- `creativeId` (string)
- `feedback` (object, required)
- `flightId` (string)
- `idempotencyKey` (string, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_qa_creative` (~254 tokens)

QA a creative for launch readiness with actionable issues, certification evidence, and next steps before preview, revision, or trafficking. (deprecated alias)

QA a creative for launch readiness with actionable issues, certification evidence, and next steps before preview, revision, or trafficking.. Deprecated alias for qa_creative. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `brand` (string, required)
- `context` (string)
- `creative` (object, required)
- `format` (string, required)
- `objective` (string, required)
- `rules` (array)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_launch_creative_campaign` (~600 tokens)

LeanrIQ Creative Runtime: Default preview mode works without Studio and stores research, briefs, builds, QA, and previews in a LeanrIQ workspace. collaborate keeps proposals non-destructive; operate…

LeanrIQ Creative Runtime: Default preview mode works without Studio and stores research, briefs, builds, QA, and previews in a LeanrIQ workspace. collaborate keeps proposals non-destructive; operate deliberately creates Studio work. Publish is never inferred: traffic_ready and publish remain explicit governed Studio actions.. Deprecated alias for launch_creative_campaign. Classification: writes to Studio, creates billable AI usage, publishes externally. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `KPI` (string)
- `accountId` (string)
- `advertiserId` (string)
- `approvalId` (string)
- `audience` (string)
- `brand`
- `budget`
- `campaignId` (string)
- `campaignName` (string)
- `channel` (string)
- `constraints` (array)
- `createCampaignIfMissing` (boolean)
- `deliverables` (array)
- `destination` (string)
- `elements` (array)
- `endDate` (string)
- `executionMode` (string)
- `flightId` (string)
- `flightName` (string)
- `force` (boolean)
- `funnelStage` (string)
- `idempotencyKey` (string)
- `landingPageUrl` (string)
- `mustAvoid` (array)
- `mustInclude` (array)
- `objective` (string, required)
- `offer` (string)
- `performanceEvidence` (array)
- `persistence` (string)
- `platform` (string)
- `product` (string)
- `revisionRequest` (string)
- `saveToStudio` (boolean)
- `seatId` (string)
- `seatName` (string)
- `startDate` (string)
- `targetSizes` (array)
- `tone` (string)
- `vertical` (string)
- `workspaceAccessToken` (string)
- `workspaceId` (string)
- `workspaceSource` (object)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_build_ad` (~474 tokens)

Build and save existing Studio creative records. When campaignId or campaignName is supplied, LeanrIQ resolves the complete persisted campaign inventory, uses each saved brief, approved asset set, an…

Build and save existing Studio creative records. When campaignId or campaignName is supplied, LeanrIQ resolves the complete persisted campaign inventory, uses each saved brief, approved asset set, and eligible global or advertiser template, then runs the canonical Studio Gold build path. Campaign-scoped calls save by default; use persistence preview_only only for an unsaved ad-hoc preview.. Deprecated alias for build_ad. Classification: creates billable AI usage. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_build_agent_ad` (~475 tokens)

Build and save existing Studio creative records. When campaignId or campaignName is supplied, LeanrIQ resolves the complete persisted campaign inventory, uses each saved brief, approved asset set, an…

Build and save existing Studio creative records. When campaignId or campaignName is supplied, LeanrIQ resolves the complete persisted campaign inventory, uses each saved brief, approved asset set, and eligible global or advertiser template, then runs the canonical Studio Gold build path. Campaign-scoped calls save by default; use persistence preview_only only for an unsaved ad-hoc preview.. Deprecated alias for build_ad. Classification: creates billable AI usage. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanr_build_campaign_creative_set` (~419 tokens)

Plan and create an initial Studio creative set for a campaign that has no saved creatives. Do not use this tool to rebuild existing creatives; use build_ad with campaignId or campaignName, which reso…

Plan and create an initial Studio creative set for a campaign that has no saved creatives. Do not use this tool to rebuild existing creatives; use build_ad with campaignId or campaignName, which resolves and rebuilds the full saved Studio inventory.. Deprecated alias for build_campaign_creative_set. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `KPI` (string, required)
- `accountId` (string)
- `advertiserId` (string)
- `audience` (string, required)
- `billing` (string)
- `brand` (object)
- `budget`
- `campaignId` (string)
- `campaignName` (string, required)
- `createAdvertiserIfMissing` (boolean)
- `desiredVariantCount` (integer)
- `endDate` (string)
- `funnelStage` (string, required)
- `generateTags` (boolean)
- `idempotencyKey` (string)
- `notes` (string)
- `objective` (string, required)
- `operator` (string)
- `sandbox` (boolean)
- `saveToStudio` (boolean)
- `seatId` (string)
- `seatName` (string)
- `startDate` (string)
- `strictBrandCompliance` (boolean)
- `targetSizes` (array)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_resolve_or_provision_advertiser` (~308 tokens)

resolve or provision advertiser (deprecated alias)

resolve or provision advertiser. Deprecated alias for resolve_or_provision_advertiser. Classification: writes to Studio. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiserId` (string)
- `billing` (string)
- `brand` (object)
- `createIfMissing` (boolean)
- `dryRun` (boolean)
- `idempotencyKey` (string)
- `operator` (string)
- `sandbox` (boolean)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_create_strategy` (~247 tokens)

create creative strategy (deprecated alias)

create creative strategy. Deprecated alias for create_creative_strategy. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `audience` (string, required)
- `brand` (string, required)
- `channel` (string)
- `constraints` (array)
- `context` (string)
- `goal` (string, required)
- `offer` (string)
- `product` (string, required)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_create_brief` (~466 tokens)

Generate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints. When creative IDs and saveToStudio are supplied, LeanrIQ s…

Generate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints. When creative IDs and saveToStudio are supplied, LeanrIQ saves only when the caller has Studio write permission; otherwise it returns a non-destructive proposal.. Deprecated alias for create_creative_brief. Classification: writes to Studio, creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_create_creative_brief` (~468 tokens)

Generate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints. When creative IDs and saveToStudio are supplied, LeanrIQ s…

Generate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints. When creative IDs and saveToStudio are supplied, LeanrIQ saves only when the caller has Studio write permission; otherwise it returns a non-destructive proposal.. Deprecated alias for create_creative_brief. Classification: writes to Studio, creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_create_production_plan` (~304 tokens)

create production plan (deprecated alias)

create production plan. Deprecated alias for create_production_plan. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `advertiserId` (string)
- `assets` (array)
- `brand` (required)
- `brief` (object, required)
- `campaignId` (string)
- `campaignName` (string, required)
- `constraints` (array)
- `creative` (object)
- `creativeId` (string)
- `format` (string, required)
- `mode` (string)
- `requestedOperationTypes` (array)
- `seatId` (string)
- `seatName` (string)
- `studioCapabilities` (object)
- `template` (object)
- `templateAnalysis` (object)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_run_creative_chain` (~446 tokens)

run creative chain (deprecated alias)

run creative chain. Deprecated alias for run_creative_chain. Classification: writes to Studio, creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `KPI` (string)
- `accountId` (string)
- `advertiserId` (string)
- `audience` (string)
- `brand`
- `budget`
- `buildAds` (boolean)
- `campaignId` (string)
- `campaignName` (string)
- `channel` (string)
- `constraints` (array)
- `creativeId` (string)
- `creativeIds` (array)
- `deliverables` (array)
- `endDate` (string)
- `force` (boolean)
- `funnelStage` (string)
- `goal` (string)
- `idempotencyKey` (string)
- `mustAvoid` (array)
- `mustInclude` (array)
- `objective` (string)
- `offer` (string)
- `product` (string)
- `saveToStudio` (boolean)
- `seatId` (string)
- `seatName` (string)
- `startDate` (string)
- `targetSizes` (array)
- `tone` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_get_brand_profile` (~178 tokens)

Research and return a LeanrIQ brand profile. This read capability does not save to Studio. (deprecated alias)

Research and return a LeanrIQ brand profile. This read capability does not save to Studio.. Deprecated alias for get_brand_profile. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `advertiserId` (string)
- `brandName` (string, required)
- `brandUrl` (string, required)
- `forceRefresh` (boolean)
- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_get_brand_visuals` (~208 tokens)

Collect brand logos, imagery, colours, fonts, and visual previews for use in Studio creative builds. Use this before build_ad when a campaign needs visual grounding; this read capability does not sav…

Collect brand logos, imagery, colours, fonts, and visual previews for use in Studio creative builds. Use this before build_ad when a campaign needs visual grounding; this read capability does not save to Studio.. Deprecated alias for get_brand_visuals. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `advertiserId` (string, required)
- `brandName` (string, required)
- `options` (object)
- `seatId` (string)
- `seatName` (string)
- `storage` (object)
- `websiteUrl` (string, required)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_get_competitor_creative_intelligence` (~400 tokens)

Run canonical LeanrIQ Competitor Intelligence V2 for one advertiser-scoped competitor. Defaults match Studio: 90-day DISPLAY evidence and no mixed social/video banner inference. Without forceRefresh,…

Run canonical LeanrIQ Competitor Intelligence V2 for one advertiser-scoped competitor. Defaults match Studio: 90-day DISPLAY evidence and no mixed social/video banner inference. Without forceRefresh, an existing canonical result is reused when available.. Deprecated alias for run_competitor_intelligence. Classification: creates billable AI usage. Execution: synchronous. Task support: forbidden. Mutation modes: validate_only, preview_only, execute. Partial failure policy: completed_items_not_rolled_back. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. If idempotencyKey is omitted on a mutation, the MCP layer derives a deterministic retry key from the tool and business arguments so an accidental identical replay cannot create duplicate work.

Input parameters:

- `advertiserGuidanceSnapshot` (object)
- `advertiserId` (string)
- `brandName` (string)
- `competitorDomain` (string)
- `competitorId` (string)
- `competitorName` (string)
- `competitorWebsite` (string)
- `domain` (string)
- `evidenceLimit` (integer)
- `evidenceMode` (string)
- `forceRefresh` (boolean)
- `limit` (integer)
- `lookbackDays` (integer)
- `market`
- `markets`
- `name` (string)
- `region` (string)
- `seatId` (string)
- `seatName` (string)
- `strategyMode` (string)
- `strategyModes` (array)
- `targetMarkets`
- `website` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_get_vertical_intelligence` (~310 tokens)

get vertical intelligence (deprecated alias)

get vertical intelligence. Deprecated alias for get_vertical_intelligence. Classification: read-only. Execution: synchronous. Task support: forbidden. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `accountId` (string)
- `advertiser`
- `advertiserId` (string)
- `assetId` (string)
- `assets`
- `audience`
- `brief`
- `campaign`
- `campaignId` (string)
- `creative`
- `creativeId` (string)
- `creativeIds` (array)
- `flightId` (string)
- `force` (boolean)
- `idempotencyKey` (string)
- `input`
- `instructions` (array)
- `objective` (string)
- `persistence` (string)
- `prompt` (string)
- `requestedFormats` (array)
- `seatId` (string)
- `seatName` (string)
- `skipTraffickedRebuild` (boolean)
- `taskId` (string)
- `template`
- `templateId` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_recommend_workflow` (~172 tokens)

Recommend the shortest LeanrIQ workflow

Purpose: choose the shortest safe LeanrIQ creative/adtech workflow when the caller is unsure which capability to use. Use only for ambiguous requests; do not call this before every LeanrIQ action. Output: one outcome journey, preferred capability, minimal call plan, completion evidence and approval boundary. Read-only and non-mutating. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Input parameters:

- `intent` (string, required)
- `knownIds` (object)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_campaign_builder` (~329 tokens)

Build a campaign in the LeanrIQ Creative Cockpit

One-prompt campaign builder with an interactive MCP App. Phase territories creates three distinct AI creative territories from the campaign objective. Phase build executes the selected territory through the canonical run_creative_chain, saves real Studio creatives, builds ads, returns previews and QA evidence, and never publishes media. A LeanrIQ seat is required; idempotencyKey is required for the build phase. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `advertiserId` (string)
- `audience` (string, required)
- `brand` (string, required)
- `campaignId` (string)
- `campaignName` (string, required)
- `deliverables` (array)
- `idempotencyKey` (string)
- `landingPageUrl` (string)
- `objective` (string, required)
- `offer` (string)
- `phase` (string)
- `product` (string, required)
- `seatId` (string)
- `seatName` (string)
- `selectedTerritory` (object)
- `targetSizes` (array)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_current_seat` (~179 tokens)

Get active seat

Purpose: show the currently active LeanrIQ seat for the authenticated user. Output: returns the active seat and allowed seat list. Exact-ID read tools can resolve a unique authorised seat server-side. Select or pass a seat when you want to force a workspace, when a write is requested, or when LeanrIQ asks you to disambiguate. Constraints: read-only helper tool. Failure cases: AUTH_REQUIRED, SEAT_ACCESS_DENIED. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action.

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

### `leanriq_select_seat` (~241 tokens)

Select active seat

Purpose: select an allowed LeanrIQ seat for subsequent seat-scoped operations. Output: returns the selected seat and allowed seat list. Exact-ID read tools can resolve a unique authorised seat server-side. Select or pass a seat when you want to force a workspace, when a write is requested, or when LeanrIQ asks you to disambiguate. Constraints: only authenticated seats already granted to the user can be selected. Failure cases: AUTH_REQUIRED, SEAT_ACCESS_DENIED. The returned JSON is internal application state for LeanrIQ and ChatGPT orchestration. Use assistantSummary first when responding to the user. Never display raw JSON, data, or meta unless the user explicitly asks for raw JSON. Mention IDs only when useful for follow-up or debugging. Prefer concise, human language, highlight the most useful insight, and suggest the next best LeanrIQ action. For a mutation when more than one seat is authorised, seatId or seatName must be supplied on that exact tool call; a remembered or previously selected seat is not sufficient for a write.

Input parameters:

- `seatId` (string)
- `seatName` (string)

Output parameters:

- `assistantSummary` (object)
- `data` (object)
- `error` (object)
- `meta` (object)
- `status` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/leanrads-leanriq/iq#diagnostics

## Score history

- 2026-08-16: 72
- 2026-08-15: 72
- 2026-08-14: 71
- 2026-08-13: 71
- 2026-08-12: 36

## Links

- Remote endpoint: https://iq.leanrads.com/mcp
- Repository: https://github.com/leanrads/LeanrIQ
- Website: https://github.com/leanrads/leanriq-mcp-docs
- Changelog RSS feed: https://verifymcp.io/servers/leanrads-leanriq/iq.xml
- Changelog JSON feed: https://verifymcp.io/servers/leanrads-leanriq/iq.json
- HTML version of this page: https://verifymcp.io/servers/leanrads-leanriq/iq
