关于 martdata
martdata 是连接 HasData Walmart 数据服务的本地桥接程序,以 JSON 提供商品、评论和店铺搜索结果。它通过 MCP 服务和命令行提供只读访问,不支持购物车或结账操作。
主要功能
- 01按商品 ID 或 URL 获取详情
- 02浏览并筛选顾客评论
- 03按关键词或类别搜索商品
- 04按价格、配送方式和排序筛选
- 05通过命令行或 MCP 调用工具
适用场景
- 01比较商品价格和库存情况
- 02查看特定商品的评论
- 03查找指定价格范围内的商品
- 04浏览 Walmart 商品类别
MCP 相关
向 MCP 客户端提供三种只读 Walmart 数据工具,并将调用转发至 HasData 托管的 MCP 服务。每种工具也可通过命令行子命令调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 否 | 要原样抓取的完整 Walmart 商品 URL。提供此参数时,它会覆盖 `itemId`,并从 URL 本身确定店铺。除非提供 `itemId`,否则为必填项。 |
| domain | enum | 否 | 商品所属的 Walmart 店铺。每个店铺都有自己的目录、商品 ID、价格和货币,因此一个店铺的 ID 无法在另一个店铺中解析。提供 `url` 时会忽略此参数。默认值为 `walmart.com`。walmart.com | walmart.ca |
| itemId | string | 否 | Walmart 商品 ID,取自商品 URL 或 Walmart Search API 响应的 id 字段。在 `walmart.com` 上为数字(例如 `14977205582`),在 `walmart.ca` 上为字母数字代码(例如 `6NZMJ5CW6MH2`)。除非提供 `url`,否则为必填项。 |
| language | enum | 否 | 商品详情的语言。可用语言取决于店铺:`walmart.com` 提供 `en` 和 `es`,`walmart.ca` 提供 `en` 和 `fr`。如果店铺不支持指定语言,则回退到其默认语言。en | es | fr |
| otherOffers | boolean | 否 | 同时收集与此商品竞争的其他卖家的报价——包括每个卖家的名称、店铺、价格、状况、运费、送达日期和退货政策。这会额外向 Walmart 发起一次请求,并在基础费用 10 点之外再消耗 5 点,无论该商品是否确实存在竞争卖家。无论开关开启还是关闭,都会在 `otherOffers` 区块中返回页面显示的竞争卖家数量和最低竞争价格,因此可等数量表明有内容可收集时再开启。默认值为 `false`。 |
详细介绍
martdata
martdata 是一个小型本地桥接程序,用于连接托管的 HasData Walmart MCP 服务。该服务以 JSON 格式返回 Walmart 店面 数据。它可以根据商品 ID 或 URL 获取单个商品的完整页面, 分页浏览该商品的客户评价,并使用价格、配送方式和排序 筛选条件,在店面中按关键词或类别搜索。
该桥接程序不保存任何商品数据。它会在本地返回工具列表, 内容与从实时端点捕获的结果完全一致,并将每次工具调用 转发至上游,原样返回收到的内容。捕获到的功能仅包含对 公开店面数据的 3 种只读获取操作:不包含购物车、结账、 订单或支付工具,也不会返回任何个人联系信息。
工具
hasdata_walmart_product_getWalmartProduct— 根据itemId或url获取一个 Walmart 商品的完整信息 (如果两者都提供,则以 URL 为准)。可选参数:domain(walmart.com/walmart.ca)、language(en/es/fr),以及用于同时收集其他卖家报价的otherOffers。返回标题、品牌、价格和库存情况、 购买框卖家、评分、变体、配送详情以及其他卖家信息。 捕获的架构中没有标记为必填的参数:itemId和url可以互为替代。hasdata_walmart_reviews_getWalmartReviews— 根据itemId或url获取单个商品的客户评价,每页 10 条。可选参数:domain、language、page、sort(最相关、最新、 最有帮助、评分最高或最低、最早)、rating(一个星级值)、aspectId(一个高频提及主题)、condition,以及verifiedPurchasesOnly。返回每条评价的评分、文本、作者 和投票数,以及商品的评分分布、AI 评价摘要、各方面评分, 还有列出后续调用可用于筛选的值的筛选条件区块。hasdata_walmart_search_getSearchResults— 使用关键词q搜索店面,或通过catId浏览类别,也可以通过url抓取完整搜索 URL。可选参数:domain、language、sort(最佳匹配、价格从低到高或从高到低、畅销商品、 高评分、新品)、page、minPrice和maxPrice、deliveryType(shipping/pickup),以及采用name:value格式的缩小范围facet。返回包含价格、 评分、卖家和配送详情的商品列表,以及分面区块和分页信息。
配置
HASDATA_WALMART_MCP_URL(可选)— 覆盖上游端点。默认值为https://mcp.hasdata.com/mcp?apis=walmart。(此覆盖接口是 本次重建中明确标注的自行补充功能。)HASDATA_API_KEY(可选)— 设置后,每个上游请求都会携带x-api-key: <key>标头,其中使用调用方自己的 HasData API 密钥。 未设置时,不会发送密钥标头。(标头名称和环境变量名称由 原始项目的注册记录确定;从此环境变量转发密钥是明确标注的 重建功能,原始功能未使用密钥。)
转发机制
首次调用工具时,客户端会在上游打开一个可流式传输的
HTTP 会话:先发送 JSON-RPC initialize 请求(协议版本
2025-03-26,clientInfo 名称为 martdata),然后发送
notifications/initialized 通知,接着发送携带调用方参数且
未经更改的 tools/call 请求。如果上游在回复 initialize
时返回 Mcp-Session-Id 标头,则该值会随会话中的每个后续
请求一同发送;该会话会在进程存续期间重复使用。
回复可能采用普通 JSON 或服务器发送事件的形式;两种格式
都会被读取。
上游的成功结果会原样传递,包括上游设置的任何 isError
标志。失败情况——JSON-RPC 错误、非 2xx 状态、无法读取的
响应,或无法完成的请求——会作为 isError 结果返回,其
文本以 martdata error: 开头(此错误呈现方式是本次重建中
明确标注的自行补充功能)。
命令行
每个工具也是一个子命令,接受一个 JSON 参数字符串:
npx @reneturcios/martdata hasdata_walmart_product_getWalmartProduct '{"itemId":"14977205582"}'
npx @reneturcios/martdata hasdata_walmart_reviews_getWalmartReviews '{"itemId":"14977205582","sort":"mostRecent"}'
npx @reneturcios/martdata hasdata_walmart_search_getSearchResults '{"q":"coffee maker","maxPrice":90}'
npx @reneturcios/martdata --version
退出代码:成功时为 0,返回 isError 结果时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/martdata mcp
MCP 客户端配置:
{
"mcpServers": {
"martdata": {
"command": "npx",
"args": ["-y", "@reneturcios/martdata", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/martdata
docker run --rm ghcr.io/cloudcorprecords/martdata --version
容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务;任何其他参数都会正常传递给命令行。
开发
npm install
npm run build
npm test
npm run dev
测试套件完全针对存根化的 JSON-RPC 上游运行,不会进行实时网络调用。
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。