Yellow Pages local business search and full business listings, as structured JSON.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
A hosted Model Context Protocol (MCP) server that gives Claude, Cursor, Windsurf and any other MCP client two read-only Yellow Pages tools. Search local businesses by keyword and location, then read one listing in full with its phone, hours, services and photos, both as structured JSON, with nothing to host.
It reads public Yellow Pages listings that a signed-out visitor can see, on yellowpages.com and yellowpages.ca.
1,000 free credits every month, no card required, which is 100 Yellow Pages calls at the 10-credit rate.
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/yellowpages-mcp on npm and hasdata-yellowpages-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=yellowpages |
| 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.
Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/mcp?apis=yellowpages 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/yellowpages-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:
For Python instead of Node, swap the launcher for the PyPI package, which uvx runs without a manual install:
~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:
.vscode/mcp.json in the workspace:
Each of these lands on one tool, or on two in sequence when the second needs the URL the first returns.
A prompt that names a niche and a city goes to the search tool. Reading services, brands and payment methods takes a second call per business, so a prospect list wants the search tool and an enrichment pass wants the place tool.
| Tool | What it returns |
|---|---|
hasdata_yellowpages_place_getPlaceDetails | Scrapes a single YellowPages business listing URL and returns business name, full address, phone, website, categories, years in business, hours of operation, ratings,β¦. 10 credits a call |
hasdata_yellowpages_search_getSearchResults | Each business with name, listing URL, phone, address, categories, rating, review count, and years in business. 10 credits a call |
Two tools, 10 credits per successful call.
hasdata_yellowpages_search_getSearchResults
A page of businesses for a keyword in a place, 30 to a page.
| Parameter | Type | Required | Notes |
|---|---|---|---|
keyword | string | yes | What to search for, such as plumber |
location | string | yes | Where to search, such as Austin, TX |
sort | string | default, distance, averageRating or name | |
domain | string | www.yellowpages.com or www.yellowpages.ca | |
page | number | Result page, starting at 1 |
Returns searchInformation with the echoed query and totalResults, an organicResults array, and pagination with currentPage, totalPages, perPage, nextPageUrl and otherPageUrls.
Almost every field on a result is optional, because Yellow Pages shows what each business paid for or filled in. Across the 30 results in the sample, title, phone, url, categories, country and position arrived on all of them, address on 22, rating and reviews on 11, and contactUs on 5. Read defensively rather than assuming a shape.
hasdata_yellowpages_place_getPlaceDetails
One listing in full, by its Yellow Pages URL.
| Parameter | Type | Required | Notes |
|---|---|---|---|
url | string | yes | The listing URL, as the search tool returns it |
Returns four blocks rather than one flat object.
overview repeats the name, location, phone, hours, badges and website, and adds paymentAccepted and a breadcrumbs array showing where the listing sits in the Yellow Pages taxonomy. ratings holds the star rating. details holds the long-form copy the business wrote. images is an array of photo URLs.
The details block is where the enrichment value sits, and it arrives as comma-joined text rather than as arrays. generalInfo is the business description, servicesProducts the service list, brands the brands they carry, paymentMethod the payment types and categories the full category list as one string.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/hasdata-yellow-pages)<a href="https://allmcps.com/mcp/hasdata-yellow-pages"><img src="https://allmcps.com/api/badge/hasdata-yellow-pages?style=directory" alt="HasData Yellow Pages on AllMCPs" /></a>