Skip to main content
Glama

List competitor ads

list_competitor_ads
Read-onlyIdempotent

Ads the brand's competitors are running on every ad channel the brand watches them on (Meta, TikTok, Snapchat, Google, LinkedIn), newest first: channel, copy, call to action, format, platforms, countries (ISO codes), days active, media URLs, the landing page, and the audience the library discloses (targeting, reach or impressions by country, age and gender, payer). Up to limit per page (30 unless given); pass nextCursor for the next.

Input Schema

NameRequiredDescriptionDefault
limitNoHow many to return. Defaults to 30.
cursorNonextCursor from the previous page.
brandIdNoA brand id from get_workspace or list_brands, or the brand's name. Omit it when the organization has a single brand.
channelNoOnly competitors watched on this ad channel. Omit for every channel the brand watches them on.
regionsNoOnly ads reaching one of these countries (ISO 3166-1 alpha-2 codes).
platformNoOnly Meta ads shown on this Meta platform; ads on other channels have no such platform.
mediaTypeNo
activeOnlyNoOnly ads still running.
competitorIdNoA competitor id from list_competitors. Omit for every competitor the brand watches.

Output Schema

NameRequiredDescriptionDefault
adsYes
nextCursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / brandId / description
      Previous value: -"A brand id from get_workspace or list_brands. Omit it when the organization has a single brand."New value: +"A brand id from get_workspace or list_brands, or the brand's name. Omit it when the organization has a single brand."
  2. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description earns credit for the extra traits it does disclose: results are ordered newest first, page size defaults to 30 unless given, and the next page comes from nextCursor. It adds real behavioral context beyond the annotation block, though it says nothing about empty results or what happens when the brand has no watched competitors.

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

Conciseness3/5

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

It is one front-loaded sentence but very densely packed, spending most of its length enumerating returned fields that the output schema already declares. The pagination and ordering facts are valuable; the field list is largely redundant and pushes the sentence toward bloat.

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?

With an output schema present, the field enumeration is not needed, and the description leaves out the relational context most relevant to a 9-parameter tool with many competitor siblings: when to reach for this versus get_competitor_audience or get_competitor_analyses. It is adequate to call the tool correctly but not complete for selection.

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 coverage is 89%, so the schema already explains each parameter thoroughly, including the brandId/competitorId omission rules and the Meta-only platform constraint. The description restates the limit default and cursor continuation without adding syntax or semantics the schema lacks, so the baseline 3 applies.

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 ('Ads the brand's competitors are running') plus the channel scope and ordering, so the agent knows exactly what it retrieves. It never distinguishes itself from near-siblings like get_competitor_analyses, get_competitor_audience, or list_competitors, which is the one gap keeping this at 4.

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 is only implied by the scope language ('every ad channel the brand watches them on', 'Omit for every competitor the brand watches'). There is no explicit 'use this when…' or 'use get_competitor_audience instead for…' guidance, which matters given several competitor-related siblings.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources