Skip to main content
Glama
Pinterest Ads MCP Server

Pinterest Ads MCP Server

Upload a customer list

pinterest_ads_create_customer_list

Upload a customer list of emails or mobile ad IDs for Pinterest targeting. Identifiers are normalized and SHA-256 hashed before sending, then the list can be turned into an audience.

Instructions

Upload a customer list (emails or mobile ad IDs) for targeting. Changes the account.

list_type: EMAIL (default), MAID, IDFA, LR_ID, DLX_ID or HASHED_PINNER_ID. Emails and ad IDs are trimmed, lower-cased and SHA-256 hashed here before sending (unless already hashed). Up to 50,000 identifiers per call. Only upload people who agreed to this use; then turn the list into an audience with pinterest_ads_create_audience.

Input Schema

NameRequiredDescriptionDefault
nameYes
list_typeNoEMAIL
identifiersYes
ad_account_idNo
hash_identifiersNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only say this is a non-read-only, non-idempotent, non-destructive open-world write; the description adds real behavior: the account is mutated, identifiers are trimmed, lower-cased and SHA-256 hashed server-side unless already hashed, and there is a hard 50,000-identifier cap per call. Those are exactly the side effects an agent cannot infer from the hints.

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?

Dense and front-loaded: purpose, then mutation warning, then allowed types, then processing behavior and limits, then the next step. The standalone 'Changes the account.' line is terse but deliberate; nothing is redundant, though the paragraph could be broken into tighter lines for scannability.

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

Completeness4/5

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

For a five-parameter write tool with an output schema, the description covers purpose, mutation semantics, accepted types, preprocessing, batch limit, compliance, and the downstream step. Minor gaps: what 'name' is used for and how ad_account_id defaults when omitted.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the load, and it does for the two most consequential fields: it enumerates list_type values including the EMAIL default, and explains that identifiers are hashed unless already hashed (implicitly tying to hash_identifiers). It leaves 'name' and 'ad_account_id' unexplained, which keeps it short of a 5.

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?

States a specific verb and resource ('Upload a customer list') plus the accepted identifier domains (emails or mobile ad IDs), which separates it cleanly from pinterest_ads_create_audience, pinterest_ads_update_customer_list and pinterest_ads_list_customer_lists. An agent can pick this tool without opening the 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?

Gives an explicit follow-up path ('then turn the list into an audience with pinterest_ads_create_audience') and a consent precondition, which frames when the call is appropriate. It does not explicitly contrast against update_customer_list for appending to an existing list, so routing there is left to inference.

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