
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
apify-data-scrapers
Advanced tools
MCP server exposing 40 Apify public-data scrapers as tools (Google Maps, news, SEO, jobs, SEC, procurement, registries, and more)
mcp-name: io.github.jlucasmcrell/apify-scrapers
One MCP server gives an AI agent 40 production data extractors - Google Maps business leads, Google News, Google Autocomplete, LinkedIn and Glassdoor jobs, SEC EDGAR, USAspending, Grants.gov, TED tenders, NHTSA recalls, FEC, EPA, ClinicalTrials.gov, openFDA, Europe PMC, GLEIF, CMS providers, Census geocoding, state business registries, contractor licences, Airbnb, YouTube, Twitch and Google Play - each running as an Actor on your own Apify account. Install with
uvx apify-data-scrapers (Claude Desktop, Cursor, any MCP client), or call the same Actors directly from Python, Node.js or no-code tools.
Each actor is built with strict schema validation, deterministic field mapping, self-healing DOM selectors, and pay-per-event pricing (per-result rates from $0.00015, Actor-start from $0.0005; the live Apify Store price is authoritative).
Since version 1.1.0, calls return {results, status, run?} in both MCP structured content and text. Status is success, partial, empty_unverified, or error; errors include a stable code and retry guidance. Zero rows are not proof that no matching records exist. Existing integrations that parsed a bare result array must now read results. Native dataset field names are preserved.
Each call requests a 120-second Actor timeout and a pay-per-event charge cap of $1 by default. Set APIFY_MAX_CHARGE_USD to adjust the cap. This is per run, not a total account spending limit; platform fees outside Actor event charges may still apply. Up to four calls may run concurrently. Cancelling a request attempts to abort its cloud run; check the returned run ID if confirmation fails. An ambiguous start is never retried automatically.
The MCP executable is Python; Node.js files are direct Actor API examples, not a second MCP server. Private queued Actors are omitted from this public catalog.
Choose a focused tool profile and generate your installation configuration.
Version 1.2.0 adds the optional APIFY_TOOL_PROFILE environment variable: all (default), leads, market, government, or research. These correspond to the four catalog categories below. Profiles restrict tool discovery and calls, prompts, and the Actor catalog. Restart the MCP server and refresh/reconnect your client after changing the profile. Keep only the focused server entry if you do not also want the full catalog loaded. Direct Actor API examples are unchanged; this setting is not an Apify account permission boundary.
| Your goal | Start here | What to expect |
|---|---|---|
| Build a local contractor lead list | Dallas electrician example task | Review the prefilled input, set a small result limit, then run and export the dataset. |
| Track company filings | SEC filing-monitor tutorial | Choose companies and form types; retain filing identifiers to avoid duplicate alerts. |
| Compare healthcare providers over time | CMS provider-monitor tutorial | Save snapshots and compare changes in the source dataset, not real-time clinical outcomes. |
| Use an AI chat interface | ChatGPT and Apify MCP setup | Connect your own Apify account and choose the Actor explicitly. |
No separate subscription to this MCP package is required. Actor runs are billed through your Apify account at the displayed Store price. Start with a small run and inspect its output before scheduling recurring work; public-source data can be delayed, incomplete, or temporarily unavailable.
The MCP server collects nothing. It runs on your machine, reads APIFY_TOKEN from your environment, and its only outbound calls are to the Apify API to run the Actor you asked for — on your own Apify account. No telemetry, no logs, no data sent to us. Full policy: apify.revenuesystemslabs.com/privacy.
Eight published Make scenarios, one click to copy into your own Make account. Each asks for your Apify token and your destination (Google Sheets or Slack) in the setup wizard.
One page per question an agent gets asked, each listing the tools, arguments, returned fields and prices for that job:
Focused, end-to-end tutorials:
Every extractor below is both an Apify Store listing and an MCP tool of the same server; the sections are the questions buyers arrive with.
Also available: Cross-border company registry search, combining UK, French and GLEIF records where available.
| Tool | Store Link | Key Output Fields | Best For |
|---|---|---|---|
| Google Maps Business Leads | captainhandsome/google-maps-business-search | Name, phone, website, rating, reviews, address, coordinates, hours | B2B lead generation, local agency prospecting |
| Website Tech Stack & Ecommerce Scanner | captainhandsome/tech-stack-detector | technologies, cms, ecommerce_platform, payments, emails | Best for competitive tech research and B2B lead qualification across a batch of company websites. |
| US Business Entity Registries | captainhandsome/us-business-entity-search | Legal entity name, filing number, jurisdiction, status | Legal due diligence, corporate registration checks |
| Alabama Business Entity Search | captainhandsome/al-business-entity-search | entity id, entity name, location, entity type, status | Search Alabama business entities by company name and export entity IDs |
| Florida Sunbiz Business Entity Search | captainhandsome/fl-sos-new-filings | entity name, document number, status, entity type, date filed | Search Florida Sunbiz company-name results and export legal entity nam |
| Florida Sunbiz Officer & Registered Agent Search | captainhandsome/fl-sunbiz-officer-search | officer name, entity name, document number, detail url, entity type | Search Florida Sunbiz by officer or registered-agent name and export o |
| French Company Search | captainhandsome/french-company-search | siren, name, legal name, acronym, status | Search France's official company register by name, activity, postcode, |
| GLEIF LEI Lookup | captainhandsome/gleif-lei-search | lei, legal_name, registered_as, legal_form_name, status | Best for KYC and counterparty due diligence: resolving a company's Legal Entity Identifier, registration status, and own national registry number before onboarding. |
| US Contractor Licenses | captainhandsome/us-contractor-license-search | Contractor name, license number, classification, status, state | Trades verification, subcontractor diligence |
| California Contractor License Search | captainhandsome/ca-contractor-license-search | contractor name, name type, license number, city, status | Search California CSLB contractor records by contractor name and expor |
| Tool | Store Link | Key Output Fields | Best For |
|---|---|---|---|
| Glassdoor Jobs & Salaries | captainhandsome/glassdoor-jobs-scraper | Title, company, salary estimate, rating, location, job URL, posting date | Hiring intelligence, compensation benchmarking |
| LinkedIn Public Jobs | captainhandsome/linkedin-public-jobs-search | Job title, employer, location, direct apply URL, posting age | Recruitment, tech talent monitoring |
| Airbnb Vacation Rentals | captainhandsome/airbnb-listings-search | Title, room type, nightly price, rating, reviews count, listing URL | Real estate research, market rate tracking |
| Google Play App Reviews | captainhandsome/google-play-reviews-scraper | Review text, star score, thumbs up, date, reviewer name | App store sentiment, competitor feedback |
| Apple App Store Reviews | captainhandsome/app-store-reviews-search | app_name, review_rating, review_body, review_version, app_average_rating | iOS review mining, ASO research and cross-platform sentiment |
| YouTube Video Search | captainhandsome/youtube-search-scraper | Title, video URL, channel, views count, duration, publish date | Content tracking, creator outreach |
| Twitch Live Streams | captainhandsome/twitch-live-streams-scraper | Streamer username, title, viewer count, language, category | Esports analytics, live stream monitoring |
Also available: SEC Form 4 insider transactions, OFAC sanctions, CourtListener cases, and NVD/CISA vulnerability intelligence.
| Tool | Store Link | Key Output Fields | Best For |
|---|---|---|---|
| SEC EDGAR Corporate Filings | captainhandsome/sec-edgar-filings-search | Ticker, CIK, form (10-K, 10-Q, 8-K), filing date, primary document URL | Financial diligence, equity research, compliance |
| USAspending Federal Awards | captainhandsome/usaspending-federal-awards | Recipient vendor, award amount, awarding agency, description, dates | Government contracting, procurement intel |
| Grants.gov Funding Opportunities | captainhandsome/grants-gov-opportunity-search | Opportunity number, agency, deadline, award range, eligibility, contacts | Federal grant prospecting and funding monitoring |
| TED European Tenders | captainhandsome/ted-eu-tender-search | Buyer, country, CPV code, deadline, estimated value, source documents | European procurement and bid discovery |
| NHTSA Vehicle Recalls | captainhandsome/nhtsa-vehicle-recall-search | Campaign number, component, defect, consequence, remedy, affected units | Vehicle-safety checks and recall monitoring |
| FEC Campaign Finance Search | captainhandsome/fec-campaign-finance-search | record type, id, name, party, office | Search US federal candidates, PACs and campaign contributions by state |
| EPA ECHO Facility Compliance & Violations | captainhandsome/epa-echo-facility-search | registry id, name, street, city, state | Search EPA-regulated US facilities by state, ZIP, NAICS, name, program |
| US Census Address Geocoder | captainhandsome/us-census-geocoder | matched_address, county_name, tract_geoid, block_geoid, congressional_district_geoid | Best for appending census tract, county FIPS and district GEOIDs to US addresses for demographic joins and compliance reporting. |
| Tool | Store Link | Key Output Fields | Best For |
|---|---|---|---|
| ClinicalTrials.gov Search | captainhandsome/clinical-trials-search | nct id, title, official title, acronym, org study id | Search the official ClinicalTrials.gov API by condition, intervention, |
| Europe PMC Paper Search | captainhandsome/europe-pmc-paper-search | title, doi, pmid, abstract, cited_by_count | Best for biomedical literature reviews, citation tracking, and open-access discovery across PubMed and Europe PMC. |
| openFDA Drug Labels, Recalls & Adverse Events | captainhandsome/openfda-search | dataset, id, brand name, generic name, manufacturer | Search official FDA drug labels, approvals, adverse events, and drug, |
| CMS Healthcare Provider Search | captainhandsome/cms-healthcare-provider-search | name, provider_type, city, state, star_rating | Compare CMS-certified hospitals, nursing homes, and other Medicare providers by location, ownership, and star rating. |
pip install apify-client pandas python-dotenv
import os
from apify_client import ApifyClient
import pandas as pd
# Get your API token from https://console.apify.com/account/integrations
client = ApifyClient(os.getenv("APIFY_TOKEN"))
# Run the actor
run = client.actor("captainhandsome/google-maps-business-search").call(run_input={
"search_query": "commercial electricians",
"location": "Dallas, Texas",
"max_items": 50,
"include_details": True,
})
# Fetch dataset items and export to CSV
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(items)
df.to_csv("dallas_electricians.csv", index=False)
print(f"Exported {len(df)} leads to dallas_electricians.csv")
See examples/google_maps_leads_to_csv.py for the full script.
npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('captainhandsome/sec-edgar-filings-search').call({
companies: ['AAPL', 'NVDA', 'MSFT'],
forms: ['10-K'],
max_items: 15,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(filing => {
console.log(`[${filing.ticker}] ${filing.form} (${filing.filing_date}): ${filing.filing_url}`);
});
See examples/sec_filings.js for the full script.
If you automate via n8n, Make, Zapier, or Google Sheets, ready-to-import blueprints are included in workflows/:
Open a template in Make: Google Maps, Glassdoor, California contractors, SEC filings to Slack, Google News, Grants.gov, TED tenders, or NHTSA recalls.
If you prefer runnable web UI tasks without writing any code, each actor includes pre-configured tasks published on Apify Store:
Looking for clean data to benchmark, analyze, or train models? Verified sample bundles with metadata schemas are available in datasets/ and hosted publicly on Hugging Face Datasets:
Eight verified sample bundles, each exported from a production run of the Actor named beside it. Every one is served from this repository and mirrored to Hugging Face, where the dataset card links back to the Actor that produced it.
datasets/phoenix_hvac_leads/ | Hugging Face Hub — 10 verified HVAC contractor profiles with ratings, addresses, and phone numbers (Google Maps Business Leads).datasets/california_solar_contractors/ | Hugging Face Hub — 50 active C-46 and B licensed solar installers with state verification numbers (California Contractor License Search).datasets/austin_software_jobs/ | Hugging Face Hub — 30 normalized job listings with estimated posting dates and salary ranges (LinkedIn Public Jobs).datasets/sp500_sec_edgar_filings/ | Hugging Face Hub — 5 SEC EDGAR filing records with CIK, ticker, SIC and document links (SEC EDGAR Filings).datasets/us_federal_defense_ai_awards/ | Hugging Face Hub — 10 federal contract awards with recipient, agency, obligation amount and dates (USAspending Federal Awards).datasets/us_remote_ai_ml_job_postings/ | Hugging Face Hub — 10 remote AI/ML postings with title, company, location and apply URL (LinkedIn Public Jobs).datasets/twitch_top_live_streams_metadata/ | Hugging Face Hub — 10 live-channel records with viewer counts, category and language (Twitch Live Streams).datasets/mobile_apps_user_sentiment_reviews/ | Hugging Face Hub — 10 Google Play reviews with score, thumbs-up count and reviewer metadata (Google Play Reviews).All actors in this repository conform to OpenAPI and JSON Schema standards, making them directly callable by AI agents via the Model Context Protocol (MCP):
Add this to your claude_desktop_config.json or Cursor MCP settings:
{
"mcpServers": {
"apify-data-scrapers": {
"command": "uvx",
"args": ["apify-data-scrapers"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_API_TOKEN"
}
}
}
}
Run via Docker:
{
"mcpServers": {
"apify-data-scrapers": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "APIFY_TOKEN", "glcr.b-cdn.net/jlucasmcrell/apify-scrapers:latest"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_API_TOKEN"
}
}
}
}
Install via pip or run directly:
pip install apify-data-scrapers
export APIFY_TOKEN="your_token_here"
apify-data-scrapers
Or from local source:
python mcp_server.py
Technical case studies and problem-solution writeups are located in articles/:
apify-scrapers/
README.md # Documentation and quickstart
LICENSE # MIT License
requirements.txt # Python client dependencies
package.json # Node.js dependencies
mcp.json # MCP tool registry specification
mcp_server.py # Native Python stdio MCP server
articles/ # In-depth engineering case studies
airbnb_playwright_pagination_guide.md
glassdoor_posting_dates_guide.md
reddit_community_responses.md # Reference technical answers for forums
datasets/ # Sample benchmark datasets
phoenix_hvac_leads/
california_solar_contractors/
austin_software_jobs/
workflows/ # No-code automation templates
n8n_google_maps_to_sheets.json
n8n_sec_edgar_to_slack.json
n8n_google_news_competitor_monitor.json
n8n_grants_gov_opportunity_monitor.json
n8n_ted_eu_tender_monitor.json
README.md
examples/ # Standalone developer scripts
google_maps_leads_to_csv.py
sec_edgar_filings_downloader.py
glassdoor_jobs_tracker.py
airbnb_market_scraper.py
usaspending_defense_awards.py
twitch_live_stream_monitor.py
google_maps_leads.js
sec_filings.js
Maintained by Joseph McRell.
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
MCP server exposing 40 Apify public-data scrapers as tools (Google Maps, news, SEO, jobs, SEC, procurement, registries, and more)
The pypi package apify-data-scrapers receives a total of 1,523 weekly downloads. As such, apify-data-scrapers popularity was classified as popular.
We found that apify-data-scrapers demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.