Multi-Platform Review Scraper MCP
Pricing
Pay per usage
Multi-Platform Review Scraper MCP
Scrape Google, Trustpilot, Yelp, TripAdvisor reviews: ratings, review text, sentiment, aggregate summary. AI agent MCP tool. No API keys needed.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
AutomateLab
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape customer reviews, ratings, and sentiment analysis from Google, Trustpilot, Yelp, TripAdvisor, and Amazon in a single AI agent tool call. Returns individual review records with reviewer metadata, aggregate cross-platform ratings, sentiment classification, and fake review detection.
Overview
This MCP server gives AI agents live access to customer review data across five major platforms. For any business URL, it returns:
- Individual review records — star rating, title, text, author name, date, verified badge, helpful votes
- Cross-platform summary — aggregate average rating, total review counts per platform, sentiment breakdown
- Fake review detection — probability scoring and flagging of suspicious reviews
- Export functionality — JSON, CSV, or Markdown export of review data
Review data is extracted from public HTML using structured data selectors and JSON-LD schemas. No API keys required for any platform.
Tools
scrapeReviews
Scrape individual customer reviews and aggregate summary from one or all platforms.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
businessUrl | string | Yes | Business URL on a review platform |
businessName | string | No | Business name to disambiguate searches |
location | string | No | City/address to disambiguate multi-location businesses |
platform | string | No | Target platform: google, trustpilot, yelp, tripadvisor, amazon, or all (default: all) |
maxReviews | integer | No | Maximum reviews per platform, 1–100 (default: 25) |
Returns: Individual review array plus cross-platform summary with sentiment breakdown.
aggregateRatings
Get aggregate ratings summary across all detected platforms — average rating, total review count, and per-platform breakdown.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
businessUrl | string | Yes | Business URL on a review platform |
businessName | string | No | Business name to search for |
location | string | No | City/address to disambiguate |
Returns: Average rating, total reviews across platforms, platform count, sentiment.
exportReviews
Export scraped reviews in specified format with all review data and metadata.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
reviews | array | Yes | Array of review objects to export |
format | string | No | Export format: json, csv, or markdown (default: json) |
filename | string | No | Output filename without extension (default: reviews) |
Returns: Export confirmation with format, filename, and review count.
detectFakeReviews
Analyze reviews for potential fake indicators using multiple signal detection methods.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
reviews | array | Yes | Array of review objects to analyze |
threshold | number | No | Minimum fake probability (0–1) to flag as suspicious (default: 0.7) |
Detection Signals:
- Missing rating or very short review body
- No review date
- Generic or suspicious reviewer name patterns
- Rating anomalies (5 stars with 10 character review)
- ALL CAPS title
- Excessive punctuation
- URLs in review text
- Repeated character patterns (e.g., "goooood")
Returns: Analysis with probability scores, flags, and list of suspicious reviews.
Input Schema
{"operation": "scrapeReviews","businessUrl": "https://www.trustpilot.com/review/airbnb.com","businessName": "Airbnb","location": "Global","platform": "all","maxReviews": 25,"exportFormat": "json","fakeReviewThreshold": 0.7}
Operations
| Operation | Description |
|---|---|
scrapeReviews | Scrape reviews from specified platform(s) |
aggregateRatings | Get aggregate ratings summary |
exportReviews | Export reviews to JSON/CSV/Markdown |
detectFakeReviews | Analyze reviews for fake indicators |
Output Schema
scrapeReviews Response
{"operation": "scrapeReviews","input": {"businessUrl": "https://www.trustpilot.com/review/airbnb.com","platform": "all","maxReviews": 25},"summary": {"averageRating": 4.3,"totalReviewsAcrossPlatforms": 847,"platformCount": 3,"platforms": [{"platform": "google","averageRating": 4.5,"totalReviews": 420,"reviewsScraped": 25},{"platform": "trustpilot","averageRating": 4.1,"totalReviews": 327,"reviewsScraped": 25},{"platform": "yelp","averageRating": 3.8,"totalReviews": 100,"reviewsScraped": 10}],"sentiment": "positive","sentimentBreakdown": {"positive": 38,"neutral": 8,"negative": 4},"reviewsAnalyzed": 46,"timestamp": "2026-05-19T21:30:00.000Z"},"reviews": [{"platform": "google","rating": 5,"reviewTitle": "Excellent service","reviewBody": "Had a great experience with this business. Fast delivery and friendly staff.","reviewerName": "Alex M.","reviewDate": "2026-02-15","verified": false,"helpfulVotes": 3,"url": "https://www.google.com/maps/..."}],"reviewCount": 46,"timestamp": "2026-05-19T21:30:00.000Z"}
detectFakeReviews Response
{"operation": "detectFakeReviews","totalReviews": 46,"suspiciousCount": 3,"cleanCount": 43,"threshold": 0.7,"fakeProbability": 0.065,"suspiciousReviews": [{"platform": "yelp","rating": 5,"reviewerName": "J.","reviewDate": "2026-01-01","fakeProbability": 0.82,"flags": ["veryShort", "noDate", "genericReviewer"]}],"timestamp": "2026-05-19T21:30:00.000Z"}
Supported Platforms
| Platform | URL Pattern | Features |
|---|---|---|
google.com/maps/search/... or place URL | Reviews, ratings, user metadata | |
| Trustpilot | trustpilot.com/review/... | Verified reviews, aggregate rating, helpful votes |
| Yelp | yelp.com/biz/... | Reviews, ratings, user info |
| TripAdvisor | tripadvisor.com/... | Reviews, ratings, travel-specific data |
| Amazon | amazon.com/.../product/... or amzn.com/... | Product reviews, verified purchase badge |
Pricing (Pay-Per-Event)
| Event | Cost |
|---|---|
scrape_reviews | $0.05 |
aggregate_ratings | $0.03 |
export_reviews | $0.02 |
detect_fake_reviews | $0.06 |
platform_scrape | $0.04 per platform |
Example: Scraping reviews across all 5 platforms with 25 reviews each = 5 platform scrapes = $0.20 total.
Error Handling & Retry Logic
This actor implements exponential backoff retry for transient failures:
- Max retries: 3 attempts
- Base delay: 1000ms, doubling each retry (1000ms → 2000ms → 4000ms)
- Max delay: 30 seconds
- Retryable errors: Network timeouts, 502/503/429 responses, connection resets
Failed scrapes return partial results with error annotations per platform rather than failing the entire operation.
Use Cases
- Reputation monitoring — Track ratings and sentiment across platforms over time
- Competitive analysis — Compare review patterns between your business and competitors
- Lead qualification — Gauge customer satisfaction before sales outreach
- Market research — Extract customer pain points and product feedback at scale
- Fake review detection — Identify suspicious reviews for further investigation
- Support ticket triage — Identify negative reviewers for proactive outreach
Quick Start
# Install dependenciesnpm install# Run locally with test inputecho '{"operation":"scrapeReviews","businessUrl":"https://www.trustpilot.com/review/airbnb.com","platform":"all","maxReviews":10}' | INPUT_STORE=1 apify run# Run with a fileapify run --input-file ./test-input.json
Test Input (test-input.json)
{"operation": "scrapeReviews","businessUrl": "https://www.trustpilot.com/review/airbnb.com","platform": "all","maxReviews": 10}
Architecture
- Standby mode — Spins up on-demand when MCP request arrives, spins down when idle
- MCP protocol — Native MCP server implementation for AI agent integrations
- Readiness probe — Health check at
GET /withx-apify-container-server-readiness-probeheader - 90s tool timeout — Prevents long-running operations from hanging
- No external APIs — Uses public HTML scraping, no API keys or credentials required
File Structure
multi-review-scraper-mcp/├── .actor/│ └── actor.json # Actor definition with PPE pricing├── src/│ └── main.js # MCP server implementation├── Dockerfile # Container build definition├── package.json # Node.js dependencies└── README.md # This file
Troubleshooting
| Issue | Solution |
|---|---|
| Empty reviews returned | Business may not have reviews on that platform; try a different URL |
| Platform not detected | Use direct review page URL (e.g., trustpilot.com/review/example.com) |
| Rating mismatch | Platform counts may differ due to filtering or rounding |
| Timeout errors | Reduce maxReviews to 10–25 for large businesses |
| Fake detection seems off | Adjust threshold parameter (lower = more sensitive) |
Build & Deploy
# Syntax checknode --check src/main.js# Build Docker imageapify build# Push to Apify platformapify push# View on Apifyapify open
License
MIT License — Wilson Davalos