Skip to main content
Glama
Pinterest Ads MCP Server

Pinterest Ads MCP Server

Run a report and return its rows

pinterest_ads_run_report
Read-only

Requests a Pinterest Ads performance report, polls until it finishes, and returns the rows for analysis. Use it to fetch spend, clicks, and conversion data without changing account data.

Instructions

Request a report, wait for it with progress updates, and return its rows. Same arguments as pinterest_ads_create_report, plus max_rows (default 1000), timeout_seconds (default 600) and poll_seconds (default 10). If it times out the token is returned so you can check later with pinterest_ads_get_report. Changes nothing in the account.

level: ADVERTISER, CAMPAIGN, AD_GROUP, PIN_PROMOTION (ads), KEYWORD, PRODUCT_GROUP, PRODUCT_ITEM, or a *_TARGETING level with targeting_types (up to 5, e.g. ['LOCATION']). Dates are YYYY-MM-DD; granularity TOTAL, DAY, WEEK, MONTH or HOUR. filters adds other request fields, e.g. {"campaign_ids": ["..."], "campaign_statuses": ["RUNNING"]} (campaign_objective_types should include SALES and LEADS, not only the retiring CATALOG_SALES and WEB_CONVERSION). report_format JSON (default) or CSV. To re-run a report saved in Ads Manager, pass template_id (see pinterest_ads_list_report_templates) with dates and granularity only.

Common columns: SPEND_IN_DOLLAR (account currency, despite the name), PAID_IMPRESSION, IMPRESSION_1, CLICKTHROUGH_1 (Pin clicks), OUTBOUND_CLICK_1, CTR, OUTBOUND_CTR_1, CPC_IN_MICRO_DOLLAR, CPM_IN_DOLLAR, TOTAL_ENGAGEMENT, TOTAL_CONVERSIONS, TOTAL_CHECKOUT, TOTAL_CHECKOUT_VALUE_IN_MICRO_DOLLAR, CHECKOUT_ROAS, TOTAL_ADD_TO_CART, TOTAL_LEAD, TOTAL_SIGNUP, CAMPAIGN_NAME, CAMPAIGN_ID. _1 metrics are paid, _2 earned (saves of ads). pinterest_ads_list_metrics lists every column with its definition. HOUR granularity no longer includes conversion metrics.

Input Schema

NameRequiredDescriptionDefault
levelNo
columnsNo
filtersNo
end_dateYes
max_rowsNo
start_dateYes
granularityNoDAY
template_idNo
poll_secondsNo
ad_account_idNo
report_formatNoJSON
targeting_typesNo
timeout_secondsNo
view_window_daysNo
click_window_daysNo
reporting_timezoneNo
conversion_report_timeNo
engagement_window_daysNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Changes nothing in the account' is partly redundant, but the description adds real behavior the annotations cannot: it blocks and polls with progress updates, has configurable timeout/poll defaults, and returns a token on timeout for later retrieval. It also flags semantic traps (SPEND_IN_DOLLAR is account currency despite the name; _1 metrics are paid, _2 earned; HOUR granularity drops conversion metrics).

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?

The first paragraph is front-loaded and tight, covering mechanics and sibling routing in three sentences. The second block is dense but each clause carries distinct operational information; the only inefficiency is that the level/columns discussion reads as an unstructured run-on rather than being split by parameter domain.

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?

An output schema exists, so return-value shape need not be described, and the description stays focused on what is uniquely risky for this tool: async polling, timeout recovery, template re-runs, and metric naming pitfalls. For a report-generation tool with 18 params, the async/timeout contract and column semantics are the details an agent would most likely get wrong, and both are covered.

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 0%, so the description carries the full burden, and it handles about half the 18 parameters well: level values, granularity values, date format, filters structure, report_format, template_id, and the three polling/limit params with defaults. However, ad_account_id, reporting_timezone, conversion_report_time, and the four window_days params receive no explanation anywhere, leaving a caller to guess at attribution semantics that materially change report output.

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?

Specific verb+resource: 'Request a report, wait for it with progress updates, and return its rows.' It distinguishes itself from the four sibling report tools by describing the create-plus-poll-plus-return behavior, and by explicitly deferring to pinterest_ads_create_report, pinterest_ads_get_report and pinterest_ads_list_report_templates for the pieces it does not do itself.

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

Usage Guidelines5/5

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

Names alternatives and the conditions that select them: same args as create_report, use get_report to check later after a timeout, use list_report_templates when re-running a saved Ads Manager report via template_id, and list_metrics to resolve column definitions. It also states the targeting_types requirement for *_TARGETING levels, which is a genuine precondition.

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

Deploy Server

Other Tools