Facebook Ad Library MCP server for Claude Code and AI agents. Reads Meta's public ad data directly, so creative, spend ranges and run dates come back as structured records.
Strong foundation with 8 well-named tools, comprehensive descriptions, and proper JSON Schema definitions. All tools follow verb_noun naming (search_, list_, get_, diff_, transcribe_). Descriptions are detailed (100-250 chars typical) and explain WHEN to use each tool. Input schemas are complete with types and enums. However, output schemas are not documented in the visible code, LLMs cannot see what fields to expect from responses. Error handling guidance is absent. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Parameter descriptions are good but some lack format/constraint details (e.g., 'country' accepts any string; should specify ISO 3166-1 alpha-2 format).
Check the backend configuration and what this server can do
Track changes in an advertiser's ads over time by comparing snapshots
Fetch a single ad by its library ID with full details
Build a public Ad Library URL for a set of search filters
Fetch EU transparency data: spend, reach, and demographics for ads delivered in the EU or political/issue ads
Find advertisers by keyword search to resolve brand names to Page IDs
Search for ads by keyword or page ID with filters for country, active status, ad type, and media type
Transcribe video audio from an ad (if backend supports it)
Output schemas not documented. LLMs cannot see what fields search_ads, get_ad, get_eu_transparency, or other tools return. This forces agents to guess field names and types, increasing errors and wasting tokens on trial-and-error field extraction.
No tool annotations despite all 8 tools being read-only. Missing readOnlyHint on every tool. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Parameter format constraints missing. 'country' parameter accepts any string but should specify ISO 3166-1 alpha-2 format (e.g., 'US', 'DE'). 'libraryId' lacks format guidance. Agents may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No error recovery guidance. Tools lack descriptions of failure modes and recovery steps. E.g., if search_ads returns no results, should the agent try a broader query, different country, or different ad type? No guidance provided.
backend_status tool lacks clarity on what 'configuration' means. Description says 'Check the backend configuration and what this server can do' but does not explain what fields are returned or when to call it. Should be called first to discover capabilities.