Skip to main content
Glama

Meta Ad Library Spend MCP by AdSpendSpy

List advertiser ads

list_brand_ads
Read-onlyIdempotent

List creative summaries for one tracked advertiser, newest internal ID first, or with sort spend highest latest cumulative estimated spend first (use it for an advertiser's top ads). pagination.next_cursor returns the next page. Each ad carries internal_ad_id (AdSpendSpy ID) and meta_ad_id (the ad on Meta).

Tool call template

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

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "page_id": "<page_id>"
    },
    "name": "list_brand_ads"
  }
}

Input Schema

NameRequiredDescriptionDefault
sortNonewest = newest internal ID first; spend = highest estimated spend first.newest
limitNo
cursorNoOpaque pagination.next_cursor returned by the previous page with the same filters.
page_idYesMeta advertiser page ID, kept as a string.
media_typeNoall
active_onlyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, and closed-world behavior, so the description need not repeat safety. It adds real context beyond that: the pagination model ('pagination.next_cursor returns the next page') and the identity of the two returned IDs (AdSpendSpy internal_ad_id vs the Meta meta_ad_id). It stops short of describing result shape or page-size behavior.

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?

Two tight sentences with the resource, ordering, pagination, and return identifiers front-loaded; nothing is padding. The second ordering phrase ('sort spend highest latest cumulative estimated spend first') is slightly tangled but still decodable.

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 6-parameter read tool with no output schema, the description covers ordering, pagination, and returned IDs, which is the critical path. It leaves the filtering parameters (media_type, active_only, limit) unexplained and gives no basis for choosing between this tool and get_advertiser_ads.

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 50%: sort, cursor, and page_id are documented in the schema, and the description reinforces the sort semantics with a usage rationale. But limit, media_type, and active_only are undocumented in both places, and the description does nothing to compensate for those gaps.

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 names a specific verb and resource ('List creative summaries for one tracked advertiser') plus the ordering semantics, so the operation is unambiguous. It does not differentiate itself from the very similar sibling get_advertiser_ads or get_ad_details, which is the one thing keeping it below 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 Guidelines3/5

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

There is a genuine usage cue: 'use it for an advertiser's top ads' tied to sort=spend, which tells the agent when that mode applies. However there is no guidance on when to prefer this over siblings like get_advertiser_ads, get_ad_details, or list_new_ads, and no exclusions or prerequisites.

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