Skip to main content
Glama

Social Media Data API: Posts, Profiles, Comments, Search and Mentions

Meta Ad Library search

facebook_ads
Read-only

Facebook Ad Library Search: search the public Meta Ad Library by keyword for ads on Facebook and Instagram. Per ad the page name, ad text, active status, start and end dates, publisher platforms, call to action, landing link and media links in the shared social schema; next_cursor gives the next page. Competitor ad research. Bad input is free; not found or no match is not charged. Price: $0.02 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Input Schema

NameRequiredDescriptionDefault
qYesSearch text (1-200 characters).
cursorNonext_cursor of the previous page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description discloses pricing ($0.02 per successful call), the x402 payment mechanism and its exact location (_meta["x402/payment"]), and the billing edge cases (bad input free, not-found/no-match not charged), plus pagination via next_cursor. These are exactly the non-obvious operational facts an agent needs before calling a paid endpoint.

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?

Front-loaded with the purpose and platform scope, then return fields, use case, and payment terms — no filler sentences. The dense semicolon-chained clauses pack a lot per line, which is efficient if slightly compressed for a payment-critical instruction.

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?

With no output schema, the description usefully enumerates returned fields and the pagination cursor, and it covers the payment requirement that would otherwise block a call. Minor gaps remain: no page size / result-count expectation, and no indication of what the keyword accepts (plain text vs. operators) beyond the 200-character limit.

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 100% and both parameters are already documented ('Search text (1-200 characters)' and 'next_cursor of the previous page'). The description's 'next_cursor gives the next page' merely restates the schema's cursor semantics, so it adds little beyond the baseline for a fully documented two-parameter schema.

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

Purpose5/5

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

States a specific verb and resource — search the public Meta Ad Library by keyword for ads on Facebook and Instagram — which immediately distinguishes it from the sibling platform searches (x_search, tiktok_search, social_search). It also enumerates what comes back per ad, so an agent knows what this tool yields, not just what it queries.

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 'Competitor ad research' implies the intended context, and the platform scope (Facebook/Instagram ads) implicitly separates it from the profile/posts siblings. However, there is no explicit when-to-use/when-not or a named alternative, so the agent must infer the routing boundary against tools like social_search or instagram_profile.

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