Adaga solutions — Data APIs Toolbox
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
12 pay-per-event data APIs: Maps, TikTok, Instagram, YouTube, LinkedIn, RAG, reviews, fuel, AEO.
| Author | io.github.jeffreyturov-dev |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2047 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Adaga solutions — Data APIs Toolbox": {
"url": "https://adagasolutions.lu/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (13)
local_presence_auditDeep audit of ONE local business's online presence in a single run: Google Business Profile data (rating, review count, category, contact), recent reviews with urgency classification and owner-response detection, website AI-readiness scan (llms.txt, JSON-LD, robots.txt AI-crawler rules), a transparent presence score /100, and ready-to-use deliverables (publishable llms.txt, LocalBusiness JSON-LD, AI-drafted review responses, prioritized action plan). Use when you need the FULL picture on one specific business — e.g. before selling it marketing services, or to check whether ChatGPT, Perplexity and Gemini can 'see' it. Use google_maps_scraper instead when you need a raw LIST of many businesses (no audit); use aeo_ai_visibility_checker instead when you only need the free website-only technical check (no Google Business data, no reviews); use review_radar instead for ongoing monitoring that flags only NEW reviews over time. Auth: Apify API token required (Authorization: Bearer). Rate limits: 60 calls/min/IP on this facade; results capped at 100 items per call, no pagination. Pricing: $1.00 per run + $0.50 per business audited.
Parameters:
query— string — Business name + city used to find its Google Maps profile (e.g. 'Boulangerie Paul Mersch' or 'restaurant Esch-sur-Alzette'). The first, most relevant place is audited. Optional if websiteUrl alone is enough for you.dryRun— boolean — When true, the actor runs fully but skips all pay-per-event charges. Use it for testing and integration QA.language— string — Google Maps interface language code (fr, en, de...). Affects localized labels parsing.maxReviews— integer — Number of most recent Google reviews to scrape and classify (urgency detection, owner-response check). Between 1 and 30.websiteUrl— string — Full URL of the business website (e.g. https://example.lu). Scanned without a browser for AI-readiness: JSON-LD structured data, LocalBusiness schema, meta description, H1, Open Graph, /llms.txt, and robots.txt rules for AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot).proxyConfiguration— object — Apify proxy settings. Residential proxies are strongly recommended — Google Maps blocks datacenter IPs. Defaults to RESIDENTIAL.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
google_maps_scraperExtract local business data from Google Maps IN BULK: names, addresses, phones, ratings, review counts, websites, GPS coordinates — up to 100 businesses per call (refine the query for narrower results). Use when you need lead lists, competitor maps or market research across a city or search query — i.e. MANY businesses as raw data, with no scoring or audit. Use local_presence_audit instead when you need a deep scored audit of ONE business (GBP + reviews + website AI-readiness + deliverables); use review_radar instead to detect only NEW reviews on businesses you already track. Returns an array of business objects, everything in one response (no pagination; truncated beyond 100 items). Auth: Apify API token required (Authorization: Bearer). Rate limit: 60 calls/min/IP on this facade. Pricing: $1.00 per run + $0.03 per business scraped.
Parameters:
queries— array — Array of search queries to scrape. Use this for multiple searches in one run.language— string — Language code for Google Maps results (e.g., 'fr', 'en', 'de', 'es')maxResults— integer — Maximum number of businesses to extract per querymaxReviews— integer — Maximum number of reviews to extract per businesssearchQuery— string — What to search on Google Maps (e.g., 'restaurants Paris', 'plumbers London', 'hotels New York')includeReviews— boolean — Whether to extract user reviews for each businessproxyConfiguration— object — Proxy settings. Residential proxies are recommended for Google Maps.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
tiktok_scraperScrape TikTok profiles and videos: follower counts, likes, video metadata and stats. Use when researching influencers, tracking social engagement or analyzing TikTok content. Returns profile and video objects. Pricing: $0.01 per profile + $0.002 per video.
Parameters:
profiles(required) — array — List of TikTok usernames or profile URLs to scrape (e.g., ['mrbeast', 'https://www.tiktok.com/@charlidamelio'])hashtags— array — List of hashtags to scrape trending videos from (without #)maxVideosPerProfile— integer — Maximum number of videos to extract per profile
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
instagram_scraperScrape Instagram profiles and hashtag posts: followers, posts, engagement metrics. Use when vetting influencers, monitoring brands or tracking competitors on Instagram. Returns profile objects with recent posts. Pricing: $0.01 per profile scraped.
Parameters:
profiles(required) — array — List of Instagram usernames to scrape (without @). Example: ["nasa", "cristiano"]
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
youtube_scraperScrape YouTube videos and channels: views, subscribers, metadata, descriptions. Use when researching content trends, analyzing creators or building YouTube datasets. Returns video and channel objects. Pricing: $0.002 per video scraped.
Parameters:
videoUrls— array — YouTube video URLs or IDs to scrape. Supports youtube.com/watch, youtu.be, and /shorts/ formats.maxResults— integer — Maximum number of results per search query (1-50)channelUrls— array — YouTube channel URLs to scrape. Supports @handle, /channel/, and /c/ formats.searchQueries— array — Search YouTube for videos matching these queries. Returns top results with full video data.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
linkedin_profile_scraperExtract public LinkedIn profile data with this scraper: name, headline, experience, company. Use when enriching B2B leads or doing recruiting research on LinkedIn. Returns structured profile objects. Pricing: $0.02 per profile scraped.
Parameters:
profileUrls(required) — array — List of LinkedIn profile URLs to scrape (e.g., ['https://www.linkedin.com/in/williamhgates/'])includeSkills— boolean — Whether to extract the skills sectionincludeExperience— boolean — Whether to extract work experience details
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
rag_web_browserFetch web pages and convert them into clean LLM-ready text for RAG pipelines. Use when an agent needs readable page content from the web without HTML noise — a lightweight browser alternative for retrieval. Returns per-page cleaned text with metadata. Pricing: $0.003 per page crawled.
Parameters:
lang— string — Language code for search results (e.g. en, fr, de)urls— array — Direct page URLs to extract content from (instead of searching). Example: ["https://example.com/article"]query— string — Google search query. Top results are fetched and extracted. Example: 'best crm software 2026'maxResults— integer — Maximum number of search results / pages to processoutputFormat— string — Content format: markdown (best for LLM/RAG) or plain text
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
api_breaking_change_radarMonitor public APIs and detect breaking changes by diffing OpenAPI specs and classifying changelogs — a radar for the APIs you depend on. Use when you need early warning before an API change breaks your integration. Returns change events classified by severity. Pricing: $0.50 per run + $0.005 per API checked.
Parameters:
apis(required) — array — List of APIs to watch. For type 'openapi', url must point to a raw OpenAPI spec (JSON or YAML). For type 'github-releases', url must be 'owner/repo' or a GitHub repo URL. For type 'rss', url must be an RSS/Atom changelog feed.dryRun— boolean — When true, the actor performs the full detection but does NOT charge any pay-per-event fee. Use for testing your configuration.maxApis— integer — Safety cap on the number of APIs processed in one run.webhookUrl— string — POST endpoint called at the end of each run with a JSON summary (counts by class + top critical changes). Slack/Discord/Teams incoming-webhook compatible payload is included.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
review_radarMonitor Google Maps reviews and detect only NEW ones since previous runs (stateful tracking per business), with Bayesian urgency classification and optional Slack alerts — your reputation radar. Use when tracking review activity OVER TIME for businesses you already know. Use google_maps_scraper instead for one-shot bulk extraction of business data; use review_pitch_generator instead to turn existing bad reviews into a sales pitch and shareable report; use local_presence_audit instead for a one-time full presence audit. Returns review objects flagged isNew with urgency scores. Side effects: sends a Slack notification ONLY if you provide your own Slack webhook URL in the input — no messages are sent otherwise. Auth: Apify API token required (Authorization: Bearer). Rate limit: 60 calls/min/IP on this facade. Pricing: $0.25 per run + $0.01 per new review.
Parameters:
query— string — Google Maps search, e.g. 'restaurants Esch-sur-Alzette' — takes the first maxPlaces results. Ignored if placeUrls is non-empty.dryRun— boolean — Testing mode: skips Slack alerts, state writes, and billing eventsmaxPlaces— integer — How many businesses to monitor (from placeUrls or the search query)placeUrls— array — Google Maps place URLs (/maps/place/...) to monitoralertThreshold— integer — New reviews with this rating or lower trigger a Slack alertslackConnector— string — MCP connector to your Slack workspace. Authorize once in Apify Console → Settings → Integrations. The Actor only sees a connector ID. Leave empty to skip alerts (dataset only).maxReviewsPerPlace— integer — How many recent reviews to scrape per businessproxyConfiguration— object — A residential proxy is strongly recommended — Google Maps blocks datacenter IPs.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
review_pitch_generatorGenerate pre-sales reports from a business's worst Google Maps reviews: HTML report plus ready-to-send pitch. Use when doing agency outbound and you want to show prospects their visible bad reviews. Use review_radar instead to monitor for NEW reviews over time; use local_presence_audit instead for a full presence audit with score and marketing deliverables; use google_maps_scraper instead for raw bulk business lists. Returns pitch text and a shareable report URL per business. SIDE EFFECT: can email the pitch directly to prospects via your own SMTP account, but ONLY when you explicitly set sendApproval: true AND provide smtpUser/smtpPassword — with default settings it sends nothing and only generates reports. Outbound sends are rate-limited: max 5 emails per run (configurable), 20 s between sends, 20 emails/day global cap. Auth: Apify API token required (Authorization: Bearer). Facade rate limit: 60 calls/min/IP. Pricing: $0.25 per run + $0.10 per pitch generated.
Parameters:
mode— string — generate = scrape + pitch + delivery. check-engagement = IMAP reply watch only (no Maps scraping, runs even under Google rate-limit)query— string — Google Maps search, e.g. 'restaurants Esch-sur-Alzette' — takes the first maxPlaces results. Ignored if placeUrls is non-empty.dryRun— boolean — Testing mode: skips report publishing and billing eventsemailMap— object — Mapping place name or Maps URL -> recipient email for outbound delivery. Only used when sendApproval is true.smtpUser— string — Gmail address used to send reports (requires an app password). Secret input.vertical— string — Sector template for pitch/report: chr (hotels/restaurants), immobilier, sante, artisanatmaxPlaces— integer — How many prospects to analyzeplaceUrls— array — Google Maps place URLs (/maps/place/...) of the prospects to analyzesendApproval— boolean — Explicit approval gate: without it, NO email is ever sent (reports are generated only)smtpPassword— string — Gmail app password for the SMTP user. Secret input, never logged.worstThreshold— integer — Reviews at or below this rating are included in the pitch reportmaxEmailsPerRun— integer — Rate limit: maximum reports emailed in one run (plus 20s inter-send delay and a 20/day global cap)telemetryEndpoint— string — Base URL of our tracking receiver (e.g. https://track.example.com). Embeds an HMAC-signed 1px pixel in each HTML report; opens trigger CONVERSION_RECORDED.maxReviewsPerPlace— integer — How many recent reviews to scan per business when looking for the worstproxyConfiguration— object — A residential proxy is strongly recommended — Google Maps blocks datacenter IPs.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
france_fuel_pricesGet live fuel prices for about 10,000 gas stations across France (official open data, Hermès Revenu API). Use when comparing fuel prices, estimating route costs or building price datasets for France. Returns station objects with prices per fuel type. Pricing: $0.20 per run + $0.01 per 1k stations.
Parameters:
carburant— string — Filtrer par type de carburantdepartement— string — Filtrer par code département (ex: '75' pour Paris, '69' pour Lyon). Laissez vide pour toute la France.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
hotel_rate_monitoringMonitor hotel rates across booking sources for revenue management. Use when tracking competitor hotel pricing or building rate intelligence. Returns rate observations per hotel and date. Micro-pricing per event.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
aeo_ai_visibility_checkerCheck any WEBSITE's AI visibility with a 7-criteria technical AEO audit: JSON-LD, llms.txt, AI bots in robots.txt and more. Use when you need to know if a site can be cited by ChatGPT, Perplexity or Claude — returns a 0-7 score with exact fixes plus a generated llms.txt draft. This audits ONLY the website (no Google Business Profile data, no reviews): use local_presence_audit instead when you need the full local-business picture (GBP + reviews + website) with a /100 score and sales deliverables. FREE — no per-run charge. Auth: Apify API token required (Authorization: Bearer) even though the actor itself is free. Rate limit: 60 calls/min/IP on this facade; full report returned in one response, no pagination.
Parameters:
url(required) — string — Full URL of the site to audit (e.g. https://example.lu). The checker fetches the homepage, /llms.txt and /robots.txt.generateLlmsTxt— boolean — Also generate a ready-to-publish llms.txt draft for the audited site (delivered in the dataset and in the key-value store as llms.txt).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.