A remote MCP server on Cloudflare Workers providing access to ad library and social media data from Facebook, Google, TikTok, and Reddit via the ScrapeCreators API
The server provides 15 tools across Facebook, Google, TikTok, and Reddit advertising/content platforms. Tool names follow verb_noun patterns (search_ads, get_details) and are generally clear. Descriptions are well-written (average ~150 chars) and explain WHEN to use each tool. Most parameters have type constraints (enums for sort/status/media_type) and descriptions. However, output schemas are entirely absent from visible code, no documentation of what these tools return to the LLM. This is a critical gap for agent composition. Parameter descriptions are solid but could include format constraints (e.g., date formats, ID patterns). Error handling is undocumented. Some tools have optional parameters that could benefit from clearer mutual exclusivity guidance (e.g., facebook_ad_details accepts id OR url).
Get detailed information about a specific Facebook ad from the Meta Ad Library. Provide either the ad ID or the full ad URL. Returns metadata including spend, impressions, demographic distribution, target locations, and creative content.
Get all ads currently or previously run by a specific company/page on Facebook. Provide either a page ID or company name. Use the facebook_search_companies tool first if you need to find a company's page ID.
Search the Facebook (Meta) Ad Library by keyword. Filter by country, ad status, media type, date range, and more. Returns a list of matching ads with their metadata. Use the cursor parameter to paginate through large result sets.
Search for company pages in the Facebook Ad Library by name. Returns a list of matching companies with their page IDs. Use this tool first to find a company's page ID, then use facebook_company_ads to get their ads.
Get detailed information about a specific Google ad creative from the Google Ad Transparency Center. Requires the creative ID.
Output schemas completely missing from all tools. No documentation of what fields/structure agents should expect in responses. This violates pattern:tool-response-shaper and forces LLMs to guess at response shape, breaking downstream tool composition.
No error handling documentation. Tools do not indicate which errors are retryable, what values triggered the error, or what the LLM should do next. Violates pattern:recovery-guide and pattern:error-classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Search for advertisers in the Google Ad Transparency Center by name. Returns matching advertisers with their IDs. Use this to find an advertiser ID, then use google_company_ads to see their ads.
Get all ads run by a specific company in the Google Ad Transparency Center. Provide either a company name or Google advertiser ID. Filter by region, platform, and ad format. Use google_advertiser_search first if you need to find an advertiser ID.
Get detailed information about a specific Reddit ad by its ID. Returns the ad creative, targeting, impressions, and spend data.
Get all comments on a Reddit post. Provide either the post ID or the full URL.
Search across all of Reddit for posts matching a query. Filter by sort order and time period. Use this for broad searches; use reddit_subreddit_search for searches within a specific subreddit.
Search the Reddit Ad Library for ads matching a query. Returns ad creatives, targeting info, and spend data from Reddit's advertising transparency center.
Get detailed information about a specific subreddit including subscriber count, description, rules, and metadata.
Get posts from a specific subreddit. Sort by best, hot, new, top, or rising. Filter by time period for 'top' sort.
Search within a specific subreddit for posts matching a query. Filter by sort order and time period.
Search the TikTok Commercial Content Library (Ad Library) by keyword. Find ads running on TikTok filtered by country. Use the cursor parameter to paginate through results.
Parameters with mutual exclusivity not explicitly documented. facebook_ad_details and facebook_company_ads accept id OR url/pageId OR companyName, but descriptions don't state 'provide exactly one of...' or mark them properly in schema. LLMs may pass multiple conflicting params.
Date format specifications missing. start_date/end_date in facebook_search_ads state 'YYYY-MM-DD format' in description but should also declare a regex pattern or format constraint in schema. Same for time enums, descriptions lack guidance on what 'day', 'week', 'month' mean relative to call time.
Pagination cursor semantics undocumented. Multiple tools accept 'cursor' but descriptions do not explain: Is it opaque? Should the LLM store and reuse it? Does it expire? What does a null/missing cursor mean? Violates pattern:paginated-result.