关于 pp-doordash
pp-doordash 是用于操作 Doordash Printing Press CLI 的技能,支持商店和菜单查询、查看商品定制选项、读取近期订单,以及受保护的购物车操作。适用于 DoorDash 选餐与订购流程,并将只读命令与修改操作分开。
主要功能
- 01搜索 DoorDash 商店
- 02获取规范化菜单
- 03查看商品选项和加料
- 04查看近期订单摘要
- 05受保护的购物车查看与修改
- 06JSON 输出和字段筛选
适用场景
- 01查找提供特定菜系的商店
- 02下单前比较菜单商品
- 03确认商品所需的定制选项
- 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 已安装。**如果尚未安装,请先安装:
- 通过 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install doordash --cli-only - 验证:
doordash-pp-cli --version - 确保报告的安装目录位于将调用此技能的 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 | 需要身份验证 |
| 5 | API 错误(上游问题) |
| 7 | 触发速率限制(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示doordash-pp-cli --help输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他任何内容 → 直接使用(作为 CLI 命令执行,并带上
--agent)
安装 MCP 服务
从此 CLI 发布的公共库条目或预构建版本安装 MCP 二进制文件,然后注册它:
claude mcp add doordash-pp-mcp -- doordash-pp-mcp
验证:claude mcp list
直接使用
- 检查是否已安装:
which doordash-pp-cli如果未找到,请提供安装选项(参见此技能顶部的先决条件)。 - 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
- 使用
--agent标志执行:doordash-pp-cli <command> [subcommand] [args] --agent - 如果有歧义,请查看子命令帮助:
doordash-pp-cli <command> --help。