mcpField
P
pp-doordash

pp-doordash

github.com/mvanhorn其他2.1k36 次安装今天更新
代码仓库

关于 pp-doordash

pp-doordash 是用于操作 Doordash Printing Press CLI 的技能,支持商店和菜单查询、查看商品定制选项、读取近期订单,以及受保护的购物车操作。适用于 DoorDash 选餐与订购流程,并将只读命令与修改操作分开。

主要功能

  1. 01搜索 DoorDash 商店
  2. 02获取规范化菜单
  3. 03查看商品选项和加料
  4. 04查看近期订单摘要
  5. 05受保护的购物车查看与修改
  6. 06JSON 输出和字段筛选

适用场景

  1. 01查找提供特定菜系的商店
  2. 02下单前比较菜单商品
  3. 03确认商品所需的定制选项
  4. 04查看过往订单以便重复购买

MCP 相关

可安装 MCP 服务二进制文件 doordash-pp-mcp,并通过 `claude mcp add` 等方式注册到 MCP 客户端。该技能本身用于操作 CLI。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-doordash

安装后在 Claude Code 中输入/pp-doordash确认已加载。

详细介绍

DoorDash — Printing Press CLI

前置条件:安装 CLI

此技能由 doordash-pp-cli 二进制文件驱动。**调用此技能中的任何命令前,必须先确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 通过 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install doordash --cli-only
    
  2. 验证:doordash-pp-cli --version
  3. 确保报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果通过 npx 安装失败(例如,没有 Node、处于离线状态等),请改用直接通过 Go 安装的方法(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/commerce/doordash/cmd/doordash-pp-cli@latest

如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件所在目录。验证成功之前,请勿继续执行技能命令。

独特功能

此 API 的其他工具均不具备以下功能。

只读 DoorDash 工作流
  • search — 通过消费者 GraphQL 自动补全数据流搜索 DoorDash 商店,不会更改购物车或订单状态。

    可用于餐食/商家调研,同时保障账户安全。

    doordash-pp-cli search "thai" --agent
    
  • menu — 以标准化格式获取 DoorDash 商店菜单,不会更改购物车。

    让 Agent 能够在考虑更改购物车之前比较菜单选项。

    doordash-pp-cli menu --store-id STORE_ID --agent
    
  • item-options — 在将任何商品添加到购物车之前,检查商品选项组及其嵌套附加项。

    Agent 可以在提出购物车更改建议之前,判断必选修改项。

    doordash-pp-cli item-options --store-id STORE_ID --item-id ITEM_ID --agent
    
  • recent-orders — 查看 DoorDash 最近订单摘要,不会下新订单。

    支持复购和偏好分析,避免结账风险。

    doordash-pp-cli recent-orders --limit 3 --agent
    
受保护的更改边界
  • cart — 将购物车查看和修改操作作为单独命名、受保护的命令系列提供,而非与搜索/菜单读取操作混在一起。

    明确的命令边界可减少购买流程产生意外副作用的风险。

    doordash-pp-cli cart --help
    

HTTP 传输

此 CLI 使用兼容 Chrome 的 HTTP/3 传输方式访问面向浏览器的端点。正常 API 调用无需常驻浏览器进程。

命令参考

graphql — DoorDash 网页端 GraphQL 操作。所有操作都会向 /graphql/?operation= 发送 JSON POST 请求;变更操作在实际使用前必须由受保护的领域命令封装。

  • doordash-pp-cli graphql create-add-cart-item — 变更操作:向 DoorDash 购物车添加商品。必须在领域命令中保持严格门控。
  • doordash-pp-cli graphql create-autocomplete-facet-feed — 按自由文本查询 DoorDash 自动补全/商店分类。
  • doordash-pp-cli graphql create-checkout — 获取购物车的结账数据,但不下单。
  • doordash-pp-cli graphql create-consumer-order-cart — 获取当前消费者订单购物车。
  • doordash-pp-cli graphql create-convenience-search-query — 在 DoorDash 商店中搜索零售/便利店商品目录。
  • doordash-pp-cli graphql create-create-order-from-cart — 变更操作:从购物车提交 DoorDash 订单。必须要求显式启用实时下单门控。
  • doordash-pp-cli graphql create-delete-cart — 变更操作:删除 DoorDash 购物车。必须在领域命令中保持严格门控。
  • doordash-pp-cli graphql create-detailed-cart-items — 获取详细的购物车商品数据,以供结账/查看购物车。
  • doordash-pp-cli graphql create-get-has-new-notifications — 获取通知数量/状态。
  • doordash-pp-cli graphql create-get-open-carts-count — 获取会话中未关闭购物车的数量。
  • doordash-pp-cli graphql create-item-page — 获取商店商品的详细信息和自定义选项。
  • doordash-pp-cli graphql create-list-carts — 列出已通过身份验证的会话可见的 DoorDash 当前/最近购物车。
  • doordash-pp-cli graphql create-poll-order-payment-status — 轮询已提交订单的支付状态。
  • doordash-pp-cli graphql create-promo-sticky-footer — 获取购物车/商店上下文中的促销固定页脚数据。
  • doordash-pp-cli graphql create-remove-cart-item-v2 — 变更操作:从 DoorDash 购物车移除商品。必须在领域命令中保持严格门控。
  • doordash-pp-cli graphql create-storepage-feed — 获取指定 DoorDash 商店 ID 的商店页面/菜单信息流。
  • doordash-pp-cli graphql create-total-fee-tally — 获取购物车的费用/税费/总额估算。
  • doordash-pp-cli graphql create-update-cart-item-v2 — 变更操作:更新购物车商品数量/选项。必须在领域命令中保持严格门控。
  • doordash-pp-cli graphql create-validate-consumer-address-with-address-link-id — 验证 DoorDash 地址链接 ID。
查找合适的命令

如果你知道想做什么,但不知道该用哪个命令,可以直接询问 CLI:

doordash-pp-cli which "<capability in your own words>"

which 会通过此 CLI 精选的功能索引,将自然语言功能查询映射到最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有可信的匹配项——请改用 --help 或使用范围更窄的查询。

身份验证设置

此 CLI 使用 DoorDash 浏览器会话 Cookie 标头,并可选择使用 CSRF 令牌。通过经批准的私密流程导出 Cookie 标头,然后在不打印机密信息的情况下导入:

doordash-pp-cli auth login --cookie-file - --csrf-token <token> --json < /secure/path/cookie-header.txt

避免将真实 Cookie 作为 Shell 参数传递;使用标准输入或权限为 0600 的文件更安全。运行 doordash-pp-cli doctor --json 验证设置。

Agent 模式

为任意命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 支持管道 — JSON 输出到 stdout,错误输出到 stderr

  • 支持筛选 — --select 保留指定字段的子集。点分路径可深入嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这对控制上下文大小至关重要:

    doordash-pp-cli graphql create-add-cart-item --operation-name example-resource --agent --select id,name,status
    
  • 支持预览 — --dry-run 显示请求,但不会发送

  • 非交互式 — 从不提示输入;每项输入都通过标志指定

  • 显式重试 — 仅当已存在的创建操作应视为成功时,才使用 --idempotent

Agent 反馈

当你(或 Agent)发现此 CLI 有什么不对劲时,请记录下来:

doordash-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
doordash-pp-cli feedback --stdin < notes.txt
doordash-pp-cli feedback list --json --limit 10

条目保存在本地的 ~/.doordash-pp-cli/feedback.jsonl 中。除非设置了 DOORDASH_FEEDBACK_ENDPOINT,并且传入了 --send 或将 DOORDASH_FEEDBACK_AUTO_SEND 设为 true,否则绝不会通过 POST 发送。默认行为仅在本地保存。

记录让你感到意外的地方,而不是提交 Bug 报告。简短、具体,一行即可:这些记录会不断累积,发挥作用。

输出交付

每条命令都接受 --deliver <sink>。除了(或替代)stdout,输出还会发送到指定的目标,这样 Agent 就能路由命令结果,无需手动通过管道传递。支持三种目标:

目标效果
stdout默认;仅写入 stdout
file:<path>将输出原子写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到该 URL(使用 --compact 时为 application/json 或 application/x-ndjson)

不支持的方案会被拒绝,并返回列出受支持方案的结构化错误。Webhook 失败时返回非零状态码,并在 stderr 中记录 URL + HTTP 状态码。

命名配置

配置是保存的一组标志值,可在多次调用中重复使用。当定时运行的 Agent 每次都以相同配置调用同一条命令时,可使用配置——这就是 HeyGen 的“Beacon”模式。

doordash-pp-cli profile save briefing --json
doordash-pp-cli --profile briefing graphql create-add-cart-item --operation-name example-resource
doordash-pp-cli profile list --json
doordash-pp-cli profile show briefing
doordash-pp-cli profile delete briefing --yes

显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,供具有自省能力的 Agent 在运行时发现。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
4需要身份验证
5API 错误(上游问题)
7触发速率限制(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 doordash-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并带上 --agent)

安装 MCP 服务

从此 CLI 发布的公共库条目或预构建版本安装 MCP 二进制文件,然后注册它:

claude mcp add doordash-pp-mcp -- doordash-pp-mcp

验证:claude mcp list

直接使用

  1. 检查是否已安装:which doordash-pp-cli 如果未找到,请提供安装选项(参见此技能顶部的先决条件)。
  2. 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
  3. 使用 --agent 标志执行:
    doordash-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果有歧义,请查看子命令帮助:doordash-pp-cli <command> --help。

评论

支持 Markdown