io.github.Perufitlife/multi-scraper-mcp
NPM · MULTI-SCRAPER-MCP · SCANNED SEP 20
14 web scrapers as MCP tools: Reddit, Amazon, Google Maps, Yelp, YouTube, Indeed & more.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 94 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2792 tokens (~199/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 94% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.Perufitlife/multi-scraper-mcp server?
io.github.Perufitlife/multi-scraper-mcp runs locally as an npm package, launched with npx -y multi-scraper-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · multi-scraper-mcp
claude mcp add perufitlife-multi-scraper-mcp -- npx -y multi-scraper-mcp
{
"mcpServers": {
"perufitlife-multi-scraper-mcp": {
"command": "npx",
"args": [
"-y",
"multi-scraper-mcp"
]
}
}
} {
"servers": {
"perufitlife-multi-scraper-mcp": {
"command": "npx",
"args": [
"-y",
"multi-scraper-mcp"
]
}
}
} codex mcp add perufitlife-multi-scraper-mcp -- npx -y multi-scraper-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"perufitlife-multi-scraper-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"multi-scraper-mcp"
],
"enabled": true
}
}
} openclaw mcp add perufitlife-multi-scraper-mcp --command npx --arg -y --arg multi-scraper-mcp
mcp_servers:
perufitlife-multi-scraper-mcp:
command: "npx"
args: ["-y", "multi-scraper-mcp"] {
"McpServers": {
"perufitlife-multi-scraper-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"multi-scraper-mcp"
]
}
}
} assistant mcp add perufitlife-multi-scraper-mcp -t stdio -c npx -a -y multi-scraper-mcp
{
"mcpServers": {
"perufitlife-multi-scraper-mcp": {
"command": "npx",
"args": [
"-y",
"multi-scraper-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −2
- Stability: pass → 0.80 functional
- 15 Sept 26 0
- Stability: 0.97 → pass security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
- Security disclosure: unverified → fail ▼ functional
- 11 Sept 26 0
- Security disclosure: fail → unverified ▼ functional
- 9 Sept 26 −2
- Stability: pass → 0.80 functional
- 8 Sept 26 0
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/multi-scraper-mcp@1.0.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
amazon_search ~197
Search Amazon for products or look up specific ASINs/product URLs. Returns title, price, rating, review count, ASIN, image URL and Prime status. Use for price comparison, product research, and competitor monitoring. Supports US/UK/DE/FR/IT/ES/CA/AU/JP/IN marketplaces. Example input: {"searchQueries": ["wireless earbuds"], "marketplace": "amazon.com", "maxResultsPerQuery": 20}
| Name | Type | Req | Description |
|---|---|---|---|
| marketplace | string | – | Marketplace domain: amazon.com, amazon.co.uk, amazon.de, etc. |
| maxResultsPerQuery | integer | – | Max products per query (1-100) |
| productUrls | array | – | Direct product URLs or bare ASINs, e.g. ["B0C1J9KX2P"] |
| searchQueries | array | – | Product search queries, e.g. ["standing desk", "ergonomic chair"] |
No output schema declared.
No examples provided.
ebay_search ~170
Search eBay listings, including completed/sold listings for real market-price history. Returns title, price, condition, seller, sold count and auction status. Use soldOnly:true to research what items actually sell for (resale/arbitrage analysis). Example input: {"searchQueries": ["vintage seiko watch"], "soldOnly": true, "maxResultsPerQuery": 30}
| Name | Type | Req | Description |
|---|---|---|---|
| marketplace | string | – | eBay domain: ebay.com, ebay.co.uk, ebay.de, etc. |
| maxResultsPerQuery | integer | – | Max listings per query (1-100) |
| searchQueries | array | yes | eBay search keywords (required), e.g. ["iphone 14 pro unlocked"] |
| soldOnly | boolean | – | Only completed/sold listings — use for historical pricing research |
No output schema declared.
No examples provided.
google_maps_leads ~288
Build ready-to-contact local B2B lead lists in one step: scrape Google Maps businesses by category + city AND enrich each with emails (crawled from the business website), phone, social links and tech stack. Unlike google_maps_search, this returns leads you can actually email — no separate enrichment pass needed. Use for cold outreach, agency prospecting, and local sales lists. Example input: {"searchQueries": ["dentists in Miami, FL"], "maxResults": 50, "onlyWithWebsite": true}
| Name | Type | Req | Description |
|---|---|---|---|
| includeGenericEmails | boolean | – | Include info@/hello@/contact@ style emails (disable for personal/role emails only) |
| language | string | – | Google Maps results language code, e.g. en, es, fr |
| maxPagesPerSite | integer | – | Pages crawled per business site to find emails — homepage/contact/about (1-8) |
| maxResults | integer | – | Max businesses per query (1-500). Keep low (25-50) for quick lists. |
| onlyWithWebsite | boolean | – | Drop businesses without a website (they cannot be email-enriched). Set true for outreach lists. |
| searchQueries | array | yes | Google Maps searches in "niche in city, state" form (required), e.g. ["plumbers in Austin, TX", "law firms in Chicago, IL"] |
No output schema declared.
No examples provided.
google_maps_reviews ~133
Extract customer reviews for specific Google Maps places. Returns reviewer name, star rating, full review text, date and owner responses. Use after google_maps_search to dig into reputation/voice-of-customer for a business. Example input: {"placeUrls": ["https://www.google.com/maps/place/..."], "maxReviewsPerPlace": 30, "sortBy": "newest"}
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | – |
| maxReviewsPerPlace | integer | – | Max reviews per place (1-500) |
| placeUrls | array | yes | Google Maps place URLs (required) |
| sortBy | string | – | – |
No output schema declared.
No examples provided.
google_maps_search ~140
Find local businesses on Google Maps by category + location. Returns name, address, phone, website, rating, review count and GPS coordinates. The go-to tool for building local lead lists or analyzing local competition. Example input: {"searchQueries": ["dentists in Miami FL"], "maxResultsPerQuery": 25}
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Results language code, e.g. en, es, de |
| maxResultsPerQuery | integer | – | Max businesses per query (1-200) |
| searchQueries | array | yes | Queries in "category in location" form (required), e.g. ["coffee shops near Times Square NYC"] |
No output schema declared.
No examples provided.
healthcare_provider_leads ~408
Get verified US healthcare provider leads from the official NPPES / NPI Registry (CMS public data), enriched with website emails, extra phones, social profiles and tech stack. Returns NPI, provider name, credential (MD/DO/DDS...), specialty, license, full address, phone, fax and email. The authoritative source for doctor/dentist/clinic prospecting — every record is government-verified, no guesswork. Use specialty in plain words (auto-mapped to NPPES taxonomy). Example input: {"specialty": "dermatologist", "city": "Los Angeles", "state": "CA", "maxResults": 100}
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City to search in, e.g. "Miami". Combine with state for best targeting. |
| enrichEmails | boolean | – | Find each provider website and extract emails/phones/socials. Disable for NPPES data only (faster, cheaper). |
| firstName | string | – | Optional: find a specific provider by first name |
| includeGenericEmails | boolean | – | Include info@/hello@/contact@ style emails |
| lastName | string | – | Optional: find a specific provider by last name |
| maxPagesPerSite | integer | – | Pages crawled per provider site to find emails (1-8) |
| maxResults | integer | – | Max providers to return (1-1000) |
| onlyWithEmail | boolean | – | Drop providers where no email was found. Set true for fully-enriched outreach lists. |
| postalCode | string | – | Optional: narrow to a single ZIP code instead of / alongside city+state |
| specialty | string | – | Provider type in plain words, e.g. "dentist", "dermatologist", "pediatrician", "cardiologist", "physical therapist" |
| state | string | – | US state 2-letter abbreviation, e.g. "FL", "CA", "TX", "NY" |
No output schema declared.
No examples provided.
indeed_jobs ~217
Search Indeed job listings. Returns job title, company, location, salary (when posted), description snippet and posting date. Use for salary benchmarking, hiring-market analysis, or lead gen (companies hiring for X likely need Y). Supports US/UK/CA/AU/DE/FR/IN. Example input: {"searchQueries": ["react developer"], "location": "Austin, TX", "country": "us", "datePosted": "7"}
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Country code: us, uk, ca, au, de, fr, in |
| datePosted | string | – | Only jobs posted in the last N days |
| jobType | string | – | Filter by employment type |
| location | string | – | City/state or zip, e.g. "Miami, FL". Empty = nationwide. |
| maxResultsPerQuery | integer | – | Max jobs per query (1-200) |
| searchQueries | array | yes | Job titles or keywords (required), e.g. ["data engineer", "RN nurse"] |
No output schema declared.
No examples provided.
reddit_scrape ~292
Get Reddit posts from subreddits, keyword searches across all of Reddit, or comments from specific post URLs. Returns title, score, author, body text, comment count and (optionally) nested comments — ideal for sentiment analysis, market research, and finding what people complain about. Note: when Reddit rate-limits, the scraper transparently degrades to Reddit RSS feeds, so very new comments may be partial. Example input: {"subreddits": ["smallbusiness"], "maxPostsPerSubreddit": 25, "sortBy": "top", "timeFilter": "week"}
| Name | Type | Req | Description |
|---|---|---|---|
| includeComments | boolean | – | Also fetch comments for each post (slower, more thorough) |
| maxCommentsPerPost | integer | – | Max comments per post when includeComments is true |
| maxPostsPerSubreddit | integer | – | Max posts per subreddit/query (1-500). Keep low (10-25) for quick answers. |
| postUrls | array | – | Direct Reddit post URLs to scrape comments from |
| searchQueries | array | – | Keywords to search across all of Reddit, e.g. ["best CRM for small business"] |
| sortBy | string | – | – |
| subreddits | array | – | Subreddit names without the r/ prefix, e.g. ["technology", "SaaS"] |
| timeFilter | string | – | Time window when sortBy is "top" |
No output schema declared.
No examples provided.
saas_pricing ~137
Extract structured pricing from any SaaS pricing page: tier names, monthly/annual prices, billing periods and feature lists. With compareWithPrevious it diffs against the last run to detect pricing changes — ideal for competitor price monitoring. Example input: {"urls": ["https://slack.com/pricing"], "compareWithPrevious": false}
| Name | Type | Req | Description |
|---|---|---|---|
| compareWithPrevious | boolean | – | Diff against previous run of the same URL to detect changes |
| extractFeatures | boolean | – | Extract per-tier feature lists |
| urls | array | yes | Direct pricing page URLs (required), e.g. ["https://www.notion.so/pricing"] |
No output schema declared.
No examples provided.
tiktok_profile ~149
Scrape TikTok creator profiles, their videos, or discover trending videos by hashtag. Returns followers, total likes, and per-video views, likes, comments, shares, hashtags and music. Use for influencer discovery and trend analysis. Example input: {"profileUrls": ["@khaby.lame"], "maxPostsPerProfile": 10}
| Name | Type | Req | Description |
|---|---|---|---|
| hashtags | array | – | Hashtags (without #) to discover trending videos |
| maxPostsPerProfile | integer | – | Max videos per profile (1-100) |
| maxResultsPerHashtag | integer | – | Max videos per hashtag (1-100) |
| profileUrls | array | – | TikTok profile URLs or bare @usernames |
No output schema declared.
No examples provided.
trustpilot_reviews ~158
Scrape Trustpilot reviews for any company. Returns star rating, review title, full text, reviewer name, date, verified status and company responses. Use for competitor reputation analysis and mining customer pain points. Example input: {"companyUrls": ["stripe.com"], "maxReviewsPerCompany": 40, "sortBy": "recency"}
| Name | Type | Req | Description |
|---|---|---|---|
| companyUrls | array | yes | Trustpilot company page URLs or bare domains (required), e.g. ["notion.so"] |
| filterByRating | integer | – | Only reviews with this star rating (1-5), e.g. 1 to mine complaints |
| maxReviewsPerCompany | integer | – | Max reviews per company (1-500) |
| sortBy | string | – | – |
No output schema declared.
No examples provided.
website_contacts ~154
Crawl any website and extract emails, phone numbers, social media links and the detected technology stack. The B2B lead-enrichment workhorse: feed it domains from google_maps_search to get contactable leads. Example input: {"domains": ["acme-plumbing.com"], "maxPagesPerDomain": 4}
| Name | Type | Req | Description |
|---|---|---|---|
| detectTechStack | boolean | – | Also detect CMS/analytics/framework technologies |
| domains | array | yes | Domains or URLs to crawl (required), e.g. ["example.com"] |
| includeGenericEmails | boolean | – | Include info@/contact@/sales@ style emails |
| maxPagesPerDomain | integer | – | Pages to crawl per domain — contact/about pages are prioritized (1-20) |
No output schema declared.
No examples provided.
yelp_search ~211
Search Yelp businesses by category + location through the official Yelp Fusion API (reliable, no scraping blocks). Returns rating, address, phone, categories, price level, GPS and supported transactions. Requires a free Yelp Fusion API key (5000 calls/day at https://docs.developer.yelp.com/) passed as yelpApiKey. Example input: {"searches": ["ramen in San Francisco, CA"], "yelpApiKey": "YOUR_KEY", "maxResultsPerSearch": 20}
| Name | Type | Req | Description |
|---|---|---|---|
| includeReviews | boolean | – | Include up to 3 review excerpts per business |
| maxResultsPerSearch | integer | – | Max businesses per search (1-50) |
| searches | array | yes | Queries formatted as "category in city, state" (required), e.g. ["plumbers in Austin, TX"] |
| yelpApiKey | string | – | Your Yelp Fusion API key (free at https://docs.developer.yelp.com/). Required unless the server operator configured one. |
No output schema declared.
No examples provided.
youtube_channel ~138
Get YouTube channel stats and recent videos, or metadata for specific video URLs. Returns subscribers, total views, and per-video title, view count, likes and publish date. Use for influencer vetting and content research. Example input: {"channelUrls": ["https://www.youtube.com/@mkbhd"], "maxVideosPerChannel": 15}
| Name | Type | Req | Description |
|---|---|---|---|
| channelUrls | array | – | Channel URLs in any form: @handle, /channel/UC..., /user/... |
| maxVideosPerChannel | integer | – | Max recent videos per channel (1-100) |
| videoUrls | array | – | Direct video URLs to fetch metadata for |
No output schema declared.
No examples provided.
What is the io.github.Perufitlife/multi-scraper-mcp server?
io.github.Perufitlife/multi-scraper-mcp is listed in the public MCP registry as io.github.Perufitlife/multi-scraper-mcp. 14 web scrapers as MCP tools: Reddit, Amazon, Google Maps, Yelp, YouTube, Indeed & more. This page covers its npm package (multi-scraper-mcp).
Is the io.github.Perufitlife/multi-scraper-mcp server safe to use?
io.github.Perufitlife/multi-scraper-mcp scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.Perufitlife/multi-scraper-mcp server expose?
io.github.Perufitlife/multi-scraper-mcp exposes 14 tools: reddit_scrape, amazon_search, ebay_search, google_maps_search, google_maps_reviews, and 9 more. Their descriptions and schemas cost roughly 2,792 tokens of context every time the server is loaded.
Is the io.github.Perufitlife/multi-scraper-mcp server still maintained?
io.github.Perufitlife/multi-scraper-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.Perufitlife/multi-scraper-mcp server under?
io.github.Perufitlife/multi-scraper-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.