Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Yelp business search, place details and the full review feed, as structured JSON.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
HASDATA_API_KEY, x-api-keyValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"yelp": {
"command": "npx",
"args": [
"-y",
"@hasdata/yelp-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http yelp 'https://mcp.hasdata.com/mcp?apis=yelp' --header 'x-api-key: your-value'claude mcp add yelp --env HASDATA_API_KEY=your-value -- npx -y @hasdata/yelp-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"yelp": {
"url": "https://mcp.hasdata.com/mcp?apis=yelp",
"headers": {
"x-api-key": "your-value"
}
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"yelp": {
"command": "npx",
"args": [
"-y",
"@hasdata/yelp-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"yelp": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=yelp",
"headers": {
"x-api-key": "your-value"
}
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"yelp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/yelp-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
x-api-key secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain hasdata.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: HASDATA_API_KEY, x-api-key
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (1.0.2) reached the registry 43 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A hosted Yelp MCP server that gives Claude, Cursor, Windsurf and any other MCP client three read-only Yelp tools. Search businesses by keyword and location, read one business in full, and page through its complete review feed, all as structured JSON, with no Yelp Fusion key and nothing to host.
It reads public Yelp pages that a signed-out visitor can see, on any of the 41 regional domains.
1,000 free credits every month, no card required, which is 100 Yelp calls at the 10-credit rate.
https://mcp.hasdata.com/mcp?apis=yelp
An MCP client and a HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 calls a month at the 10-credit rate. This is a remote server, so the simplest path is a URL and an x-api-key header, with no container to run. A client that only speaks stdio reaches it through a thin launcher, published as @hasdata/yelp-mcp on npm and hasdata-yelp-mcp on PyPI, shown below.
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
| Field | Value |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=yelp |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
Claude Code
claude mcp add --transport http yelp "https://mcp.hasdata.com/mcp?apis=yelp" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/mcp?apis=yelp and sign in.
For the config-file route, Claude Desktop loads only local (stdio) servers, so it reaches a remote server through a stdio launcher. The @hasdata/yelp-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:
{
"mcpServers": { "yelp": { "command": "npx", "args": ["-y", "@hasdata/yelp-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
For Python instead of Node, swap the launcher for the PyPI package, which uvx runs without a manual install:
{
"mcpServers": { "yelp": { "command": "uvx", "args": ["hasdata-yelp-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
Cursor
~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": { "yelp": { "url": "https://mcp.hasdata.com/mcp?apis=yelp", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Windsurf
~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:
{
"mcpServers": { "yelp": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=yelp", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
VS Code
.vscode/mcp.json in the workspace:
{
"servers": { "yelp": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=yelp", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Each of these lands on one tool, or on two in sequence when the second needs an identifier the first returns.
desnudo-coffee-austin.A prompt that names a business rather than a Yelp ID takes two calls, one search to resolve the ID and one place or reviews lookup to read it. The search tool returns both placeId and placeAlias, and either one works as the placeId argument to the place tool.
| Tool | What it returns |
|---|---|
hasdata_yelp_place_getPlaceDetails | Name, address, phone, website, price range, categories, overall rating, review count, hours, amenities, photos, and highlighted reviews. 10 credits a call |
hasdata_yelp_reviews_getPlaceReviews | 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…. 10 credits a call |
hasdata_yelp_search_getSearchResults | A ranked list of businesses with Yelp alias/ID, name, categories, rating, review count, price tier, neighborhood, and thumbnail. 10 credits a call |
Three tools, 10 credits per successful call. Every tool accepts domain to switch country, one of 41 values, from www.yelp.com through the European, Asian and Latin American sites, including the language-specific variants such as fr.yelp.ca and zh.yelp.com.hk.
hasdata_yelp_search_getSearchResults
A page of businesses for a keyword in a place.
| Parameter | Type | Required | Notes |
|---|---|---|---|
keyword | string | yes | What to search for, such as coffee |
location | string | yes | Where to search, such as Austin, TX |
l | string | Map bounding box instead of a radius, as g:lon1,lat1,lon2,lat2 | |
domain | string | Yelp site, defaults to www.yelp.com | |
start | number | Result offset, stepping by 10 |
Returns searchInformation with the echoed keyword, location and totalResults, an ads array of paid placements, an organicResults array, and pagination with currentPage, perPage, totalPages, nextPageUrl and otherPagesUrls.
The two result arrays are not the same shape. An organic result carries position and streetAddress, while an ad carries neither and adds phone and a highlights array of the badges Yelp shows advertisers. Merging the arrays without checking which one a business came from turns paid placement into rank.
{
"position": 2, "placeId": "oiJ7QuhhpsEpe9zFTZF0bA", "placeAlias": "desnudo-coffee-austin", "url": "https://www.yelp.com/biz/desnudo-coffee-austin", "title": "Desnudo Coffee", "streetAddress": "2505 Webberville Rd, Austin", "price": "$$", "categories": [{ "title": "Coffee Roasteries", "url": "https://www.yelp.com/search?find_desc=Coffee+Roasteries&find_loc=Austin%2C+TX" }], "snippet": "My favorite coffee shop to go to ever! Everyone must go. [[HIGHLIGHT]]Great coffee[[ENDHIGHLIGHT]], great vibes,great customer...", "rating": 4.7, "reviews": 347, "thumbnail": "https://s3-media0.fl.yelpcdn.com/bphoto/0nE_IcbRiyxrw3kk2z6owg/ls.jpg", "allImagesUrl": "https://www.yelp.com/biz_photos/oiJ7QuhhpsEpe9zFTZF0bA" }
hasdata_yelp_place_getPlaceDetails
One business in full.
| Parameter | Type | Required | Notes |
|---|---|---|---|
placeId | string | yes | A Yelp ID such as oiJ7QuhhpsEpe9zFTZF0bA, or an alias such as desnudo-coffee-austin |
domain | string | Yelp site, defaults to www.yelp.com |
Returns a placeResult object with name, url, address, neighborhoods, country, phone, website, price, categories, rating, reviews, isClaimed and isClaimable, an operationHours object holding a week of hours plus today, a features array, a menu object with popularDishes, a faqs array of questions Yelp readers asked and answered, a reviewHighlights array of the phrases Yelp pins to the top of the page, an images array, and businessMap, a static map image URL.
features is the amenities block, and each entry carries a title and an isActive flag, so a false entry is Yelp stating the amenity is absent rather than unknown. That difference matters when you filter, because dropping the false entries and dropping the missing ones are not the same query.
{
"name": "Desnudo Coffee", "url": "https://www.yelp.com/biz/desnudo-coffee-austin", "address": "2505 Webberville Rd Austin, TX 78702", "neighborhoods": "East Austin", "country": "US", "phone": "(424) 400-1857", "website": "http://www.desnudocoffee.com", "price": "$$", "categories": ["Coffee Roasteries"], "rating": 4.7, "reviews": 347, "isClaimed": true, "isClaimable": false, "operationHours": { "hours": [{ "day": "Mon", "hours": ["7:00 AM - 2:00 PM"] }] }, "features": [ { "title": "Offers delivery", "isActive": true }, { "title": "ADA-compliant restroom", "isActive": false } ], "menu": { "section": "Popular Drinks", "popularDishes": [{ "name": "Brown Sugar Miso Latte", "rating": 4.7, "reviews": 113, "photos": 71 }] } }
hasdata_yelp_reviews_getPlaceReviews
The review feed of one business, in full text, with sorting, filtering and pagination.
| Parameter | Type | Required | Notes |
|---|---|---|---|
placeId | string | yes | The Yelp ID of the business |
domain | string | Yelp site, defaults to www.yelp.com | |
sortBy | string | relevanceDesc (default), dateDesc, dateAsc, ratingDesc, ratingAsc or elitesDesc | |
rating | string | Keep only these star ratings, such as 5 or 1,2 | |
query | string | Free-text search inside the reviews | |
languageCode | string | Two-letter language of the reviews, defaults to en | |
notRecommended | boolean | Return the feed Yelp filters out instead of the recommended one |
| start | number | | Offset, step
Only the beginning is shown; read the rest in the repo