Skip to main content
Glama
getmcpads-com

pinterest-ads-mcp-server

pinterest-ads-mcp-server

CI License: Apache 2.0 Node

An open-source Model Context Protocol server for the Pinterest Ads API. It lets Claude, ChatGPT, Cursor or any MCP client read and analyse your Pinterest advertising data, and change it if you choose to.

You run it. Your token stays on your machine. Nothing is proxied through a third party.

npx -y @getmcpads/pinterest-ads-mcp-server

Also listed in the MCP Registry as com.getmcpads/pinterest-ads, so clients that read the registry can install it by name.

Prefer a hosted connection? Get MCP Ads for Pinterest Ads handles the server and OAuth flow. Create a workspace, connect the platform and select the accounts or properties your assistant may read. Free is read only; paid limits and supported writes are described on the site. Hosted and npm releases can differ: check the current catalogue for the operation you need.


What you get

28 read tools

Reporting, campaigns and ad groups, audiences, targeting, keywords, conversions, catalogs, business assets, billing, Pins and trends

24 write tools

Off by default. Campaign and ad group status and budgets, campaign creation. Each one previews before it applies

7 resources

Live catalogues the model can read: reporting columns, attribution windows, creative assets, catalog reporting, surface map, recipes

Organic alongside paid

Pin analytics and trends, not just the ad account

Privacy by construction

Lead records are not exposed at all, and member identifiers are redacted by default

Raw column names, on purpose

Pinterest names its reporting columns in its own way, and this server accepts those names directly rather than inventing friendly aliases on top. A column that exists in the API works here; one that does not fails immediately rather than being silently translated into something else.

pinterest://reporting-columns lists what is available, and pinterest_validate_report checks a request before it runs.


Related MCP server: Meta Ads MCP

How this compares to Pinterest's own MCP server

Pinterest shipped an official MCP server in June 2026, with authentication handled by Pinterest's own systems. It launched read-only: an agent can pull performance data and account context, but cannot change a budget, pause a campaign or edit a bid.

This server

Pinterest's official server

getmcpads.com

Hosting

You host it. stdio, local process

Pinterest-hosted

Hosted for you

Data path

Direct to the API. No intermediary

Through Pinterest's endpoint

Through our gateway

Writes

Yes, preview first, applied only on confirm: true

None, read-only at launch

Yes, preview first

Auditable

Yes. Apache-2.0, read every line

No

This server, audited

Modifiable

Fork it

No

No

Auth

You bring a token, which is more setup

Handled by Pinterest

Hosted OAuth

Choose Pinterest's for the least setup, if reporting is all you need. Choose this one if you want your data to stay on your infrastructure, want to audit or extend what the model can do, or want guarded writes rather than none. Choose getmcpads.com if you want this server's capabilities without running it, or you need more than one ad platform in the same conversation.


Privacy, built into what the tools return

Two protections, and they work differently.

Lead records are never exposed. pinterest_get_lead_assets returns lead form and subscription configuration, but never the lead export itself, because those rows carry personal information submitted by end users. This is an exclusion, not a redaction: the data does not leave Pinterest through this server at all.

Business member identifiers are redacted by default. Member IDs, email addresses and usernames are replaced before they reach the model when you read members, asset members or invites. includePersonalIdentifiers: true returns the raw values and defaults to false. These are your colleagues' addresses, so the default is the safe one.


Getting a token

You need a Pinterest access token with the ads:read scope.

  1. Create an app in the Pinterest developer portal.

  2. Note the App ID and App secret.

  3. Run the OAuth flow while signed in to the account that can access your ad accounts. Request ads:read, and ads:write only if you plan to enable writes.

  4. Keep the access token, and the refresh token if you want the server to renew it.

📖 Pinterest API authentication

You can run with just PINTEREST_ACCESS_TOKEN, but it expires. Supplying PINTEREST_REFRESH_TOKEN, PINTEREST_APP_ID and PINTEREST_APP_SECRET together lets the server renew the token itself, which is what you want for daily use.

Run pinterest_health_check as your first call. It verifies the token and lists the ad accounts you can reach, without printing the token.


Setup

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "pinterest-ads": {
      "command": "npx",
      "args": ["-y", "@getmcpads/pinterest-ads-mcp-server"],
      "env": {
        "PINTEREST_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}

Restart Claude Desktop. Ask it: "list my Pinterest ad accounts".

Claude Code

claude mcp add pinterest-ads --env PINTEREST_ACCESS_TOKEN=your-token -- npx -y @getmcpads/pinterest-ads-mcp-server

Cursor

.cursor/mcp.json in your project, same shape as the Claude Desktop config above.

From source

git clone https://github.com/getmcpads-com/pinterest-ads-mcp-server.git
cd pinterest-ads-mcp-server
npm install && npm run build
cp .env.example .env   # then fill in your credentials
npm start

Configuration

Variable

Default

Meaning

PINTEREST_ACCESS_TOKEN

none

Access token with ads:read

PINTEREST_REFRESH_TOKEN

none

With the two below, lets the server renew the token

PINTEREST_APP_ID

none

App ID, needed for refresh

PINTEREST_APP_SECRET

none

App secret, needed for refresh

PINTEREST_AD_ACCOUNT_ID

none

Optional default, saves passing it on every call

PINTEREST_ENABLE_WRITES

unset

Set to 1 to register the 5 write tools

LOG_LEVEL

info

debug, info, warn, error

Either the access token, or the refresh trio. The server refuses to start with neither.

npm run doctor

Writes, and why they preview first

Write tools are disabled by default. Enable them with PINTEREST_ENABLE_WRITES=1, and grant ads:write on top of ads:read.

When enabled, every write tool returns a preview and changes nothing:

// pinterest_update_adgroup_budget { adAccountId: "549…", adGroupId: "268…", dailyBudget: 50 }
{
  "applied": false,
  "action": "pinterest_update_adgroup_budget",
  "change": { "adAccount": "549…", "adGroup": "268…",
              "field": "budget_in_micro_currency", "amount": 50,
              "inMicroCurrency": 50000000 },
  "message": "Preview only, nothing was changed. Repeat the same call with confirm: true to apply this change to the live account."
}

Only a second call carrying confirm: true touches the live account.

This is deliberate. An assistant composes these calls, and it can pick the wrong ad account, the wrong campaign, or the wrong order of magnitude on a budget. A mandatory preview makes the mistake visible before it costs money, and gives a human the stopping point the protocol does not guarantee on its own.

Two further guardrails:

  • pinterest_create_campaign always creates the campaign PAUSED. There is no option to create it active.

  • Amounts are converted to micro units for you. Pinterest holds money in millionths, so 12.50 in the account currency is 12500000. The preview shows both, so a factor-of-a-million mistake is visible before it applies. A daily and a lifetime budget sent together are refused rather than silently resolved.

Tool

What it changes

pinterest_update_campaign_status / pinterest_update_adgroup_status

Pause, reactivate or archive

pinterest_update_campaign_budget / pinterest_update_adgroup_budget

Daily or lifetime budget

pinterest_create_campaign

Creates a campaign, always PAUSED


Tools

Discovery and health

Tool

Purpose

pinterest_health_check

Verifies the token and lists reachable ad accounts

pinterest_list_ad_accounts

Every ad account the token can reach

pinterest_get_account_entities

Campaigns, ad groups and ads in one call

pinterest_get_business_assets

Businesses, members and invites. Identifiers redacted

pinterest_get_platform_resources

Enumerations and reference data the API exposes

Reporting

Tool

Purpose

pinterest_run_report

The main reporting tool, on raw column names

pinterest_validate_report

Check a request before running it

pinterest_get_delivery_metrics

Delivery and pacing signals

pinterest_run_targeting_report

Performance broken down by targeting

pinterest_run_specialized_export

Async exports for large result sets

pinterest_estimate_delivery

Forecast reach for a targeting set

Audiences and targeting

Tool

Purpose

pinterest_get_audiences / pinterest_get_audience_insights

Audiences and their composition

pinterest_get_targeting_options

Available targeting dimensions and values

pinterest_get_keyword_intelligence

Keyword metrics and suggestions

pinterest_get_trends

What is rising on Pinterest

Creatives and organic

Tool

Purpose

pinterest_get_creative_assets

Ad creatives, media and their metadata

pinterest_get_organic_inventory

Organic Pins and boards

pinterest_get_pin_analytics

Performance of individual Pins

Commerce

Tool

Purpose

pinterest_get_catalog_inventory / pinterest_get_catalog_diagnostics

Product feeds and their health

pinterest_run_catalog_report

Catalog performance

pinterest_run_conversion_product_report

Conversions by product

pinterest_get_conversion_setup

Conversion tags and events

Operations

Tool

Purpose

pinterest_get_billing_and_orders

Billing and order history

pinterest_get_lead_assets

Lead form configuration. Lead records are never returned

URI

Contents

pinterest://manifest

What this server exposes, and its current mode

pinterest://reporting-columns

Every reporting column the API accepts

pinterest://attribution

Attribution windows and their defaults

pinterest://creative-assets

How creative assets are shaped

pinterest://catalog-reporting

Catalog-specific reporting columns

pinterest://surface-map

Which tool covers which part of the API

pinterest://recipes

Step-by-step workflows


Security

  • The token is never logged, at any log level, or written to disk.

  • One host is contacted, and only one: api.pinterest.com. A test fails the build if a second host appears in the source.

  • No fetch follows a redirect. Every outbound call sets redirect: "error", so a redirect cannot forward your token to another host. A test fails the build if any fetch omits this.

  • Async report URLs are validated before being fetched. Pinterest returns a download URL on a host it chooses; that value is data from the API, not something to trust. HTTPS only, no private or loopback address, no redirect, and no credential attached.

  • No telemetry. The server makes no network call other than to Pinterest.

Full policy, including how personal data is handled: SECURITY.md.


Looking for a managed, multi-platform version?

Try hosted Pinterest Ads if you want to use this source without operating a local server. Get MCP Ads also connects advertising, Search Console and GA4 through one MCP URL. Source availability and plan limits are listed on the site; connecting an account is still required.

  1. Follow the Pinterest Ads connection guide.

  2. Select the account or property your assistant may read.

  3. Connect Claude, ChatGPT or Codex.

  4. Try a read-only review: “Review campaign performance using your selected ad account. State missing data and do not change anything.”

See the current hosted tool catalogue and pricing before choosing a paid plan. This Apache 2.0 adapter remains independently useful with your own credentials.


Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md. Please read SECURITY.md before reporting anything security-related.

Licence

Apache License 2.0. See also NOTICE.

Pinterest is a trademark of Pinterest, Inc. This project is not affiliated with, endorsed by, or sponsored by Pinterest, Inc. It is an independent client of a public API.

Version 1.1: platform updates and MCP contracts

Every tool now declares read/write annotations, parameter descriptions and a structured output schema. Successful calls retain their original text and expose the same payload as structuredContent.result; provider fields depend on the selected report. Errors retain isError: true. The generated server card contains definitions only, with no account credentials.

Writes remain disabled unless the platform-specific ENABLE_WRITES setting is enabled. Read the exact tool schema before calling: operations can require the owning account, currency, native configuration or a matching preview hash. Calls preview by default; applying a change requires confirm: true. A provider timeout can leave the outcome unknown: reconcile the account before retrying a creation or upload.

Additional tools included in this release:

Tool

Purpose

pinterest_list_ad_creatives

List the ad account's ad creatives across every status (the API silently omits ARCHIVED ads unless asked) with their pin media resolved: public i.pinimg.com image URLs up to 1200px, video cover, and video_url when the app is allowed to read it.

pinterest_get_write_schema

Read the official Pinterest v5 native request schema and Sandbox limitations before composing a write..

pinterest_update_ad_status

Update the status of an existing ad.

pinterest_update_campaign_configuration

Update native campaign settings.

pinterest_update_adgroup_configuration

Update native ad group settings.

pinterest_update_ad

Update native ad settings.

pinterest_create_adgroup

Create a PAUSED ad group with explicit native bidding, targeting, budget and schedule.

pinterest_create_ad

Create a PAUSED ad from an accessible Pin.

pinterest_create_product_group_promotion

Create a PAUSED shopping or collections promotion from a catalog product group.

pinterest_update_product_group_promotion

Update a catalog product group promotion.

pinterest_create_board

Create /boards in the selected advertiser context.

pinterest_update_board

Update /boards in the selected advertiser context.

pinterest_create_pin

Create /pins in the selected advertiser context.

pinterest_update_pin

Update a Pin.

pinterest_register_media

Register media upload; returned upload_url/parameters are not confirmation that a video is uploaded or ready.

pinterest_create_catalog

Create /catalogs in the selected advertiser context.

pinterest_create_catalog_feed

Create /catalogs/feeds in the selected advertiser context.

pinterest_update_catalog_feed

Update /catalogs/feeds in the selected advertiser context.

pinterest_create_product_group

Create /catalogs/product_groups in the selected advertiser context.

pinterest_update_product_group

Update /catalogs/product_groups in the selected advertiser context.

pinterest_batch_catalog_items

Submit native CREATE/UPDATE/UPSERT/DELETE catalog item operations.

The hosted GetMCPAds service additionally provides OAuth account selection and interactive review workspaces. Local servers use your own platform credentials and return native report data and media references.

Desktop bundle

Run npm run bundle -- /path/to/output to build a .mcpb desktop bundle from the current catalogue. The bundle contains production dependencies, documented local configuration, and complete tool definitions. Provider credentials are entered locally during installation; write tools remain disabled unless explicitly enabled.

Available Tools

26 tools
pinterest_estimate_deliveryA

Run non-mutating Pinterest planning computations: ad-group audience size, bid floors, or campaign delivery estimates. The request body follows the selected Pinterest v5 schema and no campaign/ad group is created or changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
requestYes
adAccountIdNo

TDQS

A3.7/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the behavioral disclosure burden. It clearly states the operation is non-mutating and that no campaign or ad group is created or changed, which is the most critical side-effect information. It does not cover auth or rate-limit behavior, but the core behavioral profile is explicit.

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

Conciseness5/5

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

The description is two sentences with the primary purpose front-loaded and concrete mode examples immediately following. The second sentence adds a meaningful side-effect guarantee and schema note, so each clause contributes without filler.

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

Completeness2/5

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

Given the nested request object, the mode-driven behavior, three parameters, no output schema, and no annotations, this description is too sparse for confident invocation. It lacks the mode-specific request contract, mention of optional `adAccountId`, and any indication of the response shape, leaving significant gaps for an agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate for the opaque `mode`, `request`, and `adAccountId` parameters. It only says the request body follows the selected Pinterest v5 schema and lists high-level computation types; it does not describe how to construct `request`, which modes require what fields, or the role of `adAccountId`.

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 description uses a specific verb and resource: 'Run non-mutating Pinterest planning computations' and then enumerates concrete outputs such as audience size, bid floors, and delivery estimates. This maps directly to the mode enum and clearly differentiates the tool from the many get/report siblings.

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

Usage Guidelines3/5

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

The description establishes a clear context: planning/estimation computations rather than historical reads or report generation, and it stresses that nothing is mutated. However, it does not explicitly name alternative tools or state when not to use this tool, leaving the when-to-use comparison mostly implicit.

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

pinterest_get_account_entitiesB

Read Pinterest ad-account entities and configuration. Covers account, campaign, ad group, ad, product-group promotion, promotion, label, schedule, targeting template, and order-line inventory. Returns one API page and its bookmark for predictable live queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
entityYes
bookmarkNo
entityIdNoFetch one entity where Pinterest exposes a detail endpoint.
pageSizeNo
adGroupIdsNo
adAccountIdNo
campaignIdsNo
entityStatusesNo

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It clearly labels the operation as 'Read' (non-destructive) and explicitly discloses pagination behavior by saying it returns one API page and its bookmark. This is meaningful behavioral context beyond the schema.

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 description is concise and front-loaded: it begins with the action, then lists the covered entities, then states the return behavior. Every sentence adds information, though the word 'configuration' is slightly vague.

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

Completeness2/5

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

This is a 9-parameter tool with no output schema, no annotations, and low schema coverage. The description explains scope and pagination, but does not clarify how to choose between list vs detail fetches, how to continue pagination with the bookmark, or what the query object should contain. An agent would likely need to inspect external docs to invoke it confidently.

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

Parameters2/5

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

Schema description coverage is only 22%, so the description must compensate for poorly documented parameters. It only gives meaning to the entity enum and the pagination concept; it does not explain entityId, query, pageSize, adAccountId, adGroupIds, campaignIds, or entityStatuses. This leaves most parameters under-specified.

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

Purpose4/5

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

The description clearly states a specific verb ('Read') and a concrete resource ('Pinterest ad-account entities and configuration'), and enumerates the entity types covered. It doesn't explicitly contrast with sibling tools, but it is specific enough for an agent to identify its core purpose.

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

Usage Guidelines3/5

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

The phrase 'Returns one API page and its bookmark for predictable live queries' implies when this tool is appropriate—live, paginated entity reads rather than report or export tools. However, it does not name alternatives or state which sibling tools should be used instead for analytics, audits, or reporting.

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

pinterest_get_audience_insightsA

Read aggregated Pinterest Audience Insights for the advertiser's total or engaged audience, Pinterest's total audience, or the scope/type endpoint. Pinterest fixes the audience-insights observation window; it is not a custom date-range report.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoAUDIENCE_PROFILE
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
adAccountIdNo
audienceInsightTypeNoYOUR_TOTAL_AUDIENCE

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose a genuine quirk beyond the schema — Pinterest fixes the observation window and the tool ignores custom date ranges — and signals read-only intent via 'Read.' It does not, however, address response shape, aggregation specifics, or any auth/rate-limit caveats, leaving the behavioral picture only partially drawn.

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

Conciseness5/5

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

Two tight sentences with no filler. The first sentence front-loads the verb, resource, and scope options; the second delivers the single most important behavioral caveat. Every clause earns its place.

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

Completeness3/5

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

The tool has four parameters, one nested free-form query object, no output schema, and no annotations, so the description must do heavy lifting. It covers the enum semantics and the fixed-window caveat well, but leaves no hint about what the insights response actually contains (e.g., demographics, interests) and does not enumerate the accepted query parameters, which remain 'additionalProperties: {}' in the schema. Adequate but with clear gaps for a tool this complex.

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 only 25%, so the description must compensate, and it partially does: the prose explains the audienceInsightType enum values ('your total or engaged audience, Pinterest's total audience') and the mode enum ('scope/type endpoint'). However, it says nothing about adAccountId and leaves the opaque 'query' object undescribed despite the date-range caveat being the only hint about its constraints. The compensation is real but incomplete.

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 description opens with a specific verb and resource ('Read aggregated Pinterest Audience Insights') and enumerates the three distinct scopes: advertiser total/engaged audience, Pinterest's total audience, and the scope/type endpoint. The closing clause explicitly distinguishes it from a custom date-range report, which helps an agent separate it from reporting siblings like pinterest_run_report. This is neither tautological nor vague.

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

Usage Guidelines3/5

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

The statement 'it is not a custom date-range report' provides an implicit exclusion that hints an agent should not select this tool when date-range flexibility is required. However, no explicit alternatives are named and there is no positive guidance on when to choose audience insights over overlapping siblings such as pinterest_get_keyword_intelligence or pinterest_get_trends. The usage context is implied rather than stated.

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

pinterest_get_audiencesA

Read audience, customer-list, sharing, and Business-received audience inventory without uploading or changing audience membership.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
bookmarkNo
pageSizeNo
audienceIdNo
businessIdNo
excludeNcaNo
accountTypeNoAD_ACCOUNT
adAccountIdNo
ownershipTypeNo
customerListIdNo
allowCrossBusinessReadNoExplicit opt-in required if the business cannot be linked to the selected ad account.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry the safety burden, and it does state that the operation is read-only and non-mutating. However, it does not mention required authentication/permissions, pagination, or endpoint behavior for the different mode values. It provides a baseline behavioral profile but not rich operational transparency.

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

Conciseness5/5

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

One tight sentence, front-loaded with the verb and resource, then a short non-mutation qualifier. No filler; it is an appropriate length for the information it conveys.

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

Completeness2/5

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

Despite 12 parameters, no output schema, and low schema coverage, the description omits how mode selects the fixed endpoints, which parameters are required/valid per mode, and what the response contains. An agent cannot reliably construct a valid call from this text alone; it would need to reverse-engineer the schema.

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

Parameters2/5

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

Only 2 of 12 schema properties carry descriptions (17% coverage), and the description adds no direct parameter guidance. The audience/customer-list/sharing terms hint at mode enum values, but the agent gets no help choosing values for mode, query, bookmark, pageSize, adAccountId, businessId, or ownershipType. Low schema coverage demands compensation that the description does not provide.

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?

Begins with 'Read', names the exact resources (audience, customer-list, sharing, Business-received audience inventory), and explicitly frames it as inventory retrieval. This distinguishes it from write-oriented audience tools and from sibling pinterest_get_audience_insights (insights vs inventory).

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?

States a clear context: reading audience-related inventory. The phrase 'without uploading or changing audience membership' sets a when-not boundary and rules out mutation use cases, but it does not explicitly name an alternative tool for those cases. Enough to guide selection among sibling get tools, though not as explicit as a named alternative.

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

pinterest_get_billing_and_ordersB

Read billing profiles/invoices, invoice download URLs, order lines, ads-credit discounts, and SSIO account/order status. Financial data is returned only when the token has account access.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
bookmarkNo
entityIdNoInvoice ID, order-line ID, or Pinterest order ID depending on mode.
pageSizeNo
adAccountIdNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does state that the tool is read-only and that financial data is returned only when the token has account access, which is useful. However, it does not explain what happens without access, pagination behavior, or mode-dependent behaviors, leaving significant gaps.

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

Conciseness5/5

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

The description is two tight sentences with no filler. It front-loads the tool's core purpose in the first sentence and adds a key access caveat in the second. Every word earns its place.

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

Completeness2/5

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

This is a complex tool with 6 parameters, 9 mode enum values, a nested query object, and no output schema or annotations. The description covers only the broad resource types and an access condition, leaving out critical operational details such as required parameters per mode, response shape, and pagination behavior. It is not adequate for reliable invocation.

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

Parameters2/5

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

Schema description coverage is low at 33%, and the description does not compensate by explaining how the listed resources map to the `mode` parameter or how `query`, `entityId`, and `pageSize` should be used. The description adds almost no meaning beyond the schema, leaving the agent to guess parameter semantics for most options.

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

Purpose4/5

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

The description clearly states the tool's scope with a specific verb ('Read') and enumerates the resources involved: billing profiles, invoices, order lines, ads-credit discounts, and SSIO account/order status. It is unambiguous about what the tool does, but it does not explicitly differentiate it from sibling tools, so it falls short of a 5.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus siblings like pinterest_get_account_entities or pinterest_get_business_assets. The only contextual note is about token access, which is a requirement rather than a usage-selection guideline. There are no exclusions or alternative conditions.

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

pinterest_get_business_assetsC

Read Pinterest Business Access inventory: employers/linked businesses, assets, members, partners, assigned assets, received audiences, and invites. Requires the corresponding business-management permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
assetIdNo
bookmarkNo
memberIdNo
pageSizeNo
partnerIdNo
businessIdNo
adAccountIdNoSelected ad account used to verify the business relationship.
allowCrossBusinessReadNoExplicit opt-in required if businessId cannot be linked to the selected ad account.
includePersonalIdentifiersNoMEMBERS, ASSET_MEMBERS and INVITES only. Explicitly include member IDs/email/username; false redacts them.

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. The verb 'Read' clearly signals a non-mutating operation, and the permission requirement plus the enumerated response categories add useful context. However, it does not disclose pagination, error behavior, rate limits, or how the response is structured for the various modes.

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 description is one sentence, front-loaded with the action and resource, and contains no filler. The long comma-separated list is dense but each item contributes to the scope. It could be broken into clearer clauses, so it is concise but not perfectly structured.

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

Completeness2/5

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

For a tool with 11 parameters, no output schema, and no annotations, this description is too thin to fully orient an agent. It establishes the general intent and permission requirement but does not clarify how mode drives the request, what query parameter to use, or what the returned inventory looks like. The schema fills some gaps, but a complex tool like this needs more operational context.

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

Parameters2/5

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

With only 36% schema description coverage and 11 parameters, the description needed to compensate but does not. The category list loosely maps to the mode enum values, adding some conceptual grouping, but it does not explain query, adAccountId, allowCrossBusinessRead, includePersonalIdentifiers, or other parameters. The schema already provides the mode enum, so the description mostly repeats rather than enriches it.

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

Purpose4/5

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

The description uses a specific verb ('Read') and names a clear resource ('Pinterest Business Access inventory'), then lists the scopes: employers/linked businesses, assets, members, partners, assigned assets, received audiences, and invites. However, it does not differentiate this from sibling tools like pinterest_get_account_entitities or pinterest_get_audiences, so it falls short of a full 5.

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

Usage Guidelines2/5

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

The description gives a prerequisite ('requires the corresponding business-management permissions') but does not explain when to choose this tool over alternatives. It neither names a sibling nor specifies exclusions, leaving the agent to infer appropriate use from the resource name alone.

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

pinterest_get_catalog_diagnosticsB

Read deep catalog inventory and diagnostics: catalogs, feeds, feed processing results, item issues, product groups, product counts/products, available filter values, and catalog item lookups. ITEMS is a read-only POST lookup.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
feedIdNo
requestNoRequired for ITEMS; Pinterest CatalogsItemsRequest with country, language, and filters.
bookmarkNo
pageSizeNo
catalogIdNo
adAccountIdNo
productGroupIdNo
processingResultIdNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description bears the full burden and does convey that this is a read operation ('Read') and explicitly calls out that ITEMS is a read-only POST lookup. However, it omits other behavioral details such as whether some modes require special permissions, how pagination works across modes, or whether any action has side effects. It adds some transparency but not deep context.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The core purpose ('Read deep catalog inventory and diagnostics') is front-loaded, followed by a compact enumeration of covered entities and a useful behavioral note about ITEMS. It is dense but appropriately sized for a broad multi-mode tool.

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

Completeness2/5

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

This is a complex tool with ten parameters, nested objects, multiple modes, no output schema, and no annotations. The description lists what can be read but does not explain mode-specific parameter requirements, return value shape, pagination behavior, or how it differs from overlapping siblings. An agent would likely need external documentation to invoke it correctly with confidence.

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

Parameters2/5

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

Schema description coverage is only 20%, so the description needed to compensate for the ten parameters and mode enum. It does not explain how mode maps to the listed resources or when adAccountId, catalogId, feedId, productGroupId, or processingResultId are required. The only parameter-related hint is that ITEMS is a read-only POST lookup, which is not enough given the low schema coverage.

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

Purpose4/5

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

The description states a specific action ('Read') and a clear resource ('deep catalog inventory and diagnostics') and enumerates the covered entities: catalogs, feeds, processing results, item issues, product groups, products, and available filters. This distinguishes it from simpler inventory tools by breadth, though it does not explicitly differentiate it from the similarly named sibling pinterest_get_catalog_inventory.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over siblings such as pinterest_get_catalog_inventory, pinterest_run_catalog_report, or pinterest_get_organic_inventory. The description only lists capabilities and notes that ITEMS is a read-only POST lookup, but does not state conditions, prerequisites, or alternatives. An agent would have to infer usage from the mode enum.

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

pinterest_get_catalog_inventoryB

List Pinterest catalog inventory surfaces: catalogs, product groups, product group promotions, and optional product samples.

ParametersJSON Schema
NameRequiredDescriptionDefault
adAccountIdNo
sampleProductGroupsNo
includeProductSamplesNo

TDQS

B3/5.0
Behavior3/5

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

The verb 'List' communicates a read-only operation, and 'optional product samples' hints at the includeProductSamples behavior. However, with no annotations, the description does not disclose pagination, ad-account scoping, rate limits, or return shape, sharing the full burden on the description rather than shared structured metadata.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word contributes to the core purpose and scope.

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

Completeness2/5

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

For a tool with no annotations, no output schema, and undocumented parameters, this description is too thin. An agent cannot tell how sampleProductGroups affects results, what ad account context applies, or how this differs form catalog diagnostics/report tools.

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

Parameters2/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 compensate. Only 'optional product samples' maps to includeProductSamples. adAccountId and sampleProductGroups are not semantically explained beyond their property names and default/constraint values, so an agent lacks context for those parameters.

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

Purpose4/5

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

The description states a specific verb and resource: 'List Pinterest catalog inventory surfaces' and enumerates the surfaces (catalogs, product groups, product group promotions, optional product samples). It clearly describes what the tool does, though it does not explicitly contrast with sibling catalog tools like diagnostics or report tools.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description implies a listing use case, but it gives no exclusions or routing cues relative to sibling tools such as pinterest_get_catalog_diagnostics or pinterest_run_catalog_report.

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

pinterest_get_conversion_setupA

Inspect Pinterest conversion measurement configuration: conversion tags, oCPM-eligible/page-visit tags, Event Quality Score, advertiser-defined events, and conversion-deletion request status. This never sends or deletes conversion events.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookmarkNo
pageSizeNo
surfacesNo
adAccountIdNo
lookbackPeriodNo14d
sourcePlatformNo
ingestionSourceNo
includeDeletedTagsNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations available, the description carries the full disclosure burden and does state a crucial behavioral guarantee: 'This never sends or deletes conversion events.' It stops short of covering pagination, rate limits, or authentication requirements, but the most important side-effect profile (read-only) is explicit.

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

Conciseness5/5

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

Two tightly scoped sentences front-load the purpose and then add the key safety qualifier. No filler or repetition of schema details appears.

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

Completeness2/5

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

For a tool with eight parameters, no output schema, and no annotations, the description is too high-level: it omits parameter semantics, default behavior, return shape, and pagination. The purpose is clear, but an agent cannot fully infer how to use the optional filters or interpret the result.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only indirectly clarifies the surfaces parameter by listing the same category names; the other seven parameters (adAccountId, lookbackPeriod, sourcePlatform, ingestionSource, includeDeletedTags, pageSize, bookmark) receive no semantic explanation. The description does not compensate for the absence of schema descriptions.

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 description uses a specific verb ('Inspect') with a clear resource ('Pinterest conversion measurement configuration') and enumerates the exact configuration categories, which directly matches the surfaces enum values. It also explicitly distinguishes this read-only inspection tool from mutation or reporting siblings.

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

Usage Guidelines3/5

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

The read-only inspection intent is implied by 'Inspect' and 'never sends or deletes,' but there is no explicit when-to-use guidance or comparison to sibling tools such as pinterest_run_report or pinterest_get_delivery_metrics. An agent must infer when this tool is the right choice rather than being told.

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

pinterest_get_creative_assetsC

Fetch Pinterest creative assets and period performance when available. Returns ads, pins, thumbnails/images/videos, campaign/ad group context, catalog signals, and asset classifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
endDateYes
startDateYes
adGroupIdsNo
adAccountIdNo
campaignIdsNo
onlyWithPeriodDeliveryNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does state that the tool returns certain data and notes that period performance is available 'when available,' which is useful. However, it does not disclose behaviors such as required ad account context, date range handling, pagination, whether results are limited by default, or what happens when no assets match.

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 description is a single compact sentence that front-loads the main action and resource. It packs several return categories into a list without excessive wording. It loses one point because the phrase 'when available' is vague and the long enumeration is slightly unfocused, but overall it is concise.

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

Completeness2/5

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

For a tool with 7 parameters, 2 required parameters, no output schema, and no annotations, the description is too sparse to support correct invocation. It does not explain date formats, which filters are supported, what 'period performance' means, or how the response is structured. An agent would likely need to inspect sibling tools or make assumptions to call this correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides almost no parameter meaning. Required fields startDate and endDate are not explained, and optional filters like adGroupIds, campaignIds, adAccountId, and onlyWithPeriodDelivery are not mentioned. The phrase 'period performance when available' could relate to onlyWithPeriodDelivery, but it is too vague to count as meaningful parameter semantics.

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

Purpose4/5

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

The description clearly states a specific verb ('Fetch') and resource ('Pinterest creative assets'), and lists what is returned: ads, pins, media, context, catalog signals, and classifications. This makes the tool's basic purpose obvious, though it does not explicitly differentiate it from siblings like pinterest_get_lead_assets or pinterest_get_organic_inventory.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool instead of alternatives, nor are exclusions or prerequisite context given. The phrase 'when available' hints at a conditional but does not explain what conditions matter. Among many sibling tools, the description does not help an agent decide between them.

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

pinterest_get_delivery_metricsA

Read Pinterest resources/delivery_metrics. Use this to inspect Pinterest's official delivery metric metadata for sync or async reports.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportTypeNoOptional report type filter.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. Saying the tool 'Read's and that it inspects 'metadata' conveys a read-only, non-mutating operation. It doesn't describe output format, pagination, or authorization, but for a simple metadata look-up this is moderate transparency.

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

Conciseness5/5

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

The description is two focused sentences with no filler. The action and resource come first, and the usage context follows directly, making it easy to scan and process.

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?

This is a low-complexity tool with a single optional and fully-described parameter. The description gives enough context for an agent to call it correctly and choose whether to pass reportType. The main gap is the lack of detail about the returned metadata structure, but the high-level 'metadata' statement partially mitigates that.

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?

The schema already fully describes reportType with an enum and an 'Optional report type filter' description, so the baseline is 3. The description's mention of 'sync or async reports' aligns with the enum values and adds mild context, but it doesn't add substantial new meaning beyond the schema.

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

Purpose4/5

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

The description uses a specific verb ('Read') and a concrete resource path ('Pinterest resources/delivery_metrics'), and states that its purpose is to inspect official delivery metric metadata for sync or async reports. This makes the tool's function clear and distinguishes it from report-execution siblings, though it doesn't explicitly name an alternative.

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?

The phrase 'Use this to inspect...' provides an explicit use case, and 'for sync or async reports' clarifies the intended context. However, it doesn't discuss when to prefer other delivery-related siblings such as estimate_delivery or run_report, so exclusion guidance is missing.

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

pinterest_get_keyword_intelligenceB

Read assigned targeting keywords, Pinterest country-level keyword metrics, suggested terms, or related terms. Country metrics accept up to 2,000 keywords per request.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
termNo
limitNo
termsNo
bookmarkNo
keywordsNo
pageSizeNo
adGroupIdNo
adGroupIdsNo
campaignIdNo
matchTypesNo
adAccountIdNo
countryCodeNo

TDQS

B3/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full behavioral burden. It explicitly signals a read-only operation with 'Read' and adds one useful constraint: country metrics accept up to 2,000 keywords per request. However, it does not disclose pagination behavior, rate limits, or mode-to-parameter prerequisites.

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

Conciseness5/5

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

The description is two tight sentences: the first identifies the core scope and modes, and the second adds the most operationally important limit. There is no filler or redundancy.

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

Completeness2/5

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

For a 13-parameter tool with no annotations, no output schema, and zero schema description coverage, this description is not complete enough for correct invocation. It does not specify which parameters each mode requires, what the response contains, or how pagination works.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does little to compensate for the 13 undocumented parameters. It references the modes and mentions the keywords limit, but does not explain how mode, term, terms, keywords, adGroupId, campaignId, countryCode, matchTypes, or bookmark relate to each other or when each is required.

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

Purpose4/5

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

The description uses the specific verb 'Read' and names concrete resources: assigned targeting keywords, country-level keyword metrics, suggested terms, and related terms. It is clear about what the tool returns, though it does not explicitly distinguish these from sibling tools like pinterest_get_targeting_options or pinterest_get_trends.

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

Usage Guidelines2/5

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

The description provides no guidance about when to use this tool versus alternatives, and does not state which mode serves which use case. The mode enum in the schema hints at variants, but the description itself gives no context for choosing among them.

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

pinterest_get_lead_assetsA

Read lead-form definitions and lead subscription configuration. Lead-record export is intentionally excluded because it can contain end-user PII.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
bookmarkNo
pageSizeNo
leadFormIdNo
adAccountIdNo
subscriptionIdNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It states the operation is read-only via 'Read' and transparently explains that lead-record export is intentionally excluded due to PII concerns. This gives meaningful behavioral context beyond the tool name, though it omits details like authentication needs or rate-limit behavior.

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

Conciseness5/5

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

Two concise sentences with no filler. The primary purpose is front-loaded, and the important PII exclusion is stated clearly as a secondary point. Every sentence earns its place.

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

Completeness2/5

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

Given the tool has 7 parameters, no output schema, and no annotations, the description is too thin. It clarifies the broad purpose but leaves the agent without guidance on how to select modes, which parameters are required in which context, or what a successful response looks like.

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

Parameters2/5

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

Schema description coverage is only 14%, so the description must compensate for the 7 undocumented parameters. It only broadly maps to two categories (lead-form definitions vs. subscription configuration), which helps interpret the mode enum but does not explain adAccountId, leadFormId, subscriptionId, bookmark, pageSize, or the query object. This is insufficient for agents to reliably construct calls.

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 description uses a specific verb ('Read') and names the exact resources: lead-form definitions and lead subscription configuration. It also explicitly states what is excluded (lead-record export), which clarifies scope and differentiates this tool from potential data-export siblings.

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?

The description clearly indicates that this tool is for reading lead-form definitions and subscription configuration, and it explicitly warns that lead-record export is not included. However, it does not name an alternative tool for lead-record export or specify conditions for when to use this over other Pinterest tools.

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

pinterest_get_organic_inventoryA

Read organic Pinterest content used alongside ads: Pins, boards, Pins on a board, Pin product tags, or search results. This is inventory metadata, not proof of paid delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
pinIdNo
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
boardIdNo
bookmarkNo
pageSizeNo
searchTermNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden. It clearly states it is a read operation ('Read organic Pinterest content') and clarifies the semantic nature of the data (inventory metadata, not proof of paid delivery). This sufficiently discloses its read-only behavior and the caveat that it is not a delivery proof tool. It does not mention rate limits or auth, but for a read-only tool this is acceptable.

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

Conciseness5/5

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

The description is two sentences, each earning its place. The first sentence front-loads the primary purpose and the second adds a critical caveat. There is no fluff or repetition, making it easy to scan.

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

Completeness2/5

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

The tool has 7 parameters, an enum mode with multiple modes, a nested 'query' object, no output schema, and no annotations. The description only provides a high-level overview and a caveat, but does not explain the mode-parameter relationships, pagination (bookmark/pageSize), or the structure of the returned metadata. For such a complex tool, this is insufficient for an agent to call it correctly without external knowledge.

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

Parameters2/5

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

Schema description coverage is only 14% (only 'query' has a description). The description does not explain any parameters beyond listing content types that roughly map to the 'mode' enum, but it fails to clarify which parameters (pinId, boardId, searchTerm, bookmark, pageSize) apply to which modes or their conditional requirements. Given the low schema coverage, the description should compensate, but it does not provide meaningful parameter semantics.

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 description clearly states the action (read), the resource (organic Pinterest content), and explicitly lists the covered content types (Pins, boards, Pins on a board, Pin product tags, search results). It also distinguishes itself from siblings like 'get_catalog_inventory' by explicitly saying 'organic inventory' and 'not proof of paid delivery', making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage context ('used alongside ads') and provides an exclusion ('not proof of paid delivery'), but it does not explicitly name alternative tools or provide when-to-use/when-not-to-use guidance. The exclusion is helpful but not comprehensive; an agent would still need to infer which of many get_* siblings this replaces.

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

pinterest_get_pin_analyticsB

Read paid Pin analytics, organic multi/single-Pin analytics, user-account analytics, top Pins, or top video Pins. Pass raw metric names supported by the selected Pinterest endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
pinIdNo
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
pinIdsNo
sortByNoRequired by Pinterest top-Pin endpoints; defaults to IMPRESSION.
endDateYes
metricsYes
startDateYes
campaignIdNo
adAccountIdNo
granularityNoDAY

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses that this is a read operation and that metric names are passed through to the Pinterest endpoint selected by mode, but it does not mention required authentication scopes, rate limits, endpoint-to-mode mapping, behavior on unsupported metric names, pagination, or response shape. For an analytics tool with this complexity, that is a significant transparency gap.

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

Conciseness5/5

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

The description is two dense sentences with no filler, and the core read/analytics purpose is front-loaded in the first sentence. The second sentence earns its place by giving a key usage instruction about metric names.

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

Completeness2/5

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

The tool has 11 parameters, no annotations, no output schema, and very low schema coverage, so a complete description would need to explain endpoint selection, required account/date parameters, granularity defaults, and metric-name behavior. The current two sentences provide an overview but leave too much for the agent to infer when actually invoking the tool.

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

Parameters2/5

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

Schema description coverage is only 18%, so the description needed to compensate for the many undocumented parameters. It adds useful meaning only to 'metrics' ('raw metric names supported by the selected endpoint') and indirectly to 'mode', but it leaves pinId vs pinIds, adAccountId, campaignId, granularity, sortBy, and query semantics unexplained.

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 description uses a specific verb ('Read') and names concrete resource types: paid Pin analytics, organic multi/single-Pin analytics, user-account analytics, top Pins, and top video Pins. This makes the tool's scope immediately clear and distinguishes it from sibling tools focused on delivery metrics, audiences, billing, or catalog operations.

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

Usage Guidelines3/5

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

The description implies usage through the mode-specific analytics categories and instructs the caller to pass raw metric names for the selected endpoint, but it never states when to prefer this tool over sibling analytics/reporting tools. There are no explicit alternatives or exclusions, so the usage guidance is only implied rather than actionable.

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

pinterest_get_platform_resourcesA

Read Pinterest platform metadata and readiness resources: supported ad-account countries, delivery metric definitions, metrics readiness, lead-form questions, media upload metadata, commerce integration metadata, or the authenticated user account.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoRequired by METRICS_READY_STATE.
modeYes
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
bookmarkNo
entityIdNoMedia or integration ID for detail modes.
pageSizeNo
reportTypeNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral transparency burden. It discloses that the tool is read-only via 'Read', which is useful safety context. However, it does not describe pagination behavior, authentication needs, response shape, or mode-specific side effects, leaving significant behavioral details to the schema or external knowledge.

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

Conciseness5/5

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

The description is a single front-loaded sentence with a colon-separated list of resource categories. There is no filler, and every listed item corresponds to meaningful mode behavior. It is concise while covering the tool's breadth.

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

Completeness3/5

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

Given the tool's complexity—7 parameters and 10 modes—the description plus schema provides enough to select a mode and invoke basic calls. The schema documents date for METRICS_READY_STATE, entityId for detail modes, and query as additional parameters. However, there is no output schema and no description-level guidance on response formats, pagination, or the exact semantics of WESITES, reportType, and pageSize, so it is only minimally complete.

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 only 43%, and the required mode parameter has no description in the schema. The tool description adds plain-language meaning to several mode values, such as 'supported ad-account countries', 'delivery metric definitions', and 'authenticated user account'. However, it does not explain WESITES, MEDIA_ITEM, bookmark, pageSize, reportType, or how query interacts with each mode, so it only partially compensates for the coverage gap.

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

Purpose4/5

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

The description clearly states the tool reads Pinterest platform metadata and readiness resources, and it enumerates the major categories that map to the mode enum values. It is specific about the resource types, but it does not explicitly distinguish itself from sibling tools like pinterest_get_delivery_metrics, which could overlap with the DELIVERY_METRICS mode.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you need platform metadata or readiness resources rather than reports, audiences, or analytics. However, it provides no explicit alternatives or conditions, and it does not clarify when to choose this over sibling tools with similar names like pinterest_get_delivery_metrics or pinterest_health_check.

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

pinterest_get_targeting_optionsA

Read Pinterest's official targeting option catalog for app type, gender, locale, age, location/geo, interest, keyword, or audience. Can also resolve a specific interest ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
interestIdNo
adAccountIdNo
targetingTypeNoINTEREST

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Read' signals a non-mutating operation and 'official catalog' signals the data source, but the description does not disclose output shape, pagination, rate limits, or authentication requirements. That is adequate for a simple read-only tool but not thorough.

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

Conciseness5/5

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

Two sentences with no wasted words. The primary purpose is front-loaded, and the secondary interest-ID resolution is added concisely. The description is easy to parse and does not repeat information already visible in the schema.

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

Completeness3/5

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

Given four parameters, no output schema, and no annotations, this description covers the core purpose and one important parameter but leaves 'query' and 'adAccountId' effectively unexplained. No parameters are required, so a minimal call is possible, but an agent needing a non-default or account-specific call would have insufficient guidance.

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?

The schema itself only documents the generic 'query' object, leaving schema description coverage at 25%. The description adds useful semantics by mapping the targeting categories to the targetingType enum and by indicating that interestId resolves a specific interest. However, it does not explain 'query' or 'adAccountId', so it only partially compensates for the low schema coverage.

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 description uses a specific verb ('Read'), identifies a precise resource ('Pinterest's official targeting option catalog'), and enumerates the supported categories: app type, gender, locale, age, location/geo, interest, keyword, or audience. It also adds the secondary capability of resolving a specific interest ID, which makes the tool's function clear and distinct from sibling report-generation tools.

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?

The description gives clear context for when to use the tool: when an agent needs targeting options for any of the listed categories, or needs to resolve a single interest ID. It does not explicitly name alternatives or exclusions, but the sibling context is mostly report/analysis tools, so the intended use is still reasonably unambiguous.

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

pinterest_health_checkA

Read-only Pinterest Ads health check. Verifies configured credentials, account access, delivery metrics access, and optional default account readability without exposing OAuth tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
adAccountIdNoOptional Pinterest ad account ID. Defaults to PINTEREST_AD_ACCOUNT_ID when configured.

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it explicitly declares the operation is 'Read-only' and states it does not expose OAuth tokens, which addresses a key trust concern. It also lists the specific verifications performed. It does not describe error behavior or partial-failure semantics, but the security and side-effect transparency is strong.

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

Conciseness5/5

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

One compact sentence that front-loads the most important trait ('Read-only'), then efficiently lists what is verified and the security guarantee. Every phrase earns its place; there is no redundancy or fluff.

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 simple health-check tool with one optional parameter and no output schema, the description covers purpose, scope, side-effect profile, and a security guarantee. It could add what the response looks like or what happens when checks fail, but the essential information an agent needs to decide to invoke it is present.

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% for the only parameter, adAccountId, and the schema already explains that it is optional and defaults to PINTEREST_AD_ACCOUNT_ID when configured. The description adds only a passing reference to 'configured credentials' and 'default account readability,' so it adds little beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific action ('verifies') and a clear resource ('Pinterest Ads health check'), and enumerates what is checked: credentials, account access, delivery metrics access, and default account readability. It is clearly distinct from report-running or data-fetching siblings, though it does not name a specific alternative.

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

Usage Guidelines3/5

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

Usage context is implied: it is a health check for verifying configuration and access before working with Pinterest Ads. However, the description does not explicitly say when to use this tool versus siblings like pinterest_validate_report, pinterest_list_ad_accounts, or pinterest_get_conversion_setup, and gives no exclusion criteria.

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

pinterest_list_ad_accountsA

List Pinterest ad accounts accessible to the configured credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It only restates the action without adding behavioral context such as pagination, output format, permission requirements, or side effects. For a read-only list tool, some detail about return structure would be expected.

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

Conciseness5/5

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

The description is a single sentence with no filler. It front-loads the verb and resource, and is appropriately sized for a simple tool with no parameters.

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

Completeness3/5

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

For a zero-parameter, read-only list tool, the description is mostly adequate but does not specify the return shape (e.g., names, IDs, metadata) or any unusual behaviors. Since no output schema exists, a little more detail would make it fully complete.

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?

The tool has zero parameters, so the schema provides no meaningful constraints. Per the baseline rule for zero-parameter tools, a score of 4 is appropriate. The description does not need to explain parameters since there are none.

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 description states a specific verb and resource: 'List Pinterest ad accounts accessible to the configured credentials.' It clearly identifies the tool's function and scope, and distinguishes it from siblings that focus on other entities like audiences or business assets.

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

Usage Guidelines3/5

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

The description implies usage: use this tool when you need to see which ad accounts the current credentials can access. However, it does not explicitly mention alternatives, exclusions, or when not to use it. The purpose alone gives basic contextual guidance.

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

pinterest_run_catalog_reportC

Run Pinterest catalog reporting by PRODUCT_GROUP or PRODUCT_ITEM. Use for Performance+ catalog, catalog product groups, product item image/brand/category/type, and Shopping-like reports.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
columnsNo
endDateYes
breakdownNoPRODUCT_GROUP
startDateYes
adAccountIdNo
productItemIdsNo
productGroupIdsNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It says only that the tool 'runs' reporting, without mentioning whether it returns data synchronously, creates an export, requires specific permissions, or how results are delivered. Lacking any side-effect or output behavior, this is a weak disclosure for a reporting tool.

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 description is two concise sentences with no filler. It front-loads the core action and breakdown dimension, then lists use cases. Minor jargon like 'Performance+ catalog' and 'Shopping-like reports' could be clarified, but overall the structure is efficient.

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

Completeness2/5

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

Given 8 parameters, no annotations, and no output schema, the description is substantially incomplete. It omits date format, account identification, column selection, limit behavior, filtering by IDs, and return format. An agent cannot reliably construct a correct call without resorting to external knowledge or the schema's limited type/enum hints.

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

Parameters2/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 compensate for undocumented parameters. It only hints at breakdown and product group/product item concepts, but does not explain startDate, endDate, adAccountId, columns, limit, productGroupIds, or productItemIds. This leaves most of the eight parameters unexplained.

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

Purpose4/5

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

States a specific verb and resource: 'Run Pinterest catalog reporting' with breakdown by PRODUCT_GROUP or PRODUCT_ITEM. It also lists concrete use cases like catalog product groups and product item attributes, which helps distinguish it from generic report tools. However, it does not explicitly contrast with similar siblings such as pinterest_run_conversion_product_report, so it is clear but not fully differentiated.

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

Usage Guidelines3/5

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

The description gives an explicit 'Use for...' list of scenarios, which implies intended usage. It stops short of telling the agent when NOT to use this tool or which sibling to choose instead, such as pinterest_run_report or pinterest_run_conversion_product_report. Some guidance exists, but exclusions and alternatives are absent.

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

pinterest_run_conversion_product_reportC

Run Pinterest async conversion product reporting by brand, category, brand+category, SKU, or SKU group via reports/brand_category_sku.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoCAMPAIGN
limitNo
columnsNo
endDateYes
startDateYes
adGroupIdsNo
reportNameNoPinterest Conversion Product Report
adAccountIdNo
campaignIdsNo
granularityNoTOTAL
productSkuIdsNo
viewWindowDaysNo
clickWindowDaysNo
conversionReportTimeNoTIME_OF_AD_ACTION
conversionProductBreakdownNoPRODUCT_BRAND_AND_CATEGORY
conversionProductAttributionTypeNoDEFAULT

TDQS

C2.7/5.0
Behavior2/5

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

The description discloses that the report is 'async' and names the API endpoint, which are useful behavioral signals. However, with no annotations and no output schema, it does not explain what the tool returns, whether it merely submits a job that must be polled, what side effects occur, or any rate or data limits.

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

Conciseness5/5

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

The description is a single sentence with an active verb up front, no filler, and the key scoping information placed early. Every word contributes to understanding the tool's core action and object.

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

Completeness1/5

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

This is a 16-parameter async report tool with no annotations, no output schema, and no parameter coverage in the schema description. The one-sentence description does not explain required inputs, how to specify an ad account, how results are retrieved, or how this tool fits among the many run_* and validate_report siblings, making it far from complete.

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

Parameters2/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 compensate for the 16 parameters. It adds meaning for the `conversionProductBreakdown` parameter by listing brand, category, brand+category, SKU, and SKU group, but it says nothing about required dates, ad account, filters, windows, granularity, columns, or attribution, leaving most parameters unexplained.

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

Purpose4/5

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

The description states a specific verb ('Run'), a clear resource ('Pinterest async conversion product reporting'), and names the breakdown dimensions plus the API endpoint. It is clearly differentiated from generic reporting by the 'conversion product' focus, though it does not explicitly distinguish itself from sibling report tools like pinterest_run_catalog_report or pinterest_run_targeting_report.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over the many sibling report tools, no mention of prerequisites such as an ad account ID, and no exclusions or alternative names. The usage context is only implied by the name and the phrase 'conversion product reporting.'

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

pinterest_run_reportB

Run a read-only Pinterest Ads report. Auto-routes old/wide or explicit async requests through Pinterest async reports. Uses raw Pinterest reporting column names.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoCAMPAIGN
limitNo
columnsNo
endDateYes
filtersNo
entityIdsNo
startDateYes
adAccountIdNo
granularityNoDAY
executionModeNoauto
targetingTypesNo
viewWindowDaysNo
clickWindowDaysNo
attributionTypesNo
reportingTimezoneNoPINTEREST_TIME_ZONE
conversionReportTimeNoTIME_OF_AD_ACTION
engagementWindowDaysNo

TDQS

B3.2/5.0
Behavior4/5

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

With no annotations, the description does the transparency work: it declares the operation is read-only, reveals that old/wide or async requests are auto-routed, and warns that column names are raw Pinterest names. These are non-obvious, useful behavioral facts. It stops short of covering pagination, error handling, permissions, or return format.

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

Conciseness5/5

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

Three short sentences with no filler. The most important fact, read-only Pinterest Ads report, is front-loaded, followed by the key routing behavior and the column-name caveat.

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

Completeness2/5

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

For a tool with 17 parameters, no output schema, and no annotations, this description is too thin to allow correct invocation. It does not explain date formats, filter/entityIds shapes, return payloads, or how raw column names map to results. It provides safe selection-level context but not execution-level completeness.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needs to compensate for 17 parameters. It only hints at two: raw column names for 'columns' and async/auto routing for 'executionMode'. It provides no meaning for required dates, level, filters, entityIds, or attribution parameters.

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

Purpose4/5

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

The description states a clear verb and resource: 'Run a read-only Pinterest Ads report.' It adds useful distinguishing details like auto-routing to async for old/wide requests and raw Pinterest column names. However, it does not explicitly differentiate itself from the many sibling report tools such as run_targeting_report or run_catalog_report.

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

Usage Guidelines2/5

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

The description explains some internal routing behavior ('old/wide or explicit async requests') but gives no guidance on when to choose this tool over sibling report tools. There are no exclusions, prerequisites, or explicit use-case instructions, leaving selection to inference.

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

pinterest_run_specialized_exportB

Start or inspect non-mutating Pinterest data jobs for Marketing Mix Modeling (MMM), bulk advertiser entity downloads, or catalog diagnostics. START creates only a report/export artifact; it never updates delivery entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNoMMM or catalog report token required by STATUS.
actionNoSTART
requestNoPinterest request body required by START.
exportTypeYes
adAccountIdNo
bulkRequestIdNoBulk request ID required by BULK_ENTITIES STATUS.
includeDetailsNo

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It explicitly labels the tool 'non-mutating' and states that START 'creates only a report/export artifact; it never updates delivery entities,' which is strong side-effect transparency. It does not cover async polling behavior or permissions, so it is not a perfect 5.

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

Conciseness5/5

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

The description is two compact sentences with the core action and scope front-loaded. Every clause adds useful information, and there is no repetition of schema fields or filler.

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

Completeness2/5

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

This is a complex 7-parameter tool with nested objects, no output schema, and no annotations, but the description gives no START-vs-STATUS parameter matrix, no per-exportType payload guidance, and no return behavior. An agent can grasp the tool's purpose but is not equipped to confidently construct valid calls for all variants.

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

Parameters2/5

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

Schema description coverage is only 43%, yet the description does not explain the roles of request, adAccountId, includeDetails, bulkRequestId, or token relationships. It only loosely maps export categories to the exportType enum, so it fails to compensate for the undocumented parameters.

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

Purpose4/5

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

The description uses specific verbs ('Start or inspect') and states a concrete resource: non-mutating Pinterest data jobs for MMM, bulk advertiser entity downloads, or catalog diagnostics. It is clear about the tool's scope, though it does not explicitly differentiate it from closely named siblings like pinterest_run_catalog_report or pinterest_get_catalog_diagnostics.

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

Usage Guidelines3/5

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

The description implies when to use the tool by naming its three export categories and the START/STATUS operations. However, it provides no explicit when-not-to-use guidance and names no alternatives among the many sibling reporting tools, leaving the agent to infer selection.

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

pinterest_run_targeting_reportA

Run live targeting analytics for an ad account, campaigns, ad groups, or ads, broken down by age, gender, location, interest, keyword, audience, placement, device, or other Pinterest targeting types. For data older than the sync window, use pinterest_run_report with targetingTypes and executionMode=async.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoAD_GROUP
queryNoAdditional documented query parameters for the selected fixed GET endpoint.
columnsNo
endDateYes
entityIdsNo
startDateYes
adAccountIdNo
granularityNoDAY
targetingTypesYes
viewWindowDaysNo
clickWindowDaysNo
attributionTypesNo
reportingTimezoneNoPINTEREST_TIME_ZONE
conversionReportTimeNoTIME_OF_AD_ACTION
engagementWindowDaysNo

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must carry behavioral disclosure on its own. It adds 'live' and the sync-window concept, but does not disclose read-only nature, permissions, report generation side effects, return shape, pagination, or rate limits. For a report operation with no annotation coverage, this is a significant gap.

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

Conciseness5/5

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

Two sentences, each earning its place: the first states the core function, the second handles the alternative routing. It is front-loaded with the actionable verb and resource, with no filler or repetition of schema fields.

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

Completeness2/5

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

This is a 15-parameter report tool with no annotations and no output schema. The description captures the high-level purpose and one routing rule, but does not explain the required parameters, what kind of result is returned, sync-window semantics, or how to choose between this and the many sibling report tools. It is far from complete enough for reliable invocation.

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

Parameters2/5

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

Schema description coverage is only 7%, so the description must compensate for the 15 parameters. It does provide some meaning for targetingTypes and level by mentioning age/gender/location dimensions and ad-account/campaign/ad-group/ad levels, but it leaves startDate, eendDate, entityIds, granularity, attribution windows, timezone, and other required/optional parameters unexplained.

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 description states a specific verb ('Run'), resource ('targeting analytics for an ad account, campaigns, ad groups, or ads'), and the breakdown dimensions (age, gender, location, etc.). It also differentiates itself from pinterest_run_report by calling out the 'live' nature and sync-window boundary.

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?

The description explicitly says when NOT to use this tool: for data older than the sync window, use pinterest_run_report with targetingTypes and executionMode=async. This gives an agent a clear routing rule and an alternative in the sibling set.

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

pinterest_validate_reportA

Validate and preview how a Pinterest report will execute. Returns sync/async routing, endpoint, level, columns, attribution settings, and warnings without calling performance endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoCAMPAIGN
columnsNo
endDateYes
entityIdsNo
startDateYes
adAccountIdNo
granularityNoDAY
executionModeNoauto
targetingTypesNo
viewWindowDaysNo
clickWindowDaysNo
attributionTypesNo
conversionReportTimeNoTIME_OF_AD_ACTION
engagementWindowDaysNo

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral disclosure. It clearly states what the tool does not do (call performance endpoints) and lists what it returns: sync/async routing, endpoint, level, columns, attribution settings, and warnings. It stops short of disclosing read-only side-effect status, error behavior, or permission requirements, but still offers solid transparency for a validation/preview tool.

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

Conciseness5/5

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

One tight sentence front-loads the action and purpose, then lists the key scoped outputs with zero filler. Every clause earns its place and the description remains easy to scan.

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

Completeness2/5

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

Given 14 parameters, no schema descriptions, no annotations, and no output schema, the description is too sparse. It mentions some return categories but does not clarify required parameter semantics, date handling, default interactions, or what warnings look like. A complex validation tool like this needs more context to be invoked reliably.

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

Parameters2/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 compensate for 14 parameters. The description only names broad groups like level, columns, attribution settings, and sync/async routing. It does not explain critical parameters such as startDate, endDate, entityIds, adAccountId, granularity, viewWindowDays, clickWindowDays, or conversionReportTime, leaving most of the parameter space semantically opaque.

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 description uses a specific verb-resource pair: 'Validate and preview how a Pinterest report will execute.' It also distinguishes itself from execution tools by saying it returns routing and settings 'without calling performance endpoints,' which separates it from pinterest_run_report and similar report tools.

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

Usage Guidelines3/5

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

The phrasing implies this is a pre-flight check before running a real report, especially via 'without calling performance endpoints.' However, it never explicitly names pinterest_run_report or states 'use this when you want to preview, use run_report when you actually want data.' Usage context is clear but not fully explicit.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 26 tool updatesv1.0.0
    • First observedpinterest_estimate_delivery
    • First observedpinterest_get_account_entities
    • First observedpinterest_get_audience_insights
    • First observedpinterest_get_audiences
    • First observedpinterest_get_billing_and_orders
    • First observedpinterest_get_business_assets
    • First observedpinterest_get_catalog_diagnostics
    • First observedpinterest_get_catalog_inventory
    • First observedpinterest_get_conversion_setup
    • First observedpinterest_get_creative_assets
    • First observedpinterest_get_delivery_metrics
    • First observedpinterest_get_keyword_intelligence
    • First observedpinterest_get_lead_assets
    • First observedpinterest_get_organic_inventory
    • First observedpinterest_get_pin_analytics
    • First observedpinterest_get_platform_resources
    • First observedpinterest_get_targeting_options
    • First observedpinterest_get_trends
    • First observedpinterest_health_check
    • First observedpinterest_list_ad_accounts
    • First observedpinterest_run_catalog_report
    • First observedpinterest_run_conversion_product_report
    • First observedpinterest_run_report
    • First observedpinterest_run_specialized_export
    • First observedpinterest_run_targeting_report
    • First observedpinterest_validate_report

TDQS

B3.4/5.0

Scored across 26 tools

Disambiguation3/5

Several tool pairs overlap at the edges—catalog_inventory vs catalog_diagnostics, delivery_metrics vs platform_resources, and multiple run_* report tools—cover closely related Pinterest API areas. The descriptions are detailed and do disambiguate, but an agent must read carefully to avoid selecting the wrong endpoint.

Naming Consistency5/5

All tools use the consistent pinterest_ prefix and follow snake_case verb_resource naming like get_*, list_*, run_*, validate_*, and estimate_*. The small get/list variation is conventional rather than inconsistent.

Tool Count3/5

At 26 tools, the server sits just over the 16–25 'heavy' band, so the count is high. The breadth of Pinterest Ads read-only surfaces gives each tool a reason to exist, but consolidation around report/export runners would make the set easier to navigate.

Completeness5/5

The set covers the major read-only Pinterest Ads domains: accounts, reporting, catalogs, targeting, audiences, creative, business, billing, organic, trends, and platform readiness. Since the tools are explicitly non-mutating, missing write operations are by design rather than a gap.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Extends the official Google Ads MCP with a safe write layer for creating paused-by-default Search campaigns and an account auditor, all running locally with no hosted dependencies.
    13
    1
    Apache 2.0
  • A
    license
    C
    quality
    D
    maintenance
    MCP server for the Meta Marketing API with 118 typed tools across ads, insights, pixels/CAPI, pages, Instagram, WhatsApp, catalogs, audiences, leads, and billing, featuring secure token storage and a confirmation gate on destructive calls.
    100
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A read-only MCP server for querying Meta Ads accounts through Meta's Marketing API. It provides tools to retrieve ad accounts, campaigns, ad sets, ads, and performance insights.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables management of Google Ads accounts via MCP, providing read and write tools for campaigns, ad groups, keywords, assets, and more, with support for reporting and mutations.
    -