Skip to main content
Glama

Find ads

sightglass_find_ads
Read-onlyIdempotent

Search a library of real Meta ads and the landing pages they drive to. search first matches ads whose headline, copy or advertiser name contain every word, best match first, then fills the page with semantic matches, so a brand or product name works and so does a description of the ad's angle, offer or visual style. Combine it with companyIds, displayFormats, pageTypes and technologies to narrow, and with hookTypes, angleTypes, offerTags and funnelStages to filter on what the ad's creative was read as (each ad carries these in tags, null until it is read). Users say 'brands' for advertisers and 'landing pages' for site pages — map their words onto these filters. performanceScore and scoreTiers come from a transparent longevity + duplication heuristic; they are NOT spend, reach or ROAS and must never be presented as such. Returns metadata plus ready-to-view media URLs; call sightglass_get_ad for one ad's full detail, sightglass_get_site_page for the page an ad drives to. Fields the user's Replo plan doesn't include come back null and are named in that item's locked list (estimates = sales, visits and traffic); lockedCount is how many more results a higher plan shows. Say the data is on a higher plan; never estimate it yourself. Returns data only: nothing is shown to the user yet. Once you know the answer, call sightglass_show once with this call's resultId to show it as cards; the show call does not search again. Works without a Replo account: call it before asking the user to sign in.

Input Schema

NameRequiredDescriptionDefault
sortNo
limitNoResults per page: 20 by default, up to 40. Use the user's number when they give one; for more than 40, page with cursor.
cursorNonextCursor from the previous page of this same call, to get the next page. Keep every other argument the same.
searchNoAds whose headline, copy or advertiser name contain every word come first, best match first; semantic matches over the copy, creative caption and advertiser fill the rest. A brand or product name works, and so does a description of the angle, offer or visual style (for example 'before and after skin results with a discount code').
statusNo
hookTypesNoCSV of hook types: question,bold_claim,problem_callout,curiosity,proof_number,before_after,first_person_story,offer_first,us_vs_them,demo,audience_callout,contrarian,customer_testimonial,expert_or_celebrity,new_or_launch,product_showcase
offerTagsNoCSV of offer tags: discount,bundle,subscription,trial_or_sample,gift_with_purchase,financing,free_shipping,giveaway
pageTypesNoCSV of landing-page types: offer_page,advertorial,listicle,quiz,lead_capture,homepage,pdp,collection,blog,marketplace,app_store,social_profile. The stored names product, squeeze and other still work.
projectIdNoReplo project id, from list_projects: where the charge or the asset lands. Its workspace's plan applies.
angleTypesNoCSV of angle types: problem_solution,mechanism,proof,comparison,identity,founder_story,objection_handling,urgency,education,transformation,price_or_value,quality_or_craft,clean_or_non_toxic,convenience,gifting,sustainability
companyIdsNoCSV of company ids. Users usually call companies 'brands'.
scoreTiersNoCSV of testing,scaling,growing,optimized,winning. These tiers come from a transparent longevity + duplication heuristic — they are NOT spend, reach or ROAS, and must never be described as such.
workspaceIdNoReplo workspace id, from list_workspaces. Sets which workspace's plan applies; required when the user has more than one workspace.
funnelStagesNoCSV of funnel stages: cold,warm,retargeting
technologiesNoCSV of stack names on the brand's site, e.g. Shopify,Klaviyo
displayFormatsNoCSV of image,video,carousel,dco,dpa,text,other

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / search / description
      Previous value: -"Semantic search over the ad's copy, creative caption and advertiser. Describe the angle, offer or visual style you want (for example 'before and after skin results with a discount code'), not a single keyword."New value: +"Ads whose headline, copy or advertiser name contain every word come first, best match first; semantic matches over the copy, creative caption and advertiser fill the rest. A brand or product name works, and so does a description of the angle, offer or visual style (for example 'before and after skin results with a discount code')."
  2. Changed1 schema field changed
    • changedInput schema / properties / search / maxLength
      Previous value: -200New value: +1000
  3. Changed3 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / properties / projectId / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    • removedInput schema / properties / workspaceId / pattern
      Removed value: -"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
  4. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  5. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare a safe read-only, idempotent, non-destructive operation, so the safety bar is lower. The description adds genuinely valuable behavior beyond that: performanceScore/scoreTiers are a longevity+duplication heuristic and must never be presented as spend/ROAS, locked fields return null and are named in `locked`, and the call is data-only until sightglass_show is invoked with resultId. It does not describe pagination size limits (left to schema) or result ordering guarantees beyond search relevance, so it stops short of a top score.

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?

Content is front-loaded with purpose and every clause carries operational information, but it is delivered as one dense block of roughly 250 words covering search behavior, filters, scoring caveats, plan gating and the show flow. It would scan better with structure, and the performanceScore caveat is partly duplicated in the schema description of scoreTiers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 16 optional parameters and no output schema, the description carries the full burden of explaining return shape (metadata plus ready-to-view media URLs), the null/locked-field convention on lower plans, and the required follow-up show call. Nothing an agent needs to invoke this correctly or report results honestly is missing.

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 88%, so the baseline is 3 and the schema already documents most parameters including CSV enum values. The description still adds real meaning: it clarifies that `search` first does all-words matching on headline/copy/advertiser then fills with semantic matches, that a plain description of angle/offer/visual style works, and that tag-based filters read creative interpretation stored in `tags` (null until read).

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?

Opening sentence names a specific verb and resource — searching a library of real Meta ads and the landing pages they drive to — and later explicitly separates itself from sightglass_get_ad (single ad detail) and sightglass_get_site_page (destination page). An agent can identify this as the bulk discovery tool without opening a schema.

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

Usage Guidelines5/5

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

It states what `search` does, how to combine it with companyIds/displayFormats/pageTypes/technologies to narrow versus hookTypes/angleTypes/offerTags/funnelStages to filter, and routes to the sibling calls for detail views. It also explains the follow-up show flow via resultId, which is the key invocation sequence an agent would otherwise get wrong.

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