LeanrIQ
by leanrads · remote · no sign-in to list tools · v1.0.1 · published by GitHub user leanrads
Creative-intelligence MCP for campaign strategy, ad builds, QA, and reporting.
136 tools: 5 can delete or cancel things, 1 do something that can't be undone, 62 change things and 68 only read.
Scanned Oct 21, 2026
- Deletes or cancels5Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things62Claude Code: ask: see these tools
- Only reads68Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http leanriq https://iq.leanrads.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "generate_preview_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "generate_preview_links" says "generate": a word for a change.
- Warncancel_task
The server marks "cancel_task" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "cancel_task" says "cancel": a word for removing or ending something.
The server marks "leanriq_resolve_or_provision_advertiser" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "leanriq_resolve_or_provision_advertiser" says "resolve": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
136 tools
Deletes or cancels 5Claude Code: deny
archive_advertiserarchive advertiser.No findings
Why it is in this group
- The name "archive_advertiser" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
archive_campaignarchive campaign.No findings
Why it is in this group
- The name "archive_campaign" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
archive_creativearchive creative.No findings
Why it is in this group
- The name "archive_creative" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
cancel_taskcancel task.1 finding
Why it is in this group
- The name "cancel_task" says "cancel": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "cancel_task" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "cancel_task" says "cancel": a word for removing or ending something.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
delete_flightdelete flight.No findings
Why it is in this group
- The name "delete_flight" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Can't be undone 1Claude Code: ask
push_flight_to_yahooPublish 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 …No findings
Why it is in this group
- The name "push_flight_to_yahoo" says "push": a word for a change.
- The description's first verb is "publish": a word for a change that another call does not undo.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Changes things 62Claude Code: ask
build_adCreate AI Display CreativeDocuments from objective and requestedFormats without pre-existing creatives.No findings
Why it is in this group
- The description's first verb is "create": a word for a change.
Description, as the server wrote it Create AI Display CreativeDocuments from objective and requestedFormats without pre-existing creatives. Optional outputs requests static JPEG/PNG delivery after save_to_studio while retaining the editable document. Export existing versions with export_creative. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
build_campaign_creative_setPlan and create an initial Studio creative set for a campaign that has no saved creatives.No findings
Why it is in this group
- The name "build_campaign_creative_set" says "set": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
build_doohBuild a DOOH-native poster for an existing Studio creative, compare exact native renders and save the complete editable working version by default.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Build a DOOH-native poster for an existing Studio creative, compare exact native renders and save the complete editable working version by default. Below-threshold creative review retains a technically valid version without release approval. Explicit saveToStudio=false is an unsaved preview. DOOH never contains CTA buttons. It does not route through Display build_ad.. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
build_videoadCreate an advertiser-aware pre-roll or CTV video composition with varied executable scene layouts and channel constraints.No findings
Why it is in this group
- The description's first verb is "create": a word for a change.
Description, as the server wrote it Create an advertiser-aware pre-roll or CTV video composition with varied executable scene layouts and channel constraints. It never claims an MP4 master or traffic-ready asset before Studio has rendered and certified one.. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
build_world_research_profileBuild a versioned advertiser research graph from configured identity and approved context..No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Build a versioned advertiser research graph from configured identity and approved context.. Classification: read-only. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
clone_creativeclone creative.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_advertisercreate advertiser.No findings
Why it is in this group
- The name "create_advertiser" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_campaignCreate a Studio campaign.No findings
Why it is in this group
- The name "create_campaign" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_creative_briefGenerate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints.No findings
Why it is in this group
- The name "create_creative_brief" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_creative_intelligence_planCreate a concise proposed campaign plan from one grounded opportunity.No findings
Why it is in this group
- The name "create_creative_intelligence_plan" says "create": a word for a change.
Description, as the server wrote it Create a concise proposed campaign plan from one grounded opportunity. Studio approval is required before campaign creation.. Classification: read-only. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_creative_versioncreate creative version.No findings
Why it is in this group
- The name "create_creative_version" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_flightcreate flight.No findings
Why it is in this group
- The name "create_flight" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_production_plancreate production plan.No findings
Why it is in this group
- The name "create_production_plan" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
export_creativeExport an existing Studio CreativeDocument version to production JPEG or PNG; returns exact dimensions, URL, bytes and checksum.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Export an existing Studio CreativeDocument version to production JPEG or PNG; returns exact dimensions, URL, bytes and checksum. Omit versionId to resolve the current persisted active version. Does not generate or replace editable creative state.. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
export_trafficked_assetsexport trafficked assets.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
generate_adserver_taggenerate adserver tag.No findings
Why it is in this group
- The name "generate_adserver_tag" says "generate": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
generate_preview_linksGenerate public review preview links for one or more saved Studio creatives without changing campaign content..1 finding
Why it is in this group
- The name "generate_preview_links" says "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "generate_preview_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "generate_preview_links" says "generate": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
launch_creative_campaignLeanrIQ Creative Runtime: Default preview mode works without Studio and stores research, briefs, builds, QA, and previews in a LeanrIQ workspace.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
leanr_build_campaign_creative_setPlan and create an initial Studio creative set for a campaign that has no saved creatives.No findings
Why it is in this group
- The name "leanr_build_campaign_creative_set" says "set": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_build_adCreate AI Display CreativeDocuments from objective and requestedFormats without pre-existing creatives.No findings
Why it is in this group
- The description's first verb is "create": a word for a change.
Description, as the server wrote it Create AI Display CreativeDocuments from objective and requestedFormats without pre-existing creatives. Optional outputs requests static JPEG/PNG delivery after save_to_studio while retaining the editable document. Export existing versions with export_creative. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_build_agent_adCreate AI Display CreativeDocuments from objective and requestedFormats without pre-existing creatives.No findings
Why it is in this group
- The description's first verb is "create": a word for a change.
Description, as the server wrote it Create AI Display CreativeDocuments from objective and requestedFormats without pre-existing creatives. Optional outputs requests static JPEG/PNG delivery after save_to_studio while retaining the editable document. Export existing versions with export_creative. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_build_doohBuild a DOOH-native poster for an existing Studio creative, compare exact native renders and save the complete editable working version by default.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Build a DOOH-native poster for an existing Studio creative, compare exact native renders and save the complete editable working version by default. Below-threshold creative review retains a technically valid version without release approval. Explicit saveToStudio=false is an unsaved preview. DOOH never contains CTA buttons. It does not route through Display build_ad.. Deprecated alias for build_dooh. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_build_world_research_profileBuild a versioned advertiser research graph from configured identity and approved context..No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Build a versioned advertiser research graph from configured identity and approved context.. Deprecated alias for build_world_research_profile. Classification: read-only. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_campaign_builderOne-prompt campaign builder with an interactive MCP App.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_create_briefGenerate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints.No findings
Why it is in this group
- The name "leanriq_create_brief" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_create_creative_briefGenerate Studio-ready design briefs for one or more creatives, using campaign context, brand rules, audience, offer, and format constraints.No findings
Why it is in this group
- The name "leanriq_create_creative_brief" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_create_creative_intelligence_planCreate a concise proposed campaign plan from one grounded opportunity.No findings
Why it is in this group
- The name "leanriq_create_creative_intelligence_plan" says "create": a word for a change.
Description, as the server wrote it Create a concise proposed campaign plan from one grounded opportunity. Studio approval is required before campaign creation.. Deprecated alias for create_creative_intelligence_plan. Classification: read-only. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_create_production_plancreate production plan.No findings
Why it is in this group
- The name "leanriq_create_production_plan" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_create_strategycreate creative strategy.No findings
Why it is in this group
- The name "leanriq_create_strategy" says "create": a word for a change.
Description, as the server wrote it create creative strategy. Deprecated alias for create_creative_strategy. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_current_seatPurpose: show the currently active LeanrIQ seat for the authenticated user.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_competitor_creative_intelligenceRun canonical LeanrIQ Competitor Intelligence V2 for one advertiser-scoped competitor.No findings
Why it is in this group
- The name "leanriq_get_competitor_creative_intelligence" says "get": a word for reading.
- The description's first verb is "run": a word for a change.
Description, as the server wrote it 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: 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
leanriq_launch_creative_campaignLeanrIQ Creative Runtime: Default preview mode works without Studio and stores research, briefs, builds, QA, and previews in a LeanrIQ workspace.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
leanriq_qa_creativeQA a creative for launch readiness with actionable issues, certification evidence, and next steps before preview, revision, or trafficking..No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_recommend_workflowPurpose: choose the shortest safe LeanrIQ creative/adtech workflow when the caller is unsure which capability to use.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_record_world_research_feedbackRecord reviewed relevance or decision feedback without changing approval or safety constraints..No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Record reviewed relevance or decision feedback without changing approval or safety constraints.. Deprecated alias for record_world_research_feedback. Classification: read-only. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_resolve_or_provision_advertiserresolve or provision advertiser.1 finding
Why it is in this group
- The name "leanriq_resolve_or_provision_advertiser" says "resolve": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "leanriq_resolve_or_provision_advertiser" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "leanriq_resolve_or_provision_advertiser" says "resolve": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_run_creative_chainrun creative chain.No findings
Why it is in this group
- The name "leanriq_run_creative_chain" says "run": a word for a change.
Description, as the server wrote it run creative chain. Deprecated alias for run_creative_chain. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_run_creative_intelligenceSynthesize grounded, deduplicated advertiser creative opportunities from automatic competitor/category research and broad World signals.No findings
Why it is in this group
- The name "leanriq_run_creative_intelligence" says "run": a word for a change.
Description, as the server wrote it Synthesize grounded, deduplicated advertiser creative opportunities from automatic competitor/category research and broad World signals. Returns a durable run ID and honest partial states; creates no campaign or publication.. Deprecated alias for run_creative_intelligence. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_run_world_intelligenceRun bounded, current World Intelligence for one authorised advertiser.No findings
Why it is in this group
- The name "leanriq_run_world_intelligence" says "run": a word for a change.
Description, as the server wrote it Run bounded, current World Intelligence for one authorised advertiser. It returns source-backed external context and creative opportunities; evidence may be partial and it never publishes or activates creative.. Deprecated alias for run_world_intelligence. Classification: creates billable AI usage. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: preserve_qualified_evidence_and_signals. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_select_seatPurpose: select an allowed LeanrIQ seat for subsequent seat-scoped operations.No findings
Why it is in this group
- The name "leanriq_select_seat" says "select": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_select_world_opportunity_for_campaignExplicitly select one reviewed, source-provenanced World Intelligence opportunity for an authorised Studio campaign.No findings
Why it is in this group
- The name "leanriq_select_world_opportunity_for_campaign" says "select": a word for a change.
Description, as the server wrote it Explicitly select one reviewed, source-provenanced World Intelligence opportunity for an authorised Studio campaign. Studio performs the same campaign authorization, scoped LeanrIQ lookup, and persistence path as the UI. This does not materialise a feed, create creative, traffic, or publish.. Deprecated alias for select_world_opportunity_for_campaign. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
promote_creative_workspaceDeliberately promote one approved LeanrIQ creative workspace into Studio.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
provide_performance_feedbackprovide performance feedback.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
qa_creativeQA a creative for launch readiness with actionable issues, certification evidence, and next steps before preview, revision, or trafficking..No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
record_world_research_feedbackRecord reviewed relevance or decision feedback without changing approval or safety constraints..No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Record reviewed relevance or decision feedback without changing approval or safety constraints.. Classification: read-only. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
refresh_brand_profileRefresh and save a standalone Studio advertiser brand profile..No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Refresh and save a standalone Studio advertiser brand profile.. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
refresh_brand_visualsrefresh brand visuals.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it refresh brand visuals. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
restore_creative_versionrestore creative version.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
retraffick_creativeretraffick creative.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
retraffick_flightretraffick flight.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
retry_taskretry task.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
revise_creativeRevise an existing saved Studio creative by executing a requested change from plain-language instructions.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Revise an existing saved Studio creative by executing a requested change from plain-language instructions. Use this directly when the user supplies a creativeId and asks to change copy, imagery, layout, colours, typography, CTA, branding, or any other editable creative element: do not respond with a copy-paste instruction or ask the user to make the edit in Studio. The revision saves to Studio by default and returns fresh preview links plus QA/certification context; set dryRun only when the user explicitly asks for an unsaved 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
run_competitor_intelligenceRun canonical LeanrIQ Competitor Intelligence V2 for one advertiser-scoped competitor.No findings
Why it is in this group
- The name "run_competitor_intelligence" says "run": a word for a change.
Description, as the server wrote it 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: 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
run_creative_chainrun creative chain.No findings
Why it is in this group
- The name "run_creative_chain" says "run": a word for a change.
Description, as the server wrote it run creative chain. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
run_creative_intelligenceSynthesize grounded, deduplicated advertiser creative opportunities from automatic competitor/category research and broad World signals.No findings
Why it is in this group
- The name "run_creative_intelligence" says "run": a word for a change.
Description, as the server wrote it Synthesize grounded, deduplicated advertiser creative opportunities from automatic competitor/category research and broad World signals. Returns a durable run ID and honest partial states; creates no campaign or publication.. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
run_world_intelligenceRun bounded, current World Intelligence for one authorised advertiser.No findings
Why it is in this group
- The name "run_world_intelligence" says "run": a word for a change.
Description, as the server wrote it Run bounded, current World Intelligence for one authorised advertiser. It returns source-backed external context and creative opportunities; evidence may be partial and it never publishes or activates creative.. Classification: creates billable AI usage. Execution: durable. Task support: optional. Mutation modes: validate_only, preview_only, execute. Partial failure policy: preserve_qualified_evidence_and_signals. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
select_world_opportunity_for_campaignExplicitly select one reviewed, source-provenanced World Intelligence opportunity for an authorised Studio campaign.No findings
Why it is in this group
- The name "select_world_opportunity_for_campaign" says "select": a word for a change.
Description, as the server wrote it Explicitly select one reviewed, source-provenanced World Intelligence opportunity for an authorised Studio campaign. Studio performs the same campaign authorization, scoped LeanrIQ lookup, and persistence path as the UI. This does not materialise a feed, create creative, traffic, or publish.. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
traffick_creativetraffick creative.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
traffick_flighttraffick flight.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
update_advertiserupdate advertiser.No findings
Why it is in this group
- The name "update_advertiser" says "update": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_campaignUpdate a Studio campaign.No findings
Why it is in this group
- The name "update_campaign" says "update": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_flightupdate flight.No findings
Why it is in this group
- The name "update_flight" says "update": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 68Claude Code: allow
get_adserver_tagget adserver tag.No findings
Why it is in this group
- The name "get_adserver_tag" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_advertiserget advertiser.No findings
Why it is in this group
- The name "get_advertiser" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_assetget asset.No findings
Why it is in this group
- The name "get_asset" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_brand_profileResearch and return a LeanrIQ brand profile.No findings
Why it is in this group
- The name "get_brand_profile" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_brand_visualsCollect brand logos, imagery, colours, fonts, and visual previews for use in Studio creative builds.No findings
Why it is in this group
- The name "get_brand_visuals" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_campaignget campaign.No findings
Why it is in this group
- The name "get_campaign" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_capabilitiesget capabilities.No findings
Why it is in this group
- The name "get_capabilities" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_competitor_intelligenceRead saved canonical LeanrIQ Competitor Intelligence V2 for an advertiser-scoped competitor.No findings
Why it is in this group
- The name "get_competitor_intelligence" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_creativeget creative.No findings
Why it is in this group
- The name "get_creative" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_creative_intelligenceRead saved advertiser creative opportunities and source provenance..No findings
Why it is in this group
- The name "get_creative_intelligence" says "get": a word for reading.
Description, as the server wrote it Read saved advertiser creative opportunities and source provenance.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_creative_intelligence_runRead an exact durable intelligence run, including stage, terminal state and retry metadata..No findings
Why it is in this group
- The name "get_creative_intelligence_run" says "get": a word for reading.
Description, as the server wrote it Read an exact durable intelligence run, including stage, terminal state and retry metadata.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_current_seatget current seat.No findings
Why it is in this group
- The name "get_current_seat" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_current_userget current user.No findings
Why it is in this group
- The name "get_current_user" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_flightget flight.No findings
Why it is in this group
- The name "get_flight" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_leanriq_capabilitiesDescribe the LeanrIQ outcomes available to this caller, its current capability profile, safe starting action, and effective build/Studio/publish boundaries.No findings
Why it is in this group
- The name "get_leanriq_capabilities" says "get": a word for reading.
Description, as the server wrote it Describe the LeanrIQ outcomes available to this caller, its current capability profile, safe starting action, and effective build/Studio/publish boundaries. This is concise discovery, not a raw tool-registry dump.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_media_buy_deliveryAdCP-standard media-buy delivery reporting..No findings
Why it is in this group
- The name "get_media_buy_delivery" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_permissionsget permissions.No findings
Why it is in this group
- The name "get_permissions" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_preview_linkget preview link.No findings
Why it is in this group
- The name "get_preview_link" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_taskPoll a durable LeanrIQ task returned by build_ad, revise_creative, trafficking, or another queued capability and continue with the completed output..No findings
Why it is in this group
- The name "get_task" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_templateget template.No findings
Why it is in this group
- The name "get_template" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_trafficked_assetsget trafficked assets.No findings
Why it is in this group
- The name "get_trafficked_assets" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_vertical_intelligenceget vertical intelligence.No findings
Why it is in this group
- The name "get_vertical_intelligence" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_activation_evidenceRead scoped verified event attestations for Studio approval and activation; no publication authority..No findings
Why it is in this group
- The name "get_world_activation_evidence" says "get": a word for reading.
Description, as the server wrote it Read scoped verified event attestations for Studio approval and activation; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_intelligenceGet the latest advertiser World Intelligence summary.No findings
Why it is in this group
- The name "get_world_intelligence" says "get": a word for reading.
Description, as the server wrote it Get the latest advertiser World Intelligence summary. It is fresh, source-backed context that may be partial; opportunities are recommendations and this never publishes 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_opportunityGet one active or historical World Intelligence opportunity and its compact provenance in the selected advertiser scope.No findings
Why it is in this group
- The name "get_world_opportunity" says "get": a word for reading.
Description, as the server wrote it Get one active or historical World Intelligence opportunity and its compact provenance in the selected advertiser scope. It does not publish 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_decisionRead advertiser-scoped World Intelligence V3 decision with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_decision" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 decision with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_eventRead advertiser-scoped World Intelligence V3 event with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_event" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 event with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_eventsRead advertiser-scoped World Intelligence V3 events with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_events" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 events with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_insightsRead advertiser-scoped World Intelligence V3 insights with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_insights" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 insights with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_mentionsRead advertiser-scoped World Intelligence V3 mentions with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_mentions" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 mentions with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_profileRead advertiser-scoped World Intelligence V3 profile with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_profile" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 profile with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_proposalRead advertiser-scoped World Intelligence V3 proposal with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_proposal" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 proposal with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_questionRead advertiser-scoped World Intelligence V3 question with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_question" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 question with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_world_research_summaryRead advertiser-scoped World Intelligence V3 summary with evidence; no publication authority..No findings
Why it is in this group
- The name "get_world_research_summary" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 summary with evidence; no publication authority.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_brand_profileResearch and return a LeanrIQ brand profile.No findings
Why it is in this group
- The name "leanriq_get_brand_profile" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
leanriq_get_brand_visualsCollect brand logos, imagery, colours, fonts, and visual previews for use in Studio creative builds.No findings
Why it is in this group
- The name "leanriq_get_brand_visuals" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
leanriq_get_creative_intelligenceRead saved advertiser creative opportunities and source provenance..No findings
Why it is in this group
- The name "leanriq_get_creative_intelligence" says "get": a word for reading.
Description, as the server wrote it Read saved advertiser creative opportunities and source provenance.. Deprecated alias for get_creative_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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_creative_intelligence_runRead an exact durable intelligence run, including stage, terminal state and retry metadata..No findings
Why it is in this group
- The name "leanriq_get_creative_intelligence_run" says "get": a word for reading.
Description, as the server wrote it Read an exact durable intelligence run, including stage, terminal state and retry metadata.. Deprecated alias for get_creative_intelligence_run. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_vertical_intelligenceget vertical intelligence.No findings
Why it is in this group
- The name "leanriq_get_vertical_intelligence" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_activation_evidenceRead scoped verified event attestations for Studio approval and activation; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_activation_evidence" says "get": a word for reading.
Description, as the server wrote it Read scoped verified event attestations for Studio approval and activation; no publication authority.. Deprecated alias for get_world_activation_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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_intelligenceGet the latest advertiser World Intelligence summary.No findings
Why it is in this group
- The name "leanriq_get_world_intelligence" says "get": a word for reading.
Description, as the server wrote it Get the latest advertiser World Intelligence summary. It is fresh, source-backed context that may be partial; opportunities are recommendations and this never publishes creative.. Deprecated alias for get_world_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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_opportunityGet one active or historical World Intelligence opportunity and its compact provenance in the selected advertiser scope.No findings
Why it is in this group
- The name "leanriq_get_world_opportunity" says "get": a word for reading.
Description, as the server wrote it Get one active or historical World Intelligence opportunity and its compact provenance in the selected advertiser scope. It does not publish creative.. Deprecated alias for get_world_opportunity. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_decisionRead advertiser-scoped World Intelligence V3 decision with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_decision" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 decision with evidence; no publication authority.. Deprecated alias for get_world_research_decision. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_eventRead advertiser-scoped World Intelligence V3 event with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_event" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 event with evidence; no publication authority.. Deprecated alias for get_world_research_event. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_eventsRead advertiser-scoped World Intelligence V3 events with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_events" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 events with evidence; no publication authority.. Deprecated alias for get_world_research_events. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_insightsRead advertiser-scoped World Intelligence V3 insights with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_insights" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 insights with evidence; no publication authority.. Deprecated alias for get_world_research_insights. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_mentionsRead advertiser-scoped World Intelligence V3 mentions with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_mentions" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 mentions with evidence; no publication authority.. Deprecated alias for get_world_research_mentions. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_profileRead advertiser-scoped World Intelligence V3 profile with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_profile" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 profile with evidence; no publication authority.. Deprecated alias for get_world_research_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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_proposalRead advertiser-scoped World Intelligence V3 proposal with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_proposal" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 proposal with evidence; no publication authority.. Deprecated alias for get_world_research_proposal. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_questionRead advertiser-scoped World Intelligence V3 question with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_question" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 question with evidence; no publication authority.. Deprecated alias for get_world_research_question. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_get_world_research_summaryRead advertiser-scoped World Intelligence V3 summary with evidence; no publication authority..No findings
Why it is in this group
- The name "leanriq_get_world_research_summary" says "get": a word for reading.
Description, as the server wrote it Read advertiser-scoped World Intelligence V3 summary with evidence; no publication authority.. Deprecated alias for get_world_research_summary. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_list_world_opportunitiesList active World Intelligence creative opportunities for one authorised advertiser.No findings
Why it is in this group
- The name "leanriq_list_world_opportunities" says "list": a word for reading.
Description, as the server wrote it List active World Intelligence creative opportunities for one authorised advertiser. Opportunities are human-review recommendations and never publish creative.. Deprecated alias for list_world_opportunities. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
leanriq_list_world_signalsList active, source-provenanced World Intelligence signals for one authorised advertiser.No findings
Why it is in this group
- The name "leanriq_list_world_signals" says "list": a word for reading.
Description, as the server wrote it List active, source-provenanced World Intelligence signals for one authorised advertiser. This is current contextual intelligence, not a general-purpose news search.. Deprecated alias for list_world_signals. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_accessible_seatslist accessible seats.No findings
Why it is in this group
- The name "list_accessible_seats" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_advertiserslist advertisers.No findings
Why it is in this group
- The name "list_advertisers" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_assetslist assets.No findings
Why it is in this group
- The name "list_assets" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_campaignslist campaigns.No findings
Why it is in this group
- The name "list_campaigns" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_competitor_evidenceList qualified display evidence from saved canonical LeanrIQ Competitor Intelligence V2.No findings
Why it is in this group
- The name "list_competitor_evidence" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_competitorslist competitors.No findings
Why it is in this group
- The name "list_competitors" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_creative_versionslist creative versions.No findings
Why it is in this group
- The name "list_creative_versions" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_creativesList Studio creatives.No findings
Why it is in this group
- The name "list_creatives" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_flightslist flights.No findings
Why it is in this group
- The name "list_flights" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_taskslist tasks.No findings
Why it is in this group
- The name "list_tasks" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_templateslist templates.No findings
Why it is in this group
- The name "list_templates" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_world_opportunitiesList active World Intelligence creative opportunities for one authorised advertiser.No findings
Why it is in this group
- The name "list_world_opportunities" says "list": a word for reading.
Description, as the server wrote it List active World Intelligence creative opportunities for one authorised advertiser. Opportunities are human-review recommendations and never publish 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_world_signalsList active, source-provenanced World Intelligence signals for one authorised advertiser.No findings
Why it is in this group
- The name "list_world_signals" says "list": a word for reading.
Description, as the server wrote it List active, source-provenanced World Intelligence signals for one authorised advertiser. This is current contextual intelligence, not a general-purpose news search.. 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
preview_trafficking_outputpreview trafficking output.No findings
Why it is in this group
- The name "preview_trafficking_output" says "preview": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
validate_flightvalidate flight.No findings
Why it is in this group
- The name "validate_flight" says "validate": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http leanriq https://iq.leanrads.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__leanriq__get_current_user",
"mcp__leanriq__list_accessible_seats",
"mcp__leanriq__get_current_seat",
"mcp__leanriq__get_permissions",
"mcp__leanriq__get_capabilities",
"mcp__leanriq__get_leanriq_capabilities",
"mcp__leanriq__get_media_buy_delivery",
"mcp__leanriq__list_advertisers",
"mcp__leanriq__get_advertiser",
"mcp__leanriq__get_brand_profile",
"mcp__leanriq__get_brand_visuals",
"mcp__leanriq__list_competitors",
"mcp__leanriq__get_competitor_intelligence",
"mcp__leanriq__list_competitor_evidence",
"mcp__leanriq__get_creative_intelligence_run",
"mcp__leanriq__get_creative_intelligence",
"mcp__leanriq__get_world_activation_evidence",
"mcp__leanriq__get_world_research_profile",
"mcp__leanriq__get_world_research_summary",
"mcp__leanriq__get_world_research_events",
"mcp__leanriq__get_world_research_event",
"mcp__leanriq__get_world_research_mentions",
"mcp__leanriq__get_world_research_insights",
"mcp__leanriq__get_world_research_proposal",
"mcp__leanriq__get_world_research_decision",
"mcp__leanriq__get_world_research_question",
"mcp__leanriq__get_world_intelligence",
"mcp__leanriq__list_world_signals",
"mcp__leanriq__list_world_opportunities",
"mcp__leanriq__get_world_opportunity",
"mcp__leanriq__get_vertical_intelligence",
"mcp__leanriq__list_campaigns",
"mcp__leanriq__get_campaign",
"mcp__leanriq__list_creatives",
"mcp__leanriq__get_creative",
"mcp__leanriq__list_creative_versions",
"mcp__leanriq__list_templates",
"mcp__leanriq__get_template",
"mcp__leanriq__list_assets",
"mcp__leanriq__get_asset",
"mcp__leanriq__get_preview_link",
"mcp__leanriq__get_flight",
"mcp__leanriq__list_flights",
"mcp__leanriq__validate_flight",
"mcp__leanriq__preview_trafficking_output",
"mcp__leanriq__get_adserver_tag",
"mcp__leanriq__get_trafficked_assets",
"mcp__leanriq__get_task",
"mcp__leanriq__list_tasks",
"mcp__leanriq__leanriq_get_creative_intelligence_run",
"mcp__leanriq__leanriq_get_creative_intelligence",
"mcp__leanriq__leanriq_get_world_activation_evidence",
"mcp__leanriq__leanriq_get_world_research_profile",
"mcp__leanriq__leanriq_get_world_research_summary",
"mcp__leanriq__leanriq_get_world_research_events",
"mcp__leanriq__leanriq_get_world_research_event",
"mcp__leanriq__leanriq_get_world_research_mentions",
"mcp__leanriq__leanriq_get_world_research_insights",
"mcp__leanriq__leanriq_get_world_research_proposal",
"mcp__leanriq__leanriq_get_world_research_decision",
"mcp__leanriq__leanriq_get_world_research_question",
"mcp__leanriq__leanriq_get_world_intelligence",
"mcp__leanriq__leanriq_list_world_signals",
"mcp__leanriq__leanriq_list_world_opportunities",
"mcp__leanriq__leanriq_get_world_opportunity",
"mcp__leanriq__leanriq_get_brand_profile",
"mcp__leanriq__leanriq_get_brand_visuals",
"mcp__leanriq__leanriq_get_vertical_intelligence"
],
"ask": [
"mcp__leanriq__create_advertiser",
"mcp__leanriq__update_advertiser",
"mcp__leanriq__refresh_brand_profile",
"mcp__leanriq__refresh_brand_visuals",
"mcp__leanriq__run_competitor_intelligence",
"mcp__leanriq__run_creative_intelligence",
"mcp__leanriq__create_creative_intelligence_plan",
"mcp__leanriq__build_world_research_profile",
"mcp__leanriq__record_world_research_feedback",
"mcp__leanriq__run_world_intelligence",
"mcp__leanriq__create_campaign",
"mcp__leanriq__update_campaign",
"mcp__leanriq__select_world_opportunity_for_campaign",
"mcp__leanriq__create_creative_brief",
"mcp__leanriq__create_production_plan",
"mcp__leanriq__build_videoad",
"mcp__leanriq__qa_creative",
"mcp__leanriq__run_creative_chain",
"mcp__leanriq__launch_creative_campaign",
"mcp__leanriq__promote_creative_workspace",
"mcp__leanriq__build_ad",
"mcp__leanriq__build_dooh",
"mcp__leanriq__build_campaign_creative_set",
"mcp__leanriq__revise_creative",
"mcp__leanriq__export_creative",
"mcp__leanriq__clone_creative",
"mcp__leanriq__create_creative_version",
"mcp__leanriq__restore_creative_version",
"mcp__leanriq__generate_preview_links",
"mcp__leanriq__create_flight",
"mcp__leanriq__update_flight",
"mcp__leanriq__traffick_creative",
"mcp__leanriq__traffick_flight",
"mcp__leanriq__retraffick_creative",
"mcp__leanriq__retraffick_flight",
"mcp__leanriq__push_flight_to_yahoo",
"mcp__leanriq__generate_adserver_tag",
"mcp__leanriq__export_trafficked_assets",
"mcp__leanriq__retry_task",
"mcp__leanriq__provide_performance_feedback",
"mcp__leanriq__leanriq_run_creative_intelligence",
"mcp__leanriq__leanriq_create_creative_intelligence_plan",
"mcp__leanriq__leanriq_build_world_research_profile",
"mcp__leanriq__leanriq_record_world_research_feedback",
"mcp__leanriq__leanriq_run_world_intelligence",
"mcp__leanriq__leanriq_select_world_opportunity_for_campaign",
"mcp__leanriq__leanriq_qa_creative",
"mcp__leanriq__leanriq_launch_creative_campaign",
"mcp__leanriq__leanriq_build_ad",
"mcp__leanriq__leanriq_build_agent_ad",
"mcp__leanriq__leanriq_build_dooh",
"mcp__leanriq__leanr_build_campaign_creative_set",
"mcp__leanriq__leanriq_resolve_or_provision_advertiser",
"mcp__leanriq__leanriq_create_strategy",
"mcp__leanriq__leanriq_create_brief",
"mcp__leanriq__leanriq_create_creative_brief",
"mcp__leanriq__leanriq_create_production_plan",
"mcp__leanriq__leanriq_run_creative_chain",
"mcp__leanriq__leanriq_get_competitor_creative_intelligence",
"mcp__leanriq__leanriq_recommend_workflow",
"mcp__leanriq__leanriq_campaign_builder",
"mcp__leanriq__leanriq_current_seat",
"mcp__leanriq__leanriq_select_seat"
],
"deny": [
"mcp__leanriq__archive_advertiser",
"mcp__leanriq__archive_campaign",
"mcp__leanriq__archive_creative",
"mcp__leanriq__delete_flight",
"mcp__leanriq__cancel_task"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as leanriq. Review it before you use it.
