Cheapest Grocery Basket

Where to buy a whole grocery list today: local prices, per-unit and cross-store comparison.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
98%
命名质量
84%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~1,403token 数(工具定义)
~1.9 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.10%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "cheapest-grocery-basket": {
      "url": "https://grocery-basket.bowling-anthony.workers.dev/mcp"
    }
  }
}

远程端点

https://grocery-basket.bowling-anthony.workers.dev/mcpstreamable-http

它能做什么

工具清单

工具(5)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢request_data(need)

FREE, no payment. Describe in your own words the data you are trying to buy — anything, not just groceries — and get back whether we operate a service that supplies it, with the MCP endpoint if so. Every request is catalogued so that repeatedly-requested data gets built; call it whenever you cannot find a source for something. Nothing about you is stored: not your wallet, your address, or any identifying header — only the words of the request.

输入模式

{
  "type": "object",
  "properties": {
    "need": {
      "type": "string",
      "description": "What you are looking for, e.g. 'live electricity spot prices by ZIP' or 'used car values by VIN'.",
      "examples": [
        "live electricity spot prices by ZIP"
      ]
    }
  },
  "required": [
    "need"
  ],
  "additionalProperties": false
}
⚪demand_report(days)

FREE, no payment. The aggregate of what agents have told us they are looking for, most-requested first, with the categories nothing available yet serves. Useful if you are deciding what to build or sell into the agent economy.

输入模式

{
  "type": "object",
  "properties": {
    "days": {
      "type": "string",
      "description": "Window in days, default 30, max 90.",
      "examples": [
        "30"
      ]
    }
  },
  "additionalProperties": false
}
🟢find_product(q, zip, stores, maxAgeDays)

Compare a single grocery item across every collected store in a ZIP. Returns each store's actual current shelf price, whether it is on sale (and the regular price), the package size, the price normalized per comparable unit, stock, a purchase link, and when that price was last read. Use this to answer "who has the cheapest milk near me" — and note the answer reports BOTH the lowest sticker price and the best value per unit, which frequently disagree because the cheap sticker is a smaller package. For a whole shopping list use price_basket or cheapest_basket instead; calling this per item costs more and cannot optimize across stores. Costs $0.005 USDC per call via x402 on Base.

输入模式

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "The item to price, in ordinary shopper language, e.g. 'milk', 'eggs', 'ground beef'.",
      "examples": [
        "milk"
      ]
    },
    "zip": {
      "type": "string",
      "description": "5-digit US ZIP code to price against, e.g. '30501'. Coverage is per collected ZIP; an uncovered ZIP returns an explicit error and is not charged.",
      "examples": [
        "30501"
      ]
    },
    "stores": {
      "type": "string",
      "description": "Optional comma-separated chains to restrict to, e.g. 'aldi,publix'. Omit to compare every collected store.",
      "examples": [
        "aldi,publix"
      ]
    },
    "maxAgeDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120,
      "description": "Optional freshness limit in days (default 14, max 120). A price read longer ago than this is withheld rather than returned as if current; raise it to accept older readings.",
      "examples": [
        14
      ]
    }
  },
  "required": [
    "q",
    "zip"
  ],
  "additionalProperties": false
}
🟢price_basket(items, zip, stores, mode, maxAgeDays)

Price an entire shopping list at every collected store in a ZIP, one complete basket per store. Returns per-store line items with quantities and line totals, the basket subtotal, exactly which requested items that store is missing, whether the basket is complete, stock flags, and the oldest price in the basket so staleness is visible. Use this when the shopper will make one trip and wants to know where the whole list is cheapest. Accepts quantities as 'milk x2'. Costs $0.01 USDC per call via x402 on Base.

输入模式

{
  "type": "object",
  "properties": {
    "items": {
      "type": "string",
      "description": "Comma-separated shopping list, optionally with quantities, e.g. 'milk x2, eggs, bread, butter'. A JSON array of {name, quantity} is also accepted.",
      "examples": [
        "milk x2, eggs, bread, butter"
      ]
    },
    "zip": {
      "type": "string",
      "description": "5-digit US ZIP code, e.g. '30501'.",
      "examples": [
        "30501"
      ]
    },
    "stores": {
      "type": "string",
      "description": "Optional comma-separated chains to restrict to, e.g. 'aldi,publix'.",
      "examples": [
        "aldi,publix"
      ]
    },
    "mode": {
      "type": "string",
      "description": "Optional fulfillment intent: 'pickup' or 'delivery'. Recorded on the response; delivery fees and minimums are not collected yet and are returned as null rather than estimated.",
      "examples": [
        "pickup"
      ]
    },
    "maxAgeDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120,
      "description": "Optional freshness limit in days (default 14, max 120). A price read longer ago than this is withheld rather than returned as if current; raise it to accept older readings.",
      "examples": [
        14
      ]
    }
  },
  "required": [
    "items",
    "zip"
  ],
  "additionalProperties": false
}
🟢cheapest_basket(items, zip, stores, mode, maxAgeDays)

The complete buying decision for a shopping list: the cheapest single store that can fill it, AND the cross-store optimum that buys each line wherever it is cheapest, with the dollar savings between them and how many stops that costs. Every line carries substitutes at the other stores with the exact extra cost of choosing them, so a shopper can collapse a two-stop trip into one and see precisely what that convenience costs. Out-of-stock items are skipped in favour of an in-stock option even when it is dearer. Use this as the default for "where should I buy this list today" — it is the one call that answers the whole question. Costs $0.02 USDC per call via x402 on Base.

输入模式

{
  "type": "object",
  "properties": {
    "items": {
      "type": "string",
      "description": "Comma-separated shopping list, optionally with quantities, e.g. 'milk x2, eggs, bread, butter, cheese'. A JSON array of {name, quantity} is also accepted.",
      "examples": [
        "milk x2, eggs, bread, butter, cheese"
      ]
    },
    "zip": {
      "type": "string",
      "description": "5-digit US ZIP code, e.g. '30501'.",
      "examples": [
        "30501"
      ]
    },
    "stores": {
      "type": "string",
      "description": "Optional comma-separated chains the shopper is willing to visit, e.g. 'aldi,publix'.",
      "examples": [
        "aldi,publix"
      ]
    },
    "mode": {
      "type": "string",
      "description": "Optional fulfillment intent: 'pickup' or 'delivery'.",
      "examples": [
        "pickup"
      ]
    },
    "maxAgeDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120,
      "description": "Optional freshness limit in days (default 14, max 120). A price read longer ago than this is withheld rather than returned as if current; raise it to accept older readings.",
      "examples": [
        14
      ]
    }
  },
  "required": [
    "items",
    "zip"
  ],
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本5 个工具
已验证未记录版本5 个工具