MCP docs › Recipes
Recipes
Each of these is also an MCP prompt — clients that support prompts can offer them as one-click workflows.
Build an enriched local lead list
A contactable, verified B2B prospect list for one niche in one city.
google_maps_search → website_email_find → email_verify
- google_maps_search { query: <niche>, location: <city>, limit: 25 } — the businesses, with phone/website/rating.
- For each row that has a website: website_email_find { website: <that domain> } — public emails, phones, socials.
- email_verify { emails: [...collected addresses] } — drop anything that is not 'deliverable' before you hand the list over.
- Report per lead: name, phone, website, best verified email, rating/review count.
Find businesses that are NOT advertising (agency prospecting)
A ranked list of local businesses running no ads, with an opening line for each.
ad_library_lead_finder → google_ads_transparency → website_email_find
- ad_library_lead_finder { niche, city, mode: 'cold', limit: 20 } — one call does the Maps search AND both ad-library checks.
- Set check_meta:false for a fast Google-only sweep; leave it true for the full picture (slower — expect a job handle back).
- Treat google_ads_status/meta_ads_status = 'unknown' as 'not checked', never as 'not advertising'.
- Optionally website_email_find on the top-scoring rows to get a contact address.
Audit a competitor's live advertising
What a named brand is running right now, on Google and on Meta.
google_ads_transparency → facebook_ads_scrape
- google_ads_transparency { query: <brand>, country } — is there a verified advertiser, and how many live ads?
- facebook_ads_scrape { query: <brand>, country, status: 'active' } — the actual creatives, copy and CTAs.
- Zero results from either is a real finding (not advertising there), not a failure.
Answer a question from live web content
A sourced answer built from pages that exist today, not from memory.
google_search_scrape → google_search → scrape_web_pages
- google_search_scrape { query, max_results: 5, text_chars: 5000 } — searches AND reads each page in one call.
- If you already have the URLs, skip the search: scrape_web_pages { urls: [...] }.
- If you only need to know who ranks (no page content), google_search is much faster and cheaper.
- Cite the final_url of each page you used; check engine_used before calling results 'Google's ranking'.
Summarise or mine a YouTube channel
What a channel publishes and what was actually said in it.
youtube_extract → youtube_transcript → youtube_competitor
- youtube_extract { url: <channel url>, max_videos: 20 } — the recent uploads with view counts.
- youtube_transcript { urls: [...the video URLs you care about] } — full text + timestamps to quote from.
- youtube_competitor { urls: [2-5 channels] } when the question is comparative.
Clean an email list before a send
Only addresses that will deliver, with throwaways removed.
disposable_email_check → email_verify
- disposable_email_check { emails: [...] } first — it is fast and removes the obvious junk cheaply.
- email_verify { emails: [...survivors], do_smtp: true } — syntax, MX and a live mailbox probe.
- Keep verdict = 'deliverable'; treat catch-all domains as risky, not safe.
Export a competitor's catalogue and prices
Every product, variant and price from a store.
product_scrape → scrape_web_pages
- product_scrape { url: <store homepage>, max_products: 0 } for the whole catalogue (use a number to cap it).
- Filter server-side with min_price/max_price/category/in_stock_only instead of pulling everything and filtering yourself.
- For a single product page you already have, scrape_web_pages is lighter.