walmart-mcp
Provides tools for managing Walmart Marketplace catalog (items, inventory, prices, orders) and searching the public Walmart catalog (product search, lookup, taxonomy, trending, reviews, store locator).
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
walmart-mcp
A TypeScript Walmart API client, delivered as an MCP server (stdio) with a reusable SDK underneath. It wraps two Walmart APIs behind one client:
Marketplace (seller) — manage your Walmart Marketplace catalog: items, inventory, prices, and orders. OAuth 2.0.
Affiliate / Catalog (consumer) — search the public Walmart catalog: product search, lookup, taxonomy, trending, reviews, and store locator. Read-only, RSA-signature auth.
Configure either or both surfaces. Tools register only for the surfaces you've configured.
Why this one
Importable SDK, not just a server.
client/+api/are a standalone, fully unit-tested Walmart SDK with zero MCP knowledge —import { WalmartSdk }and use it in any Node project. The MCP server is a thin wrapper.Minimal footprint. Two runtime deps total (
@modelcontextprotocol/sdk+zod). RSA signing and correlation UUIDs use Node's built-incrypto;.envis loaded via--env-file, nodotenv/node-rsa/uuid.Two auth schemes done right. Marketplace's OAuth token is cached and auto-refreshed on
401; the Affiliate signature is regenerated (with a fresh timestamp) on every request.Curated outputs. Search/list tools return compact, schema-validated
structuredContentinstead of raw, deeply-nested Walmart payloads, so agents don't shell out to parse JSON.
Related MCP server: walmart-marketplace-mcp
Which surface do I want?
You are… | Use | Credentials from | Auth |
A Walmart seller managing your listings/orders | Marketplace | developer.walmart.com → API Key Management | OAuth 2.0 (Client ID + Secret) |
An affiliate / app reading the public catalog | Affiliate | walmart.io (program approval required) | RSA signature (Consumer ID + private key) |
Setup
1. Install & build
npm install
npm run build2. Configure credentials
cp .env.example .env # then fill in whichever surface(s) you use# Marketplace (seller)
WALMART_CLIENT_ID=...
WALMART_CLIENT_SECRET=...
# Affiliate / Catalog (consumer)
WALMART_CONSUMER_ID=...
WALMART_PRIVATE_KEY=... # single-line Base64 PKCS#8 from the portal (or a full PEM)
WALMART_KEY_VERSION=1The server reads credentials from its environment; it does not auto-load
.env. Your MCP client supplies them via the configenvblock (step 4). For the CLI and standalone runs, Node's--env-file=.envloads them (thenpm run check/npm startscripts do this).
Notes:
Private key handling.
WALMART_PRIVATE_KEYaccepts the single-line Base64 key the Walmart.io portal issues, or a full-----BEGIN PRIVATE KEY-----PEM. It's never logged. The matching public key is uploaded to the portal;WALMART_KEY_VERSIONis shown next to it.Marketplace tokens are short-lived (~15 min) and cached in your OS data dir (
$XDG_DATA_HOME/walmart-mcpon Unix,%APPDATA%\walmart-mcpon Windows; files chmod0600), then auto-refreshed on use.
3. Validate (optional but recommended)
npm run checkMints a Marketplace token (proves CLIENT_ID/SECRET) and signs a live Affiliate request (proves CONSUMER_ID + private key), skipping whichever surface you didn't configure. Expected output:
Marketplace validating OAuth client credentials… OK
Affiliate signing a taxonomy request… OK
✅ Configured surfaces validated. The MCP server reuses these same credentials.4. Register with your MCP client
{
"mcpServers": {
"walmart": {
"command": "node",
"args": ["/absolute/path/to/walmart-mcp/dist/mcp/server.js"],
"env": {
"WALMART_CLIENT_ID": "...",
"WALMART_CLIENT_SECRET": "...",
"WALMART_CONSUMER_ID": "...",
"WALMART_PRIVATE_KEY": "...",
"WALMART_KEY_VERSION": "1"
}
}
}
}5. Run
Your MCP client launches node dist/mcp/server.js, injects the env vars, and the server
registers the tools for each configured surface. (To run standalone for testing: npm start.)
Tools
Affiliate / Catalog (read-only)
Tool | Purpose |
| Full-text catalog search (compact results) |
| Look up products by item id(s), UPC, or GTIN |
| The catalog category tree |
| Currently trending products |
| Customer reviews for a product |
| Walmart stores near a lat/long, city, or ZIP |
Marketplace (seller)
Tool | Auth | Purpose |
| OAuth | List your catalog (compact, cursor-paginated) |
| OAuth | One catalog item by SKU |
| OAuth | A SKU's on-hand inventory |
| OAuth | Write: set a SKU's available quantity |
| OAuth | Write: update a SKU's price |
| OAuth | List orders by date/status (compact, cursor-paginated) |
| OAuth | One order by purchaseOrderId |
| OAuth | Write: acknowledge an order (required before shipping) |
Search/list tools return compact, structured results (structuredContent validated by an
output schema) — just the fields the workflow needs — rather than the raw, deeply-nested Walmart
payload.
Troubleshooting
Symptom | Cause / fix |
Server logs "No Walmart credentials found" | Neither surface configured. Fill the config |
A tool returns "… credentials are not configured" | That surface's env vars are missing; the other surface still works. |
| Client ID/Secret wrong or revoked. Re-check with |
| Wrong Consumer ID, key version, or private key; or large clock skew (timestamp TTL ≈ 180s). Verify with |
"Could not parse the affiliate private key" |
|
MCP server won't start / behaves like old code |
|
|
|
Development
npm test # vitest (fetch mocked, throwaway RSA keypair) — no credentials needed
npm run typecheck
npm run build # also runs on install (prepare) and before start/checkArchitecture
src/
client/ WalmartClient, marketplaceAuth (OAuth), affiliateAuth + signature (RSA),
tokenStore, correlation, errors
api/ marketplace/{items,inventory,prices,orders}, affiliate/catalog (zero MCP knowledge)
types/ request/response shapes
mcp/ server.ts (stdio) + config.ts + tools.ts + format.ts
sdk.ts WalmartSdk facadeThe client/ + api/ layers are a standalone SDK, fully unit-tested with fetch mocked;
mcp/ is a thin wrapper. Import the SDK directly via the package root (WalmartSdk).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
MCP server for MarketTime — wholesale orders, customers, catalog and shipment tracking.
MCP server for SkuVault — products, inventory, sales, purchase orders and stock adjustments.
Hosted MCP server for OTTO Market, Kaufland and Mirakl sellers: orders, stock, listings and ads.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides access to WooCommerce REST API functionality, enabling product, order, customer, and coupon management.348 npm1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that lets you manage a Walmart Marketplace seller account in plain language, including orders, inventory, pricing, returns, WFS fulfillment, and reports.1MIT
- AlicenseAqualityBmaintenanceMCP server for Walmart Connect Ads APIs, enabling AI agents to execute any Sponsored Search or Display API endpoint with automatic RSA-SHA256 signing and download display snapshots.52MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Amazon Selling Partner API and Advertising API, enabling access to orders, inventory, pricing, ads, and reports via natural language.1MIT