Skip to main content
Glama
thenavidm

ScrapeCreators MCP Server

by thenavidm

Company Ads

facebook_ad_library_company_ads_post

Retrieve all ads a company runs on Facebook and Instagram via the Meta Ad Library, with filters for country, media, date, and language; use POST for large cursors.

Instructions

Fetches all ads currently running for a specific company from the Meta Ad Library. Each ad includes ad_archive_id, page_name, is_active, publisher_platform, and a snapshot with body, images, videos, and display_format. Supports filtering by country, media_type, date range, and language with cursor-based pagination. Both GET and POST are supported. If the cursor becomes too large after extensive pagination, use POST and send the same parameters in the JSON body. Potentially consumes paid API credits; requires confirm=true. Read-like POST requests do not publish to social platforms.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
trimNoSet to true for a trimmed down version of the response
cursorNoCursor to paginate through results
pageIdNoThe companies ad library page id. You can get this with my Search For Companies Endpoint. Can either use this or companyName
statusNoStatus of the ad. Defaults to ACTIVE.
accountNoNamed private ScrapeCreators account; selects credentials, not a remote account ID.
confirmNoMust be true for the specific approved credit-consuming research call.
countryNoThis can only be one country. It has to be the 2 letter code for the country. It defaults to ALL.
payloadNoComplete JSON request body instead of body flags. Preserves current endpoint fields and values.
sort_byNoSort by impressions (high to low), or Most Recent (relevancy_monthly_grouped). Defaults to impressions.
end_dateNoEnd date to search for. Format: YYYY-MM-DD
languageNoLanguage to filter ads on. Needs to be 2 letter language code, ie EN, ES, FR, etc
media_typeNoMedia type of the ad. Defaults to ALL. Meme refers to ads with image and text. Not sure why they call it meme.
start_dateNoStart date to search for. Format: YYYY-MM-DD
companyNameNoThe name of the company. Can either use this or pageId
payload_fileNoRegular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0

TDQS

A4.2/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: credit consumption, the confirm=true gate, the GET-vs-POST fallback when cursors bloat, and the explicit reassurance that read-like POSTs do not publish to social platforms (reconciling with readOnlyHint=false). These are exactly the operational facts an agent needs before invoking a paid, non-idempotent call.

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-loads the purpose, then return fields, filters, transport guidance, and the cost/confirm caveat. Four sentences with little waste, though the density of facts makes it read more like a spec than a crisp pointer.

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 the response fields (ad_archive_id, page_name, is_active, publisher_platform, snapshot contents). For a 15-parameter tool it covers the main filter surface and pagination but leaves trim/account/sort_by unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds two non-obvious mappings: the filter set (country, media_type, date range, language) and the cursor-to-payload escape hatch for oversized cursors. It does not clarify trim, account, or sort_by semantics, which stay schema-only.

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?

Names a specific verb and resource ('Fetches all ads currently running for a specific company from the Meta Ad Library') and enumerates the returned fields, which separates it from generic ad-search siblings. The 'currently running' framing slightly conflicts with the schema's status enum (ALL/ACTIVE/INACTIVE), leaving a small ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

Gives actionable routing guidance: use POST when the cursor grows too large after extensive pagination, and send the same parameters in the JSON body. It also states confirm=true is required for the credit-consuming call. It stops short of naming sibling alternatives (e.g. company search vs. ad details) that would select this tool over them.

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

Deploy Server

Other Tools