HasData Yelp
Yelp business search, place details and the full review feed, as structured JSON.
Should I use this
Quality & Safety
Findings (6)
- LOWin hasdata_yelp_place_getPlaceDetails
- LOWin hasdata_yelp_place_getPlaceDetails
- LOWin hasdata_yelp_reviews_getPlaceReviews
- LOWin hasdata_yelp_reviews_getPlaceReviews
- LOWin hasdata_yelp_search_getSearchResults
- LOWin hasdata_yelp_search_getSearchResults
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"yelp": {
"command": "npx",
"args": [
"@hasdata/yelp-mcp"
]
}
}
}Runnable packages
1.0.2stdio1.0.2stdioRemote endpoints
https://mcp.hasdata.com/api/mcp?apis=yelpstreamable-httphttps://mcp.hasdata.com/mcp?apis=yelpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢hasdata_yelp_place_getPlaceDetails(placeId, domain)
Get Yelp Place Details Fetches a single Yelp business by Yelp ID or alias with domain targeting. Returns name, address, phone, website, price range, categories, overall rating, review count, hours, amenities, photos, and highlighted reviews. Use to enrich leads or listings with verified Yelp metadata, monitor a competitor's rating and review count over time, or validate hours/amenities before displaying venue details to end users.
Input Schema
{
"type": "object",
"properties": {
"placeId": {
"type": "string",
"description": "The Yelp ID or Yelp Alias of the place. For example, 'jPIZ3FR5LNcwPuUHi2Fe4g' or 'mcdonalds-new-york-386'."
},
"domain": {
"type": "string",
"enum": [
"www.yelp.com",
"www.yelp.co.uk",
"www.yelp.ca",
"www.yelp.com.au",
"ms.yelp.my",
"www.yelp.cz",
"www.yelp.dk",
"www.yelp.de",
"www.yelp.at",
"de.yelp.ch",
"en.yelp.be",
"en.yelp.com.hk",
"en.yelp.my",
"www.yelp.co.nz",
"en.yelp.com.ph",
"www.yelp.ie",
"www.yelp.com.sg",
"en.yelp.ch",
"www.yelp.com.ar",
"www.yelp.cl",
"www.yelp.es",
"www.yelp.com.mx",
"fil.yelp.com.ph",
"fr.yelp.be",
"fr.yelp.ca",
"www.yelp.fr",
"fr.yelp.ch",
"www.yelp.it",
"it.yelp.ch",
"nl.yelp.be",
"www.yelp.nl",
"www.yelp.no",
"www.yelp.pl",
"www.yelp.com.br",
"www.yelp.pt",
"fi.yelp.fi",
"sv.yelp.fi",
"www.yelp.com.tr",
"www.yelp.co.jp",
"zh.yelp.com.hk",
"www.yelp.com.tw"
],
"description": "Yelp domain to use. Default is `www.yelp.com`."
}
},
"required": [
"placeId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢hasdata_yelp_reviews_getPlaceReviews(placeId, domain, query, sortBy, rating, ...)
Get Yelp Place Reviews Fetches the review feed of a single Yelp business by Yelp ID, with sorting (relevance, date, rating, elites), filtering by star rating, language and free-text query, and cursor pagination. To page, either step `start` by `num`, or resend the `pagination.nextPageToken` of the previous response as the `nextPageToken` parameter, keeping the other filters unchanged, until `pagination.hasNextPage` is false. The response reports the page it returned as `pagination.start` and `pagination.num`, matching the parameter names. Each review returns the author profile (name, location, review/friend/photo counts, Elite status), full text with language, star rating, timestamp, attached photos and videos, reader reactions, review tags (check-ins, first review, reservation and payment flags) and the owner reply when present. The response also carries the business review totals broken down by rating and by language. Use to monitor customer sentiment over time, mine complaints for a competitor, track how a business responds to negative reviews, or build rating-distribution and review-velocity datasets.
Input Schema
{
"type": "object",
"properties": {
"placeId": {
"type": "string",
"description": "The Yelp ID of the place. For example, '-4ofMtrD7pSpZIX5pnDkig'. Yelp IDs can be obtained from the Yelp Search Scraper API."
},
"domain": {
"type": "string",
"enum": [
"www.yelp.com",
"www.yelp.co.uk",
"www.yelp.ca",
"www.yelp.com.au",
"ms.yelp.my",
"www.yelp.cz",
"www.yelp.dk",
"www.yelp.de",
"www.yelp.at",
"de.yelp.ch",
"en.yelp.be",
"en.yelp.com.hk",
"en.yelp.my",
"www.yelp.co.nz",
"en.yelp.com.ph",
"www.yelp.ie",
"www.yelp.com.sg",
"en.yelp.ch",
"www.yelp.com.ar",
"www.yelp.cl",
"www.yelp.es",
"www.yelp.com.mx",
"fil.yelp.com.ph",
"fr.yelp.be",
"fr.yelp.ca",
"www.yelp.fr",
"fr.yelp.ch",
"www.yelp.it",
"it.yelp.ch",
"nl.yelp.be",
"www.yelp.nl",
"www.yelp.no",
"www.yelp.pl",
"www.yelp.com.br",
"www.yelp.pt",
"fi.yelp.fi",
"sv.yelp.fi",
"www.yelp.com.tr",
"www.yelp.co.jp",
"zh.yelp.com.hk",
"www.yelp.com.tw"
],
"description": "Yelp domain to use. Default is `www.yelp.com`."
},
"query": {
"type": "string",
"description": "Note: Yelp ignores the `rating` filter while searching, so a query returns matching reviews of every star rating. Free-text query to search within the reviews of the place.\n"
},
"sortBy": {
"type": "string",
"enum": [
"relevanceDesc",
"dateDesc",
"dateAsc",
"ratingDesc",
"ratingAsc",
"elitesDesc"
],
"description": "The order in which the reviews are returned. Defaults to relevanceDesc."
},
"rating": {
"type": "string",
"description": "Note: Yelp ignores this filter when `query` is set, so a search returns matching reviews of every star rating. Filters the reviews by star rating. Possible values are 5, 4, 3, 2 and 1. To return only five-star reviews, set it to `5`. To include several ratings, pass them comma-separated, for example `5,4,3`. When omitted, reviews with any rating are returned.\n"
},
"languageCode": {
"type": "string",
"description": "Language of the reviews to return, as a two-letter code (e.g., 'en', 'es', 'fr'). Defaults to en."
},
"notRecommended": {
"type": "boolean",
"description": "Returns the reviews Yelp does not currently recommend (filtered out of the main feed by its recommendation software) instead of the recommended ones. These reviews carry no photos, videos or reactions, and are paginated ten at a time. Defaults to false.\n"
},
"start": {
"type": "number",
"description": "Result offset for pagination. It skips the given number of reviews, so the step matches `num` (e.g., 0, 49, 98 for the recommended feed, or 0, 10, 20 when `notRecommended` is set). The response echoes it back as `pagination.start`. Cannot be combined with `nextPageToken`.\n"
},
"num": {
"type": "number",
"description": "Number of reviews to return per page. The maximum is 49. Defaults to 49 for the recommended feed and to 10 when `notRecommended` is set. The response echoes it back as `pagination.num`.\n"
},
"nextPageToken": {
"type": "string",
"description": "Opaque cursor for the next page, taken verbatim from `pagination.nextPageToken` of the previous response. It carries both the offset and the page size, so passing it alone continues the feed where the last response ended. Keep the other filters (`sortBy`, `rating`, `languageCode`, `query`, `notRecommended`) identical across pages. Use either this or `start`, not both. Paginate until `pagination.hasNextPage` is false.\n"
}
},
"required": [
"placeId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢hasdata_yelp_search_getSearchResults(keyword, location, l, domain, start)
Get Yelp Search Results Runs a Yelp business search by keyword and location with optional map-bounded radius via the `l` parameter (g:lon1,lat1,lon2,lat2), domain targeting, and offset-based pagination. Returns a ranked list of businesses with Yelp alias/ID, name, categories, rating, review count, price tier, and thumbnail. Use the returned aliases as input to the Yelp Place endpoint for full details, to power local-discovery UIs, or to build market-share/competitor datasets for a niche in a given geography.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "The search term for which to get the search results."
},
"location": {
"type": "string",
"description": "The location where to search for businesses with the given keyword."
},
"l": {
"type": "string",
"description": "Parameter defines the distance or map radius for the search results. For example: `g:-95.2486,29.8496,-95.4277,29.6324`.\n"
},
"domain": {
"type": "string",
"enum": [
"www.yelp.com",
"www.yelp.co.uk",
"www.yelp.ca",
"www.yelp.com.au",
"ms.yelp.my",
"www.yelp.cz",
"www.yelp.dk",
"www.yelp.de",
"www.yelp.at",
"de.yelp.ch",
"en.yelp.be",
"en.yelp.com.hk",
"en.yelp.my",
"www.yelp.co.nz",
"en.yelp.com.ph",
"www.yelp.ie",
"www.yelp.com.sg",
"en.yelp.ch",
"www.yelp.com.ar",
"www.yelp.cl",
"www.yelp.es",
"www.yelp.com.mx",
"fil.yelp.com.ph",
"fr.yelp.be",
"fr.yelp.ca",
"www.yelp.fr",
"fr.yelp.ch",
"www.yelp.it",
"it.yelp.ch",
"nl.yelp.be",
"www.yelp.nl",
"www.yelp.no",
"www.yelp.pl",
"www.yelp.com.br",
"www.yelp.pt",
"fi.yelp.fi",
"sv.yelp.fi",
"www.yelp.com.tr",
"www.yelp.co.jp",
"zh.yelp.com.hk",
"www.yelp.com.tw"
],
"description": "Yelp domain to use. Default is `www.yelp.com`."
},
"start": {
"type": "number",
"description": "Result offset for pagination (e.g., 0 for the first page, 10 for the 2nd page, etc.)."
}
},
"required": [
"keyword",
"location"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence