Multi-Platform Review Scraper MCP avatar

Multi-Platform Review Scraper MCP

Pricing

Pay per usage

Go to Apify Store
Multi-Platform Review Scraper MCP

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

AutomateLab

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

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:

ParameterTypeRequiredDescription
businessUrlstringYesBusiness URL on a review platform
businessNamestringNoBusiness name to disambiguate searches
locationstringNoCity/address to disambiguate multi-location businesses
platformstringNoTarget platform: google, trustpilot, yelp, tripadvisor, amazon, or all (default: all)
maxReviewsintegerNoMaximum 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:

ParameterTypeRequiredDescription
businessUrlstringYesBusiness URL on a review platform
businessNamestringNoBusiness name to search for
locationstringNoCity/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:

ParameterTypeRequiredDescription
reviewsarrayYesArray of review objects to export
formatstringNoExport format: json, csv, or markdown (default: json)
filenamestringNoOutput 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:

ParameterTypeRequiredDescription
reviewsarrayYesArray of review objects to analyze
thresholdnumberNoMinimum 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

OperationDescription
scrapeReviewsScrape reviews from specified platform(s)
aggregateRatingsGet aggregate ratings summary
exportReviewsExport reviews to JSON/CSV/Markdown
detectFakeReviewsAnalyze 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

PlatformURL PatternFeatures
Googlegoogle.com/maps/search/... or place URLReviews, ratings, user metadata
Trustpilottrustpilot.com/review/...Verified reviews, aggregate rating, helpful votes
Yelpyelp.com/biz/...Reviews, ratings, user info
TripAdvisortripadvisor.com/...Reviews, ratings, travel-specific data
Amazonamazon.com/.../product/... or amzn.com/...Product reviews, verified purchase badge

Pricing (Pay-Per-Event)

EventCost
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 dependencies
npm install
# Run locally with test input
echo '{"operation":"scrapeReviews","businessUrl":"https://www.trustpilot.com/review/airbnb.com","platform":"all","maxReviews":10}' | INPUT_STORE=1 apify run
# Run with a file
apify 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 / with x-apify-container-server-readiness-probe header
  • 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

IssueSolution
Empty reviews returnedBusiness may not have reviews on that platform; try a different URL
Platform not detectedUse direct review page URL (e.g., trustpilot.com/review/example.com)
Rating mismatchPlatform counts may differ due to filtering or rounding
Timeout errorsReduce maxReviews to 10–25 for large businesses
Fake detection seems offAdjust threshold parameter (lower = more sensitive)

Build & Deploy

# Syntax check
node --check src/main.js
# Build Docker image
apify build
# Push to Apify platform
apify push
# View on Apify
apify open

License

MIT License — Wilson Davalos