关于 HasData Walmart
HasData Walmart 是面向商品研究和购物分析工作流的托管式 MCP 服务,可查询 Walmart 美国和加拿大站的商品、卖家及评价,并以结构化 JSON 返回。数据来自无需登录即可查看的公开页面。
主要功能
- 01按关键词或类别搜索商品
- 02读取商品价格、库存和卖家
- 03查看其他卖家的报价
- 04分页获取顾客评价
- 05按评分和主题筛选评价
适用场景
- 01比较 Walmart 商品价格和卖家
- 02查找指定价位或类别的商品
- 03筛选已验证购买者的评价
- 04汇总商品评价中的特定话题
MCP 相关
该托管远程服务向 MCP 客户端提供只读的 Walmart 商品搜索、详情和评价工具,支持 walmart.com 与 walmart.ca。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.hasdata.com/mcp?apis=walmartclaude mcp add --transport http com-hasdata-walmart https://mcp.hasdata.com/mcp?apis=walmart{"mcpServers":{"com-hasdata-walmart":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=walmart"}}}在 Cursor 中打开{"servers":{"com-hasdata-walmart":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=walmart"}}}在 VS Code 中打开{"mcpServers":{"com-hasdata-walmart":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=walmart"}}}{"mcpServers":{"com-hasdata-walmart":{"serverUrl":"https://mcp.hasdata.com/mcp?apis=walmart"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.hasdata.com/mcp?apis=walmart需要授权工具
2| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| pets | number | 否 | 宠物数量。 |
| neLat | number | 否 | 地图边界框东北角的纬度。提供全部四个边界框坐标后,将在框内搜索房源,而不是按位置搜索。 |
| neLng | number | 否 | 地图边界框东北角的经度。 |
| swLat | number | 否 | 地图边界框西南角的纬度。 |
| swLng | number | 否 | 地图边界框西南角的经度。 |
| adults | number | 否 | 成人数量。 |
| checkIn | string | 是 | 房源的入住日期。 |
| infants | number | 否 | 婴幼儿数量。 |
| checkOut | string | 否 | 房源的退房日期。 |
| children | number | 否 | 子女数量。 |
| location | string | 否 | 用于搜索房源的地点。除非提供完整地图边界框(neLat、neLng、swLat、swLng),否则必填。 |
| nextPageToken | string | 否 | 用于获取下一页结果的令牌。 |
详细介绍
Walmart MCP 服务
一个托管的 Model Context Protocol(MCP)服务,为 Claude、Cursor、Windsurf 及其他任何 MCP 客户端提供三个只读的 Walmart 工具。运行关键词或类别搜索,读取一件商品及其购物车推荐位卖家,并翻阅该商品的客户评价;所有结果均为结构化 JSON,无需 Walmart 开发者账号,也无需自行托管。
该服务读取已退出登录的访客可查看的 Walmart 公开页面,网址为 walmart.com 和 walmart.ca。
每月提供 1,000 个免费额度,无需绑定银行卡,按每次调用 10 个额度计算,可调用 100 次 Walmart。
https://mcp.hasdata.com/mcp?apis=walmart
目录
所需条件
一个 MCP 客户端,以及从 dashboard 获取的 HasData API 密钥;创建密钥免费且无需绑定银行卡。免费套餐按每次调用 10 个额度计算,每月约可调用 100 次。这是远程服务,因此最简单的接入方式是使用 URL 和 x-api-key 请求头,无需运行容器。只支持 stdio 的客户端可通过轻量启动器连接该服务。启动器已发布到 npm,包名为 @hasdata/walmart-mcp;也已发布到 PyPI,包名为 hasdata-walmart-mcp,如下所示。
快速开始
所有客户端使用相同的服务 URL。我们已在 Claude Code 和 Claude Desktop 中实际运行。其他配置块遵循各客户端针对远程服务的文档格式。
| 字段 | 值 |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=walmart |
| 传输方式 | HTTP,可流式传输 |
| 身份验证标头 | x-api-key: HASDATA_API_KEY |
支持 OAuth 的客户端可以将相同的 URL 添加为连接器,并登录,而无需将密钥写入配置文件。
Claude Code
claude mcp add --transport http walmart "https://mcp.hasdata.com/mcp?apis=walmart" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
依次打开 Settings、Connectors、Add custom connector,然后粘贴 https://mcp.hasdata.com/mcp?apis=walmart 并登录。
对于配置文件方式,Claude Desktop 只加载本地(stdio)服务,因此需要通过 stdio 启动器连接远程服务。@hasdata/walmart-mcp 包就是该启动器,它会从环境变量中读取密钥。将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"walmart": {
"command": "npx",
"args": ["-y", "@hasdata/walmart-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
如果使用 Python 而非 Node,请将启动器换成 PyPI 包,uvx 无需手动安装即可运行该包:
{
"mcpServers": {
"walmart": {
"command": "uvx",
"args": ["hasdata-walmart-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Cursor
适用于所有项目的 ~/.cursor/mcp.json,或仅适用于单个项目的 .cursor/mcp.json:
{
"mcpServers": {
"walmart": {
"url": "https://mcp.hasdata.com/mcp?apis=walmart",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json。Windsurf 使用的字段名是 serverUrl,而不是 url:
{
"mcpServers": {
"walmart": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=walmart",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
VS Code
工作区中的 .vscode/mcp.json:
{
"servers": {
"walmart": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=walmart",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
提示词示例
以下每条提示词都会调用一个工具;如果第二个工具需要第一个工具返回的商品 ID,则会依次调用两个工具。
- 在 Walmart 上查找价格低于 $30 的笔记本电脑支架,并按价格排序。
- 商品 18493462688 现在的价格是多少?谁持有购物车首选卖家位置?
- 列出所有其他销售该商品的卖家,以及他们加上运费后的报价。
- 阅读提及该商品电池续航时间的评论。
- 仅提取该商品的已验证购买评论,并总结其中的投诉。
- 比较该商品在 walmart.com 和 walmart.ca 上的价格。
如果提示词指定的是商品而非商品 ID,则会发起两次调用:先搜索以确定 ID,再查询商品信息。评论查询也是如此,搜索结果会包含这两种查询都需要的 ID。
工具
| 工具 | 返回内容 |
|---|---|
hasdata_walmart_product_getWalmartProduct | 标题、品牌、型号、UPC、状况、库存情况、价格(含删除线标记的原价和单价)、持有购物车首选卖家位置的卖家及其评分和退货……每次调用消耗 10 个积分 |
hasdata_walmart_reviews_getWalmartReviews | 每条评论及其评分、标题、保留段落格式的全文、提交日期、作者、已验证购买标记、有用和无用票数、徽章……每次调用消耗 10 个积分 |
hasdata_walmart_search_getSearchResults | 商品列表,包括商品 ID、标题、商品 URL、品牌、价格和带删除线标记的原价、星级评分、评论数、卖家、库存情况、赞助标记、徽章……每次调用消耗 10 个积分 |
三个工具,每次成功调用消耗 10 个积分。每个工具都接受 domain(walmart.com 或 walmart.ca)和 language 参数,其中 walmart.com 支持 en 和 es,而 walmart.ca 支持 en 和 fr。如果指定的语言不是该商城提供的语言,则会回退到默认语言。
商品 ID 仅适用于对应的商城。在 walmart.com 上,ID 为数字,例如 18493462688;在 walmart.ca 上,ID 为字母数字组合,例如 6NZMJ5CW6MH2。一个商城的 ID 无法在另一个商城中查询。
获取 Walmart 搜索结果
hasdata_walmart_search_getSearchResults
获取某个关键词、类别或两者的搜索结果页面。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
q | string | 见下文 | 搜索词 |
catId | string | 见下文 | 类别 URL 中的类别 ID,例如 976759_1086446_1229651 |
url | string | 完整的 Walmart 搜索或类别 URL,将按原样抓取。会覆盖上述参数 | |
domain | string | walmart.com 或 walmart.ca | |
language | string | en、es 或 fr,具体取决于店面 | |
sort | string | bestMatch、priceLowToHigh、priceHighToLow、bestseller、highlyRated 或 newArrivals | |
page | number | 结果页码,从 1 开始 | |
minPrice / maxPrice | number | 以店面货币表示的价格区间 | |
deliveryType | string | shipping 或 pickup | |
facet | string | 一个筛选条件,格式为 name:value,例如 brand:Great Value |
传入 q 进行搜索,传入 catId 浏览整个类别,或同时传入两者以在某个类别内搜索。两者都没有出现在架构的 required 数组中,因为单独传入其中任意一个即可完成调用。
返回 searchInformation、productResults 数组、facets 块和 pagination。每项结果包含 position、id、title、url、brand、isSponsored、badges、walmartPlusSavings、categoryPathId、price 对象、包含 rating 和 totalReviews 的 reviews、image、seller、availability 和 fulfillment。
facets 块列出了查询支持的所有筛选条件,每个值都包含要传回 facet 的确切字符串。先运行一次不带筛选条件的搜索来查看 facets,比猜测更省成本。
{
"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 }
}
获取 Walmart 商品详情
hasdata_walmart_product_getWalmartProduct
获取单件商品的完整信息。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemId | string | 见下文 | Walmart 商品 ID |
url | string | 见下文 | 完整的商品 URL,将按原样抓取。会覆盖 itemId 并设置店面 |
domain | string | walmart.com 或 walmart.ca,如果提供了 url,则会忽略此参数 | |
language | string | en、es 或 fr,具体取决于店面 | |
otherOffers | boolean | 同时收集竞品报价。需额外消耗 5 个额度,总计 15 个,而非 10 个 |
传入 itemId 或 url。与搜索调用相同,两者都未列为必填项,因为单独使用其中任意一个即可。
返回一个 product 对象,其中包含 itemId、title、url、brand、brandUrl、type、model、upc、condition、badges、availability、price 对象、占据购买框的 seller、reviews、images、categoryPath、categoryPathId、highlights、specifications、keyItemFeatures、productDetails 和 fulfillment。
基础调用已经会报告页面展示的竞品数量和最低竞品价格。只有在需要获取具体报价时才启用 otherOffers,因为它会向 Walmart 发起第二次请求,费用也会增加一半。
{
"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"
}
}
获取 Walmart 商品评价
hasdata_walmart_reviews_getWalmartReviews
单个商品的评价流,每页 10 条评价。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemId | string | 见下文 | Walmart 商品 ID |
url | string | 见下文 | 要读取评价的完整商品 URL。优先于 itemId |
domain | string | walmart.com 或 walmart.ca;提供 url 时会忽略 | |
language | string | 评价页面的语言,而非评价本身的语言 | |
page | number | 评价页,每页 10 条 | |
sort | string | mostRelevant、mostRecent、mostHelpful、highestRated、lowestRated 或 oldest | |
rating | number | 仅保留指定星级的评价,范围为 1 到 5 | |
aspectId | string | 按主题 ID 仅保留提及某个主题的评价 | |
condition | string | 仅保留关于商品某种状况的评价 | |
verifiedPurchasesOnly | boolean | 仅保留经 Walmart 确认的购买记录 |
返回 reviewsInformation、reviewResults 数组、filters 块、appliedFilters 和 pagination。
filters 是最值得优先查看的部分。它会列出该商品实际支持筛选的星级、常见提及内容和状况,每项都附有计数和需要传回的确切 value。例如,若看到 {"name": "Battery Life", "value": "6049", "count": 8},则传入 aspectId: "6049",预期会得到 8 条评价。与其在这里读取主题 ID,不如自行猜测;后者通常会导致结果为空。
reviewsInformation 包含商品评分、各星级的细分数据、各主题的评分,以及 Walmart 的 AI 评价摘要。它还会分别提供 totalRatings 和 totalReviews,两者含义不同:下方商品有 49 个评分,但只有 21 条文字评价,分页涵盖的是这 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 }
}
提示词和资源
该服务提供 5 个资源,每个资源对应一个可接受值为固定列表的参数。读取资源比从被拒绝的调用中摸索可用值更省事,而且不消耗额度。每个 URI 的格式为 hasdata://walmart/<parameter>。
| 参数 | 值 | 用途 |
|---|---|---|
domain | 2 | 商品所属的 Walmart 商店。每家商店都有自己的目录、商品 ID、价格和货币,因此某家商店的 ID 无法在另一家商店查询。提供 url 时会忽略。默认值为 walmart.com。 |
language | 3 | 商品详情的语言。可用语言取决于商店:walmart.com 提供 en 和 es,walmart.ca 提供 en 和 fr。若商店不支持所选语言,则回退到其默认语言。 |
sort | 6 | 返回评价的排序方式,名称与 Walmart 评价页面上的名称一致。默认值为 mostRelevant。 |
sort | 6 | 搜索结果的排序选项。 |
deliveryType | 2 | 仅保留可通过所选履约方式配送的商品。默认值为 shipping。请注意,pickup 的查询结果以单家 Walmart 门店为准,因此即使商品在全国范围内有库存,也可能无法在附近门店 pickup;此时响应会说明没有商品符合筛选条件,而不是查询没有结果。 |
无需 API 密钥即可获取此列表,因此客户端可以在用户注册之前读取它。
错误和失败路径
请为这些情况做好准备,而不要假设一切都会顺利。
一次搜索响应中的两个总数不一致,但都正确。 searchInformation.totalResultsDisplay 是 Walmart 在页面上显示的字符串,例如 "1000+";pagination.totalResults 则是其背后的数量,例如 8005。前者是显示文本,后者是整数,因此不要解析前者,也不要打印后者。
Walmart 大约在第 10 页后停止提供结果。 再往后的页面会返回空结果,而不是报错。无法通过翻页枚举大型关键词的所有结果,因此请改用 facet、价格区间或类别缩小范围。
价格对应一家门店,响应会说明是哪家。 searchInformation.storeId 会标明门店,fulfillment.message 则会用文字说明,精确到 "Pickup, today at Fredericksburg Massaponax Supercenter"。只有门店保持不变时,跨调用比较价格才有意义。
deliveryType: pickup 的查询会针对单家门店返回结果。 某件商品即使全国有货,也可能返回缺货,因为它在那家门店缺货,而不是所有门店都缺货。
商品工具报告的是评分,而不是评论数。 其 reviews.totalReviews 表示评分数量,上述商品有 49 条评分;评论工具则会分别报告 49 条评分和 21 条书面评论。两者有区别时,请使用评论工具。
评论日期是 M/D/YYYY 格式的字符串。 "8/1/2026" 表示 8 月 1 日,而不是 1 月 8 日。请根据已知格式解析,不要让日期库自行猜测。
评论可能带有 filters 中不存在的 aspect id。 该区块列出了可用于筛选商品的主题,其列表比评论所标记的主题列表短。请从评论中读取 aspects,并且只使用该区块提供的 id 进行筛选。
没有变体的商品不会返回空的 variants,而是缺少该字段。 读取前请先检查该键是否存在。
每个请求只能指定一个 condition。 该参数只接受单个值,因此查询两种 condition 需要调用两次。
包含数据的结果也会包含一个值得在支持请求中引用的 requestMetadata.id。
定价、免费套餐和限制
每次成功调用 Walmart 工具需 10 个 credits。启用 otherOffers 会使商品调用额外增加 5 个 credits,总计 15 个,而不是 10 个;除非关注的是竞争对手的报价,否则请保持关闭。响应大小不会改变价格。
免费套餐为 每月 1,000 个 credits,无需绑定银行卡,按基础费率可调用 Walmart 100 次。免费额度会随计费周期续期,因此低调用量的 Agent 可以无限期使用免费套餐。
付费套餐起价为 每月 $59,可获得 200,000 个 credits,相当于 20,000 次调用。调用量越大,单价越低:入门套餐每 1,000 次调用为 $2.95,Basic 套餐为 $1.19,Growth 各套餐为 $0.83。最新数据请查看定价页面。
套餐还会决定并发数。免费套餐允许同时处理 1 个请求,Startup 为 5 个,Basic 为 15 个,Growth 各套餐则为 50 到 500 个。对于无人值守的任务,遇到 429 错误时请采用退避策略重试,因为跨多个商品 id 扇出请求的 Agent 会比你更早触及上限。
返回非 200 状态码的请求不会计费。成功调用但未找到任何结果,也仍然算作一次调用。
工具选择
从提示提供的信息入手。关键词或类别应使用搜索工具,商品 ID 则直接使用商品或评论工具。为了获取已有的 ID 而额外调用搜索,是最常见的浪费。
然后根据问题的内容选择工具。对于多个商品的排名、价格扫描和货架份额分析,搜索结果就足够了。只有商品工具提供规格、购物车首选卖家和竞争报价数量。只有评论工具提供评论文本。
筛选前先阅读 filters 块。先调用一次不带筛选条件的评论工具,就能了解有哪些评分、主题和条件,以及每种条件下有多少条评论,从而把猜测的筛选条件变成已知信息。
对比
Walmart 自有的 Affiliate 和 Marketplace API 是获取这些数据的官方途径,但它们回答的问题各不相同。
| Walmart Affiliate API | Walmart Marketplace API | 本服务 | |
|---|---|---|---|
| 资格要求 | 已获批准的联盟账户 | Walmart 卖家账户 | API 密钥 |
| 范围 | 联盟目录中的商品 | 你自己的商品和订单 | 任意公开商品页面 |
| 竞争卖家 | 不提供 | 仅提供你自己的报价 | 报价列表,包含 otherOffers |
| 评论文本 | 不提供 | 你所售商品的评论 | 评论源,可使用筛选条件 |
| 购物车首选 | 不提供 | 适用于你所售商品 | 当前占据首选位置的卖家 |
walmart.ca | 独立计划 | 独立账户 | 一个参数 |
| 费用 | 符合资格时免费 | 有卖家账户即可免费使用 | 超出免费额度后收费 |
决定性因素是范围。两种官方 API 都只能查询你有商业关系的目录,因此无法用于监控竞争对手。如果商品属于你自己,Marketplace API 具有权威性且免费,你应该使用它。
常见问题
有官方的 Walmart MCP 服务吗?
Walmart 没有发布官方服务。这个服务由 HasData 维护,读取 Walmart 的公开页面。
什么是 Walmart MCP 服务?
MCP 服务会公开 AI 客户端可以调用的工具。这个服务会将 Walmart 搜索结果、商品页面和评论源转换为 Agent 可用于推理的 JSON,无需在技术栈中使用浏览器或抓取库。
我需要 Walmart 账户或卖家账户吗?
不需要。你只需要 HasData 密钥。
支持哪些店面?
walmart.com 和 walmart.ca。它们拥有独立的目录、商品 ID、价格和货币,因此跨店面对比是真正的对比,而非货币换算。
为什么我的商品 ID 没有返回结果?
最常见的原因是该 ID 属于另一个店面。数字 ID 属于 walmart.com,字母数字 ID 属于 walmart.ca,二者都无法在另一个店面解析。传入 domain 以匹配店面,或传入完整的 url,让服务自动设置店面。
如何获取竞争报价?
在商品工具调用中设置 otherOffers。每条报价都会返回卖家名称、店面 URL、价格、条件、运费、送达日期和退货政策。由于需要向 Walmart 发起第二次请求,因此会额外消耗 5 个积分。
为什么同一搜索在不同日期返回的价格不一样?
部分原因是价格会变动,部分原因是响应基于某一家 Walmart 门店生成,门店信息以 searchInformation.storeId 返回。将门店保持一致后,再判断价格是否发生变化。
我可以将此服务与其他 HasData API 一起使用吗?
可以。一个密钥即可访问所有服务,一个端点通过 apis 参数提供所有服务。将客户端指向 ?apis=walmart,amazon,即可在同一连接中获取两组工具;也可以访问 mcp.hasdata.com/mcp 查看完整目录。
HasData 与 Walmart 有关联吗?
没有。HasData 是一项独立服务,与 Walmart 无关联,也未获得 Walmart 的认可或赞助。Walmart 是其各自所有者的商标。这些工具仅处理公开数据,您有责任确保按照 Walmart 的条款及适用于您的法律使用结果。
合规与个人数据
评价中包含评价者选择公开的作者姓名,以及已验证购买标记。商城卖家条目中包含商家名称和店铺 URL。这两类信息在进行情感分析或定价工作时都不需要作者字段,因此除非您的用途需要,否则请删除这些字段;存储这些信息前,请先确认您自身的义务。
HasData 链接
- Walmart API 文档,这些工具背后的 REST 端点
- MCP 服务文档
- 定价
- 控制面板
其他 HasData MCP 服务:Google Search、Google Maps、Google Trends、Google Flights、DuckDuckGo、YouTube、TikTok、Instagram、Amazon、Shopify、Yelp、Zillow、Redfin、Airbnb、Booking.com、Indeed。
开发
启动器是连接到远程服务的轻量级 stdio 桥接,因此无需构建。
npm install
HASDATA_API_KEY=your_key_here npm test
test/ 中的测试用于验证工具契约,也就是可能在此处没有提交的情况下发生变化的部分。测试会检查 ?apis=walmart 是否返回预期的工具数量、名称是否均未更改、每个工具是否仍带有说明、此 README 文档中描述的二选一参数是否仍存在于架构中,以及正在使用的密钥是否确实有效。最后一项检查会实际调用一个工具,并消耗 10 个 credits;这是为了一次可能因正确原因而失败的金丝雀测试所付出的代价。
这三个工具都没有声明必填参数,因为每个工具都接受两种输入之一。测试套件会固定这些可选项,而不是检查 required 数组;若只检查该数组,即使架构中没有任何说明,测试也可能通过。
契约测试套件还会按计划每周运行,因为上游工具列表可能发生变化,而无需有人修改此仓库。
贡献
如果工具表、响应示例或记录的行为与实际情况不符,欢迎提交 issue。我们专门为此提供了模板。欢迎针对这些问题以及启动器中的任何内容提交拉取请求。
许可证
MIT,详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。