Walmart MCP Server

Resultados de búsqueda de Walmart, páginas de productos y reseñas de clientes en walmart.com y walmart.ca, como JSON estructurado.

Documentación

Servidor Walmart MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) alojado que brinda a Claude, Cursor, Windsurf y cualquier otro cliente MCP tres herramientas de solo lectura de Walmart. Ejecute una búsqueda por palabra clave o categoría, lea un artículo con el vendedor que tiene el buy box, y recorra sus reseñas de clientes, todo como JSON estructurado, sin cuenta de desarrollador de Walmart y sin nada que alojar.

Lee páginas públicas de Walmart que un visitante sin sesión puede ver, en walmart.com y walmart.ca.

1,000 créditos gratis cada mes, sin tarjeta requerida, lo que equivale a 100 llamadas a Walmart a la tarifa de 10 créditos.

https://mcp.hasdata.com/api/mcp?apis=walmart

Glama score tool contract MCP Tools npm PyPI License

Contenido

Lo que necesitas

Un cliente MCP y una clave de API de HasData desde el panel, gratis de crear sin tarjeta, y el nivel gratuito cubre alrededor de 100 llamadas al mes a la tarifa de 10 créditos. Este es un servidor remoto, por lo que la ruta más simple es una URL y un encabezado x-api-key, sin contenedor que ejecutar. Un cliente que solo habla stdio lo alcanza a través de un lanzador ligero, publicado como @hasdata/walmart-mcp en npm y hasdata-walmart-mcp en PyPI, que se muestra a continuación.

Inicio rápido

La URL del servidor es la misma para cada cliente. Lo ejecutamos de forma práctica en Claude Code y Claude Desktop. Los otros bloques siguen el formato documentado de cada cliente para un servidor remoto.

CampoValor
URLhttps://mcp.hasdata.com/api/mcp?apis=walmart
TransporteHTTP, transmisible
Encabezado de autenticaciónx-api-key: HASDATA_API_KEY

Los clientes con soporte OAuth pueden agregar la misma URL como conector e iniciar sesión sin poner una clave en un archivo de configuración.

Claude Code
claude mcp add --transport http walmart "https://mcp.hasdata.com/api/mcp?apis=walmart" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

Configuración, luego Conectores, luego Agregar conector personalizado, luego pegue https://mcp.hasdata.com/api/mcp?apis=walmart e inicie sesión.

Para la ruta de archivo de configuración, Claude Desktop solo carga servidores locales (stdio), por lo que alcanza un servidor remoto a través de un lanzador stdio. El paquete @hasdata/walmart-mcp es ese lanzador, y lee la clave del entorno. Agregue esto a claude_desktop_config.json:

{
  "mcpServers": {
    "walmart": {
      "command": "npx",
      "args": ["-y", "@hasdata/walmart-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Para Python en lugar de Node, cambie el lanzador por el paquete de PyPI, que uvx ejecuta sin instalación manual:

{
  "mcpServers": {
    "walmart": {
      "command": "uvx",
      "args": ["hasdata-walmart-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}
Cursor

~/.cursor/mcp.json para cada proyecto, o .cursor/mcp.json para uno:

{
  "mcpServers": {
    "walmart": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=walmart",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json. Windsurf llama al campo serverUrl, no url:

{
  "mcpServers": {
    "walmart": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=walmart",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
VS Code

.vscode/mcp.json en el espacio de trabajo:

{
  "servers": {
    "walmart": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=walmart",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Ejemplos de indicaciones

Cada una de estas aterriza en una herramienta, o en dos en secuencia cuando la segunda necesita el id de artículo que la primera devuelve.

  • Encuentra soportes para laptop de menos de $30 en Walmart y ordénalos por precio.
  • ¿Cuánto cuesta el artículo 18493462688 ahora mismo, y quién tiene el buy box?
  • Muéstrame todos los demás vendedores que ofrecen este artículo y cuánto cobran con envío.
  • Lee las reseñas de este artículo que mencionan la duración de la batería.
  • Extrae solo las reseñas de compra verificada de este artículo y resume las quejas.
  • Compara el precio de este artículo en walmart.com y walmart.ca.

Una indicación que nombra un producto en lugar de un id de artículo toma dos llamadas, una búsqueda para resolver el id y una consulta de producto para leerlo. Las reseñas funcionan igual, y el resultado de búsqueda lleva el id que ambas necesitan.

Herramientas

Tres herramientas, 10 créditos por llamada exitosa. Cada una toma domain, ya sea walmart.com o walmart.ca, y language, donde walmart.com sirve en y es mientras que walmart.ca sirve en y fr. Un idioma que la tienda no ofrece cae a su predeterminado.

Los ids de artículo están limitados a la tienda. En walmart.com son numéricos, como 18493462688, y en walmart.ca alfanuméricos, como 6NZMJ5CW6MH2. Un id de una tienda no se resuelve en la otra.

Obtener resultados de búsqueda de Walmart

hasdata_walmart_search_getSearchResults

Una página de resultados de búsqueda para una palabra clave, una categoría, o ambas.

ParámetroTipoRequeridoNotas
qstringver abajoEl término de búsqueda
catIdstringver abajoId de categoría de una URL de categoría, como 976759_1086446_1229651
urlstringUna URL completa de búsqueda o categoría de Walmart, extraída tal cual. Anula los parámetros anteriores
domainstringwalmart.com o walmart.ca
languagestringen, es o fr, sujeto a la tienda
sortstringbestMatch, priceLowToHigh, priceHighToLow, bestseller, highlyRated o newArrivals
pagenumberPágina de resultados, comenzando en 1
minPrice / maxPricenumberBanda de precios en la moneda de la tienda
deliveryTypestringshipping o pickup
facetstringUn filtro en forma de name:value, como brand:Great Value

Envíe q para buscar, catId para navegar una categoría completa, o ambos para buscar dentro de una. Ninguno aparece en el arreglo required del esquema porque cualquiera de los dos satisface la llamada por sí solo.

Devuelve searchInformation, un arreglo productResults, un bloque facets y pagination. Cada resultado lleva position, id, title, url, brand, isSponsored, badges, walmartPlusSavings, categoryPathId, un objeto price, reviews con rating y totalReviews, image, seller, availability y fulfillment.

El bloque facets es el mapa de cada filtro que la consulta soporta, y cada valor lleva la cadena exacta para enviar de vuelta en facet. Ejecutar una búsqueda sin filtros para leer las facetas es más barato que adivinar.

{
  "position": 1,
  "id": "18493462688",
  "title": "Incipio Portable Foldable Aluminum Laptop Stand and Riser with Adjustable Angles, Anti-Slip and Ventilated Design",
  "url": "https://www.walmart.com/ip/Portable-Laptop-Stand-Black/18493462688",
  "isSponsored": true,
  "badges": ["Overall pick"],
  "walmartPlusSavings": true,
  "categoryPathId": "4125_4134_1074326_9623037_7875081",
  "price": { "currentPrice": 9.96, "currentPriceDisplay": "$9.96" },
  "reviews": { "rating": 4.5, "totalReviews": 49 }
}

Obtener detalles de producto de Walmart

hasdata_walmart_product_getWalmartProduct

Un artículo completo.

ParámetroTipoRequeridoNotas
itemIdstringver abajoEl id de artículo de Walmart
urlstringver abajoUna URL completa de producto, extraída tal cual. Anula itemId y establece la tienda
domainstringwalmart.com o walmart.ca, ignorado cuando se da url
languagestringen, es o fr, sujeto a la tienda
otherOffersbooleanTambién recopila ofertas competidoras. Cuesta 5 créditos adicionales, 15 en lugar de 10

Pase itemId o url. Como con la búsqueda, ninguno se lista como requerido porque cualquiera funciona solo.

Devuelve un objeto product con itemId, title, url, brand, brandUrl, type, model, upc, condition, badges, availability, un objeto price, el seller que tiene el buy box, reviews, images, categoryPath, categoryPathId, highlights, specifications, keyItemFeatures, productDetails y fulfillment.

La llamada base ya informa cuántos competidores anuncia la página y el precio competidor más barato. Active otherOffers solo cuando necesite las ofertas en sí, porque toma una segunda solicitud a Walmart y cuesta la mitad más.

{
  "itemId": "18493462688",
  "brand": "Incipio",
  "condition": "New",
  "price": { "currentPrice": 9.96, "currentPriceDisplay": "$9.96", "currency": "USD" },
  "seller": {
    "name": "Walmart.com",
    "id": "F55CDC31AB754BB68FE0B39041159D63",
    "returnPolicy": "Free 30-day returns"
  },
  "reviews": {
    "totalReviews": 49,
    "rating": 4.5,
    "fiveStars": 38,
    "fourStars": 4,
    "threeStars": 3,
    "twoStars": 1,
    "oneStar": 3
  },
  "specifications": [{ "name": "Maximum screen size", "value": "16 in" }],
  "fulfillment": {
    "type": "FC",
    "message": "Pickup, today at Fredericksburg Massaponax Supercenter",
    "deliveryDate": "2026-09-09T21:59:00.000Z"
  }
}

Obtener reseñas de producto de Walmart

hasdata_walmart_reviews_getWalmartReviews

El feed de reseñas de un artículo, diez reseñas por página.

ParámetroTipoRequeridoNotas
itemIdstringver abajoEl id de artículo de Walmart
urlstringver abajoUna URL completa de producto cuyas reseñas leer. Anula itemId
domainstringwalmart.com o walmart.ca, ignorado cuando se da url
languagestringIdioma de la página de reseñas, no de las reseñas en sí
pagenumberPágina de reseñas, diez por página
sortstringmostRelevant, mostRecent, mostHelpful, highestRated, lowestRated o oldest
ratingnumberMantener una calificación de estrellas, 1 a 5
aspectIdstringMantener reseñas que mencionen un tema, por su id
conditionstringMantener reseñas sobre una condición del artículo
verifiedPurchasesOnlybooleanMantener solo compras que Walmart confirmó

Devuelve reviewsInformation, un arreglo reviewResults, un bloque filters, appliedFilters y pagination.

filters es la parte que vale la pena leer primero. Lista las calificaciones de estrellas, menciones frecuentes y condiciones por las que este artículo realmente se puede filtrar, cada una con un conteo y con el value exacto para enviar de vuelta. Dado {"name": "Battery Life", "value": "6049", "count": 8} envía aspectId: "6049" y espera ocho reseñas. Adivinar un id de aspecto en lugar de leerlo aquí es la forma habitual de obtener una página vacía.

reviewsInformation lleva la calificación del artículo, el desglose por estrellas, puntuaciones por aspecto y el resumen de reseñas de IA de Walmart. También separa totalRatings de totalReviews, que importan por separado: el artículo a continuación tiene 49 calificaciones pero solo 21 reseñas escritas, y la paginación cubre las 21.

{
  "reviewsInformation": {
    "rating": 4.49,
    "totalRatings": 49,
    "totalReviews": 21,
    "recommendedPercentage": 100,
    "ratingBreakdown": { "fiveStars": 38, "fourStars": 4, "threeStars": 3, "twoStars": 1, "oneStar": 3 }
  },
  "reviewResults": [
    {
      "position": 1,
      "id": "434698083",
      "rating": 5,
      "title": "Good value laptop stand.",
      "text": "Good value for money. Not the sturdiest, but that is to be expected for a collapsible laptop stand. Overall gets the job done, I'd buy it again.",
      "date": "8/1/2026",
      "verifiedPurchase": true,
      "helpfulVotes": 0,
      "notHelpfulVotes": 0,
      "badges": ["Verified Purchase"],
      "seller": "Walmart.com",
      "language": "English",
      "aspects": [{ "id": "284", "polarity": "Positive" }]
    }
  ],
  "filters": [
    { "name": "Star rating", "parameter": "rating", "values": [{ "name": "5 stars", "value": "5", "count": 38 }] },
    { "name": "Frequent mentions", "parameter": "aspectId", "values": [{ "name": "Sturdiness", "value": "828", "count": 6 }] }
  ],
  "pagination": { "currentPage": 1, "reviewsPerPage": 10, "totalPages": 3, "totalResults": 21, "nextPage": 2 }
}

Errores y rutas de fallo

Planifique para estos en lugar de asumir un camino feliz.

Dos totales discrepan en una respuesta de búsqueda, y ambos son correctos. searchInformation.totalResultsDisplay es la cadena que Walmart imprime en la página, como "1000+", mientras que pagination.totalResults es el número detrás de ella, como 8005. Uno es texto de visualización y el otro es un entero, así que no analice el primero ni imprima el segundo.

Walmart deja de servir resultados después de aproximadamente la página 10. Más allá de eso, la página vuelve vacía en lugar de dar error. Una palabra clave grande no se puede enumerar paginando, así que redúzcala con facet, una banda de precios o una categoría en su lugar.

Los precios pertenecen a una tienda, y la respuesta dice cuál. searchInformation.storeId la nombra, y fulfillment.message la nombra en palabras, hasta "Pickup, today at Fredericksburg Massaponax Supercenter". Comparar precios entre llamadas solo tiene sentido mientras esa tienda siga siendo la misma.

deliveryType: pickup se responde contra una sola tienda. Un artículo en stock a nivel nacional aún puede volver no disponible, porque no está disponible en esa tienda en lugar de en todas.

La herramienta de producto informa calificaciones donde podría leer reseñas. Su reviews.totalReviews es el conteo de calificaciones, 49 para el artículo anterior, mientras que la herramienta de reseñas informa 49 calificaciones y 21 reseñas escritas por separado. Use la herramienta de reseñas cuando la distinción importe. Las fechas de reseña son cadenas M/D/YYYY. "8/1/2026" es el primero de agosto, no el ocho de enero. Analiza con el formato en mano en lugar de dejar que una biblioteca de fechas adivine.

Una reseña puede llevar un id de aspecto ausente de filters. El bloque enumera los temas por los que se puede filtrar el artículo, que es una lista más corta que los temas con los que se etiquetaron sus reseñas. Lee los aspectos de la reseña y filtra solo con los ids que ofrece el bloque.

variants falta en lugar de estar vacío en un artículo sin variantes. Verifica la clave antes de leerla.

Solo un condition por solicitud. El parámetro toma un solo valor, por lo que una consulta en dos condiciones requiere dos llamadas.

Los resultados que contienen datos también llevan un requestMetadata.id que vale la pena citar como respaldo.

Precios, nivel gratuito y límites

Cada herramienta de Walmart cuesta 10 créditos por llamada exitosa. Activar otherOffers añade 5 créditos a la llamada de producto, 15 en lugar de 10, así que déjalo desactivado a menos que las ofertas de la competencia sean el punto. El tamaño de la respuesta no cambia el precio.

El nivel gratuito es 1,000 créditos cada mes sin tarjeta, lo que equivale a 100 llamadas de Walmart a la tarifa base. Se renueva con el ciclo de facturación, por lo que un agente de bajo volumen funciona en el nivel gratuito indefinidamente.

Los planes de pago comienzan en $49 al mes por 200,000 créditos, lo que equivale a 20,000 llamadas. El precio unitario baja con el volumen, desde $2.45 por cada 1,000 llamadas en el plan inicial hasta $1.00 en Business, $0.84 en Growth y $0.74 en los planes de alto volumen más grandes.

Tu plan también establece la concurrencia. El nivel gratuito permite 1 solicitud a la vez, Startup 15, Business 30, Growth 50, y los planes de alto volumen van de 200 a 1,500. Reintenta con el 429 con un retroceso en cualquier proceso desatendido, porque un agente que se expande entre ids de artículos alcanzará el límite antes que tú.

Una solicitud que devuelve un código distinto de 200 no se factura. Una llamada exitosa que no encuentra nada sigue siendo una llamada.

Selección de herramientas

Comienza por lo que te da el prompt. Una palabra clave o una categoría va a la herramienta de búsqueda, un id de artículo va directamente a la herramienta de producto o reseñas. Gastar una llamada de búsqueda para llegar a un id que ya tienes es el desperdicio más común.

Luego elige según lo que pregunta la pregunta. El resultado de búsqueda es suficiente para clasificaciones, barridos de precios y trabajo de cuota de estante en muchos artículos. La herramienta de producto es la única que lleva especificaciones, el vendedor del buy box y el recuento de ofertas de la competencia. La herramienta de reseñas es la única que lleva texto de reseñas.

Lee el bloque filters antes de filtrar. Una llamada de reseñas sin filtrar te dice qué calificaciones, temas y condiciones existen y cuántas reseñas tiene cada uno, lo que convierte un filtro adivinado en uno conocido.

Cómo se compara

Las API oficiales de Afiliados y Marketplace de Walmart son las rutas oficiales a estos datos, y responden preguntas diferentes.

API de Afiliados de WalmartAPI de Marketplace de WalmartEste servidor
ElegibilidadUna cuenta de afiliado aprobadaUna cuenta de vendedor de WalmartUna clave API
AlcanceArtículos en el catálogo de afiliadosTus propias listas y pedidosCualquier página pública de artículo
Vendedores competidoresNo se devuelvenSolo tus propias ofertasLa lista de ofertas, con otherOffers
Texto de reseñasNo se devuelveReseñas de tus artículosEl feed, con filtros
Buy boxNo se devuelvePara tus artículosQuien lo tenga
walmart.caPrograma separadoCuenta separadaUn parámetro
CostoGratis, cuando calificasGratis con una cuenta de vendedorDe pago más allá del nivel gratuito

La fila que lo decide es el alcance. Ambas API oficiales responden preguntas sobre un catálogo con el que tienes una relación comercial, lo que las descarta para vigilar a un competidor. Cuando los artículos son tuyos, la API de Marketplace es autoritativa y gratuita, y deberías usarla.

Preguntas frecuentes

¿Existe un servidor MCP oficial de Walmart?

Walmart no publica uno. Este es mantenido por HasData y lee páginas públicas de Walmart.

¿Qué es un servidor MCP de Walmart?

Un servidor MCP expone herramientas que un cliente de IA puede llamar. Este convierte resultados de búsqueda de Walmart, páginas de artículos y feeds de reseñas en JSON sobre el que un agente puede razonar, sin un navegador o una biblioteca de scraping en tu stack.

¿Necesito una cuenta de Walmart o una cuenta de vendedor?

No. La única credencial es tu clave de HasData.

¿Qué escaparates están cubiertos?

walmart.com y walmart.ca. Tienen catálogos, ids de artículos, precios y monedas separados, por lo que una comparación entre escaparates es una comparación real en lugar de una conversión de moneda.

¿Por qué mi id de artículo no devolvió nada?

La mayoría de las veces porque pertenece al otro escaparate. Un id numérico es walmart.com y uno alfanumérico es walmart.ca, y ninguno se resuelve en el otro. Pasa domain para que coincida, o pasa el url completo y deja que establezca el escaparate.

¿Cómo obtengo las ofertas de la competencia?

Establece otherOffers en la llamada de producto. Cada oferta devuelve el nombre del vendedor, URL del escaparate, precio, condición, costo de envío, fecha de entrega y política de devolución. Cuesta 5 créditos más, porque requiere una segunda solicitud a Walmart.

¿Por qué la misma búsqueda devuelve precios diferentes en días diferentes?

En parte porque los precios se mueven, y en parte porque la respuesta se responde contra una tienda de Walmart, reportada como searchInformation.storeId. Mantén esa tienda constante antes de leer un cambio de precio como un cambio de precio.

¿Puedo usar esto junto con otras API de HasData?

Sí. Una clave cubre todo, y un endpoint las sirve todas a través del parámetro apis. Apunta un cliente a ?apis=walmart,amazon para obtener ambos conjuntos de herramientas en una conexión, o a mcp.hasdata.com/api/mcp para el catálogo completo.

¿Está HasData afiliado a Walmart?

No. HasData es un servicio independiente y no está afiliado, respaldado ni patrocinado por Walmart. Walmart es una marca comercial de su respectivo propietario. Las herramientas funcionan solo con datos disponibles públicamente, y eres responsable de usar los resultados de acuerdo con los términos de Walmart y la ley que te aplica.

Cumplimiento y datos personales

Las reseñas llevan un nombre de autor tal como el revisor eligió publicarlo, junto con una bandera de compra verificada. Las entradas de vendedores de Marketplace llevan un nombre comercial y una URL de escaparate. Ningún bloque necesita los campos de autor para trabajo de sentimiento o precios, así que elimínalos a menos que tu propósito los necesite, y verifica tus propias obligaciones antes de almacenarlos.

Enlaces de HasData

Otros servidores MCP de HasData: Google Search, Google Maps, Google Trends, Google Flights, DuckDuckGo, YouTube, TikTok, Instagram, Amazon, Shopify, Yelp, Zillow, Redfin, Airbnb, Booking.com, Indeed.

Desarrollo

El lanzador es un puente stdio delgado hacia el servidor remoto, por lo que no hay nada que compilar.

npm install
HASDATA_API_KEY=your_key_here npm test

Las pruebas en test/ verifican el contrato de la herramienta, la parte que puede romperse sin un commit aquí. Comprueban que ?apis=walmart devuelve el recuento esperado de herramientas, que ningún nombre cambió, que cada herramienta todavía lleva una descripción, que los parámetros de uno u otro que este README documenta siguen en el esquema, y que la clave en uso realmente se acepta. Esa última verificación llama a una herramienta de verdad y cuesta 10 créditos, que es el precio de un canario que puede fallar por la razón correcta.

Ninguna de las tres herramientas declara un parámetro obligatorio, porque cada una acepta una de dos entradas. El conjunto fija las alternativas en lugar del array required, que pasaría mientras el esquema no dijera nada.

El conjunto de contrato también se ejecuta semanalmente en un horario, porque la lista de herramientas ascendente puede cambiar sin que nadie toque este repositorio.

Contribuciones

Una tabla de herramientas, una muestra de respuesta o un comportamiento documentado que no coincida con la realidad merece un issue. Hay una plantilla exactamente para eso. Las solicitudes de extracción son bienvenidas para lo mismo, y para cualquier cosa en el lanzador.

Licencia

MIT, ver LICENSE.