Walmart search, product pages and customer reviews on walmart.com and walmart.ca, as 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 three read-only Walmart tools. Run a keyword or category search, read one item with the seller holding the buy box, and page through its customer reviews, all as structured JSON, with no Walmart developer account and nothing to host.
It reads public Walmart pages that a signed-out visitor can see, on walmart.com and walmart.ca.
1,000 free credits every month, no card required, which is 100 Walmart 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/walmart-mcp on npm and hasdata-walmart-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=walmart |
| 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=walmart 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/walmart-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 item id the first returns.
A prompt that names a product rather than an item id takes two calls, one search to resolve the id and one product lookup to read it. Reviews work the same way, and the search result carries the id both need.
| Tool | What it returns |
|---|---|
hasdata_walmart_product_getWalmartProduct | Title, brand, model, UPC, condition, availability, price with strikethrough before-price and unit price, the seller holding the buy box with its rating and return…. 10 credits a call |
hasdata_walmart_reviews_getWalmartReviews | Each review with its rating, title, full text with paragraphs preserved, submission date, author, verified-purchase flag, helpful and not-helpful vote counts, badges,…. 10 credits a call |
hasdata_walmart_search_getSearchResults | The product list with item id, title, product URL, brand, price and strikethrough before-price, star rating, review count, seller, availability, sponsored flag, badges,…. 10 credits a call |
Three tools, 10 credits per successful call. Each takes domain, either walmart.com or walmart.ca, and language, where walmart.com serves en and es while walmart.ca serves en and fr. A language the storefront does not offer falls back to its default.
Item ids are storefront-scoped. On walmart.com they are numeric, such as 18493462688, and on walmart.ca alphanumeric, such as 6NZMJ5CW6MH2. An id from one storefront does not resolve on the other.
hasdata_walmart_search_getSearchResults
A page of search results for a keyword, a category, or both.
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | see below | The search term |
catId | string | see below | Category id from a category URL, such as 976759_1086446_1229651 |
url | string | A full Walmart search or category URL, scraped as is. Overrides the parameters above | |
domain | string | walmart.com or walmart.ca | |
language | string | en, es or fr, subject to the storefront | |
sort | string | bestMatch, priceLowToHigh, priceHighToLow, bestseller, highlyRated or newArrivals | |
page | number | Result page, starting at 1 | |
minPrice / maxPrice | number | Price band in the storefront currency | |
deliveryType | string | shipping or pickup | |
facet | string | One filter in name:value form, such as brand:Great Value |
Send q to search, catId to browse a whole category, or both to search inside one. Neither appears in the schema's required array because either one satisfies the call on its own.
Returns searchInformation, a productResults array, a facets block and pagination. Each result carries position, id, title, url, brand, isSponsored, badges, walmartPlusSavings, categoryPathId, a price object, reviews with rating and totalReviews, image, seller, availability and fulfillment.
The facets block is the map of every filter the query supports, and each value carries the exact string to send back in facet. Running one unfiltered search to read the facets is cheaper than guessing.
hasdata_walmart_product_getWalmartProduct
One item in full.
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-walmart)<a href="https://allmcps.com/mcp/hasdata-walmart"><img src="https://allmcps.com/api/badge/hasdata-walmart?style=directory" alt="HasData Walmart on AllMCPs" /></a>