Skip to main content
Glama

Get campaign image pack details

get_campaign_export_descriptor
Read-onlyIdempotent

Returns what is needed to assemble a local image pack for one finished campaign image: its ready placements with sizes and image URLs, the ad copy, and naming and tracked-link details. Takes the selected version from get_campaign_output_workspace as expected_version_id. Read-only: downloads, generates and resizes nothing and records no export. The files themselves are saved with the StealAds CLI download-pack command; the URLs returned here are transport links, not a delivered pack.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "campaign_id": "<campaign_id>",
      "generation_job_id": "<generation_job_id>",
      "expected_version_id": "<expected_version_id>"
    },
    "name": "get_campaign_export_descriptor"
  }
}

Input Schema

NameRequiredDescriptionDefault
campaign_idYescampaign_id from list_campaigns.
response_formatNoOutput format: text (default) or json. table is not available for this tool.
generation_job_idYesThe image's finished-image reference: _references.generation_job_id on a get_campaign_outputs or list_campaigns result.
expected_version_idYesCurrently selected version id from get_campaign_output_workspace; a stale value is refused.

Output Schema

NameRequiredDescriptionDefault
descriptorYesDownload and rendering instructions for the selected campaign output.
cost_creditsYesCredits quoted or charged by this operation.
quality_review_recommendedYesquality review recommended value in this response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / campaign_id / description
      Previous value: -"Campaign reference from list_campaigns."New value: +"campaign_id from list_campaigns."
    • changedInput schema / properties / expected_version_id / description
      Previous value: -"Current version reference from get_campaign_output_workspace."New value: +"Currently selected version id from get_campaign_output_workspace; a stale value is refused."
    • changedInput schema / properties / generation_job_id / description
      Previous value: -"Generated image reference from list_generation_jobs or get_campaign_outputs."New value: +"The image's finished-image reference: _references.generation_job_id on a get_campaign_outputs or list_campaigns result."
    • changedInput schema / properties / response_format / description
      Previous value: -"Output format: text or json for capped research examples; table is available only for tracked rival rows."New value: +"Output format: text (default) or json. table is not available for this tool."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, yet the description still adds real value: it spells out that nothing is downloaded, generated, resized or recorded as an export, and that a stale expected_version_id is refused. Most importantly it warns that the returned URLs are transport links, not a delivered pack – a non-obvious failure mode an agent would otherwise misreport to a user.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the returned payload, then moves to required inputs, then to the read-only caveat and the CLI boundary – a sensible order with no filler sentences. The enumeration in the first sentence is dense but each item is a distinct part of the response, so little could be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter read-only tool with a full output schema, the description covers the essentials: what comes back, where each required id originates, that the operation mutates nothing, and that URL retrieval is not delivery. Nothing an agent needs in order to call it correctly or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description only restates where expected_version_id comes from (get_campaign_output_workspace), which the schema already documents. It adds no format, syntax, or constraint detail beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb ("Returns") and a precisely scoped resource ("what is needed to assemble a local image pack for one finished campaign image"), then enumerates the payload: ready placements with sizes and image URLs, ad copy, naming and tracked-link details. The boundary with get_campaign_output_workspace is drawn immediately by naming it as the source of expected_version_id, so an agent can tell the two apart without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It establishes context clearly: use this after selecting a version in get_campaign_output_workspace, and use the StealAds CLI download-pack command to actually save files. That routes the agent away from misusing this as a download tool. What it lacks is an explicit exclusion statement (e.g. when to prefer get_campaign_outputs instead), but the workflow chaining is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.