mcpField
G
Grocery MCP

Grocery MCP

远程服务
github.com商业与营销01 周前更新

关于 Grocery MCP

Grocery MCP 是通过零售商公开店面搜索商品并返回可审核商品链接的 MCP 和 REST 服务,适用于准备采购的人。交接仅提供链接,不会预填购物车或下单,结账仍在零售商网站完成。

主要功能

  1. 01搜索零售商门店与商品
  2. 02创建仅供审核的商品链接交接
  3. 03复用杂货订单模板
  4. 04显示匹配置信度与观察时间
  5. 05将不安全替代项标为未匹配

适用场景

  1. 01在支持的本地零售商中查找商品
  2. 02结账前准备待审核清单
  3. 03通过最新商品目录搜索复用购物清单

MCP 相关

它向 MCP 客户端提供零售商查询、商品搜索、交接和订单模板工具。商品数据来自公开店面;交接仅链接至零售商网站,不会填充购物车或下单。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://grocery-mcp-production.up.railway.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Grocery MCP

一个专用的 MCP 和 REST 服务,可直接搜索杂货零售商,并返回供审核的商品链接。当前支持:

  • Kettle Range Meat Co. — Milwaukee 和 Elm Grove
  • Outpost Natural Foods — Capitol Drive、State Street、Bay View 和 Mequon

此服务不会将商品加入购物车、下单、存储零售商凭据或处理付款。每条响应都会明确报告 cart_prefilled: false;用户会打开链接、添加商品,并在零售商自有网站上结账。

连接

托管服务:

https://grocery-mcp-production.up.railway.app/mcp

Claude 和 ChatGPT 会让用户登录。无需共享密码。

先调用 find_grocery_retailers,然后搜索商品或移交商品清单。每次移交都会生成由用户打开的链接。cart_prefilled 始终为 false。

价格和库存信息取自搜索当时商店的公开网站。Kettle Range 覆盖 Milwaukee 和 Elm Grove。Outpost 覆盖 Capitol Drive、State Street、Bay View 和 Mequon。

设置

python3.12 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

运行

python -m grocery_mcp.server
python -m grocery_mcp.server --http

HTTP 端点:

  • MCP:http://localhost:8080/mcp
  • 健康检查:http://localhost:8080/health
  • OpenAPI:http://localhost:8080/docs
  • 零售商:http://localhost:8080/v1/retailers
  • 商品搜索:http://localhost:8080/v1/products/search
  • 移交:POST http://localhost:8080/v1/handoffs

配置 DATABASE_URL 后,移交记录和 OAuth 动态客户端注册信息会持久化到 PostgreSQL。未配置时,本地开发会使用进程内存。

MCP 工具

  • find_grocery_retailers
  • search_grocery_products
  • create_grocery_handoff
  • get_grocery_handoff
  • create_grocery_order_template
  • list_grocery_order_templates
  • create_handoff_from_template

移交输入示例:

{
  "retailer": "kettle_range",
  "location_id": "milwaukee",
  "items": [
    {"name": "boneless chicken thighs", "quantity": 2, "unit": "lb"},
    {"name": "ground beef", "quantity": 1, "unit": "lb"}
  ]
}

数据行为

商品名称、价格、库存情况和链接均来自各零售商面向消费者的公开商店页面,并在收到请求时获取。这些商店页面并非正式的合作伙伴 API,且可能随时变更。响应包含匹配置信度、替代项和观察时间戳,客户端可据此呈现这种不确定性。

匹配要求较高的词元重合度,会排除明显的跨类别替代,并优先选择有库存的商品。如果没有安全的匹配结果,系统会明确标记该商品未匹配,而不会用关联度较低的商品替代。

可复用模板会保存零售商、地点和规范化后的杂货商品。运行模板时,系统始终会重新搜索最新目录,并创建新的、仅供审核的移交记录。

测试

ruff check .
pytest

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。