mcpField
Y
yelp-search

yelp-search

github.com/letta-aiProductivity152164 installsUpdated 4w ago
Repository

About yelp-search

Yelp Search Integration provides scripts for finding local businesses and retrieving business details from Yelp. It is for people comparing nearby services, with optional tools for phone lookup and review-text extraction.

Key features

  1. 01Search businesses by location and category
  2. 02Sort and filter results by rating, distance, and price
  3. 03Retrieve business details and operating hours
  4. 04Look up businesses by phone number
  5. 05Extract review text using browser-based methods

Use cases

  1. 01Find nearby restaurants within a price range
  2. 02Compare service providers by rating and distance
  3. 03Check business hours before visiting
  4. 04Look up a business using its phone number

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/letta-ai/skills --skill yelp-search

After installing, type/yelp-searchin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
scripts/
details.py
get_reviews.py
phone_search.py
scrape_reviews.py
search.py

Details

From the project README

Yelp Search Integration

Search for local businesses on Yelp to find services, get contact information, check ratings, and retrieve hours of operation.

Setup

1. Yelp API Key (Required)
  1. Go to https://www.yelp.com/developers
  2. Create an account or sign in
  3. Click "Create App" and fill out the form
  4. Copy your API Key

Add to your .env file:

YELP_API_KEY=your_api_key_here
2. Browser-Use for Reviews (Optional)

Only needed if you want to extract review text (slow, ~30-60s per request).

Install dependencies:

uv add browser-use playwright langchain-openai
uv run playwright install chromium

Add to .env:

OPENAI_API_KEY=your_openai_key_here

Note: Review extraction uses browser-use to search DuckDuckGo (since Yelp blocks direct scraping). For most use cases, the rating + review_count from the API is sufficient.

Scripts

All scripts are in tools/yelp-search/scripts/ and should be run with uv run python.

search.py - Find Businesses (Primary Tool)
uv run python tools/yelp-search/scripts/search.py "search term" --location "City, State"

Options:

FlagDescriptionExample
--location, -lCity, address, or zip"San Francisco" or "94123"
--latitude/--longitudeGPS coordinates--latitude 37.78 --longitude -122.41
--limit, -nNumber of results (default: 5)-n 10
--sort-bySort orderrating, distance, review_count, best_match
--pricePrice filter (1-4)--price 1,2 for $ and $$ only
--jsonOutput raw JSON

Examples:

# Find top-rated dog groomers
uv run python tools/yelp-search/scripts/search.py "dog groomer" -l "San Francisco" --sort-by rating

# Find cheap restaurants nearby
uv run python tools/yelp-search/scripts/search.py "restaurants" -l "94123" --price 1,2 --sort-by distance

# Search near a specific address
uv run python tools/yelp-search/scripts/search.py "laundry pickup" -l "123 Main St, San Francisco"
details.py - Get Business Hours & Info
uv run python tools/yelp-search/scripts/details.py "business-alias"

The business alias is in the Yelp URL (e.g., the-laundry-corner-san-francisco).

phone_search.py - Reverse Lookup
uv run python tools/yelp-search/scripts/phone_search.py "+14155551234"
get_reviews.py - Extract Review Text (Slow)
uv run python tools/yelp-search/scripts/get_reviews.py "Business Name" -l "City" -n 3

Note: Uses browser-use which is slow (~30-60s). Yelp blocks direct scraping, so it searches DuckDuckGo for cached reviews as a workaround.

scrape_reviews.py - Direct Yelp Scraping (Alternative)
uv run python tools/yelp-search/scripts/scrape_reviews.py "https://www.yelp.com/biz/business-alias" -n 5

Requires Browserbase credentials:

BROWSERBASE_API_KEY=your_key_here
BROWSERBASE_PROJECT_ID=your_project_id

Note: Uses Browserbase with proxies to bypass Yelp's CAPTCHA. More reliable than get_reviews.py but requires a Browserbase account.

Best Practices

Evaluating Quality Without Review Text

The API provides rating + review_count which is usually sufficient:

RatingReview CountInterpretation
4.5+50+Excellent, reliable data
4.5+<20Promising but limited data
4.0-4.4100+Good, well-established
<4.0anyProceed with caution
Finding Services with Specific Needs

When looking for services with specific requirements (weekend hours, pickup/delivery, etc.):

  1. Search with --sort-by rating to get best options
  2. Get details on top candidates to check hours
  3. Filter for businesses open when you need them
  4. Contact directly to confirm specific services (pickup, delivery, etc.) since Yelp doesn't always have this info
Search Tips
  • Use specific terms: "laundry pickup" not just "laundry"
  • Search near an address for accurate distance: -l "123 Main St, City"
  • Sort by rating first, then check distance on results
  • Check review_count - high ratings with few reviews may be unreliable

Response Data

Each business result includes:

  • name - Business name
  • phone - Phone number (use for texting/calling)
  • rating - Yelp rating (1-5 stars)
  • review_count - Number of reviews
  • price - Price level ($ to $$$$)
  • location - Full address
  • hours - Operating hours by day (in details)
  • distance - Distance from search location
  • categories - Business categories
  • is_open_now - Current open/closed status

Limitations

FeatureStatusNotes
Business search✅ WorksFast, reliable
Business details✅ WorksIncludes hours
Phone lookup✅ WorksReverse search
Review text (API)❌ Paid onlyRequires enterprise tier
Review text (scraping)⚠️ Slowbrowser-use workaround via DuckDuckGo
  • Free API tier: 500 calls/day
  • Results limited to 50 per request
  • Some business info (pickup/delivery) not in API - contact directly

Comments

Markdown supported