
Portage
io.github.tomtom87v0.14.0更新于 Oct 11, 2026
Serve a Shopify store's catalog to AI shopping agents over MCP (read-only).
概览
通过 MCP 以只读方式向 AI 购物代理提供 Shopify 商店的商品目录,使用 Admin 和 Storefront API 令牌。
- 功能
- Portage 通过 MCP 以只读方式向 AI 购物代理公开 Shopify 商店的商品目录。它是一套更完整的购物工具的一部分,该工具还包括命令行工具、代理技能以及面向其他电商平台的适配器 gem。对商家而言,适配器 gem 或自定义 Adapter 子类可通过 MCP 和 UCP 提供商店的目录、购物车和结账能力,并在 well-known UCP 路径提供签名清单。Shopify 适配器使用 Shopify Admin 和 Storefront GraphQL API。
- 适用场景
- 当你经营 Shopify 商店,希望 AI 购物代理通过 MCP 读取商品目录时,或当你正在构建需要商店商品数据的代理时,可以使用它。它适合向代理公开目录的商家,以及把 Shopify 商店接入代理工作流的开发者。
- 运行要求
- 以本地进程方式通过 stdio 运行,以 OCI 镜像分发。需要 SHOPIFY_SHOP_DOMAIN 和 SHOPIFY_STOREFRONT_ACCESS_TOKEN;SHOPIFY_ADMIN_ACCESS_TOKEN 为可选。更完整的 Portage 工具需要 Ruby 3.2 或更高版本,或使用自带 Ruby 的 Homebrew 安装。需要访问 Shopify API 的网络连接。
安装
在 SourceWeft 中
- 打开 控制台中的 Portage,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
[Portage]
[gem version] [gem downloads] [homebrew] [ruby] [license] [docs] [Claude Code plugin] [MCP] [UCP] [OpenClaw skill]
Portage lets an AI agent find and buy things from real online stores for you, and you approve every payment. It ships as a command-line tool (portage), a Claude Code plugin (buy) that drives it, and Ruby gems that let any store serve the same open protocols (MCP and UCP) to shopping agents. It is for people who want an agent to shop for them, developers building shopping agents, and merchants who want agents to buy from their store.
Status: pre-1.0. APIs may still change between minor versions. Latest release set: 0.18.0 (changelog).
Quickstart
Two ways in: let Claude shop for you with the buy plugin, or run the portage CLI yourself. Both use the same CLI and take about five minutes.
Install the buy plugin
The plugin teaches Claude Code to shop through the portage CLI, so install the CLI first.
-
Install the CLI (
portage-cli0.9.0 or newer):Or, on Ruby 3.2 or newer,
gem install portage-cli. Homebrew bundles every adapter. With RubyGems, also installportage-ucp-webmcp0.2.0 or newer if you want the Portage browser profile and checkout autofill. -
Add the plugin. Inside Claude Code:
Or from a shell:
-
Run
portage setuponce, in a terminal. It asks for your shipping address, optional search keys and spending caps, one skippable step at a time. It is interactive, so run it yourself rather than through Claude. -
Ask Claude. Type
/buy a burton snowboard under $600, or just ask in plain words. The skill is listed asbuy:buy. Claude checks your setup, shows real offers and a dry-run total, and waits for your yes before any purchase.
To update or remove it:
A listing in the Claude plugin directory is coming. Until then, this marketplace is the install route.
Other agents: Codex, Cursor, OpenCode and more
The buy skill is a plain SKILL.md file, so any agent that loads skills and can run commands on your machine can use it. Install the CLI and run portage setup first, as above. The plugin carries a second skill, shop-research: read-only, for price, stock, store and order questions with no purchase in mind, and it hands over to buy to buy. Install it next to buy the same way.
-
With dotagents (Codex, Cursor, OpenCode): one command installs the plugin into
~/.agents/and generates each agent's plugin or skill files.Refresh it with
npx @sentry/dotagents install. Remove it withnpx @sentry/dotagents remove buy. If youragents.tomlonly allows trusted sources, runnpx @sentry/dotagents trust add tomtom87/Portagefirst. -
As a plain skill (VS Code, or any agent without plugin support): copy the
plugins/buy/skills/buy/folder,references/included, into the agent's skills directory, andplugins/buy/skills/shop-research/next to it. With dotagents, declare them in~/.agents/agents.tomland runnpx @sentry/dotagents installto get them in~/.agents/skills/buyand~/.agents/skills/shop-research: -
OpenClaw. Install the CLI first (above), then the skill from ClawHub:
openclaw skills install @tomtom87/portage-buyputs it in your active OpenClaw workspace, andclawhub install @tomtom87/portage-buyputs it in./skillsunder the current directory (ClawHub docs). Then runportage setup. The skill's frontmatter carries OpenClaw'smetadata.openclawblock (needs theportagebinary, names every env var it reads as optional, brew install spec), so OpenClaw gates the skill untilportageis installed. To skip ClawHub, use the plain-skill route above: OpenClaw reads personal skills from~/.agents/skillsand managed ones from~/.openclaw/skills(OpenClaw skills docs), so copy or symlinkplugins/buy/skills/buy/(withreferences/) into either.shop-researchis on ClawHub too, as@tomtom87/portage-shop-research(install it the same way), or copy or symlinkplugins/buy/skills/shop-research/. Its frontmatter has the samemetadata.openclawshape, with only the search and retailer keys it names. ClawHub republishes skills under MIT-0; this repo stays MIT. -
OpenClaw plugin. For typed tools instead of shell commands, install the native plugin:
openclaw plugins install clawhub:tomtom87/portage, after the CLI (portage-cli0.12.0 or newer) andportage setup. It gives the agentportage_*tools over the CLI and bundlesbuy,shop-researchand a short OpenClaw skill that maps each buy step to its tool. The read-only tools are on by default; the ones that price, approve, buy or hand off are opt-in in OpenClaw's tool settings. Spending policy and approval stay in Portage, and no tool can pass--yesfor a URL or loosen your limits. See the plugin README. -
Omarchy (Arch Linux). Install the CLI with Omarchy's own helper,
omarchy-mise-install gem:portage-cli portage, which writes a~/.local/bin/portagewrapper the way Omarchy installsclaude,codexandgh. Plain mise (mise use -g gem:portage-cli) or Homebrew on Linux (brew install tomtom87/portage/portage) also work. Then runportage setup. A stock Omarchy needssudo pacman -S --needed makefirst: Ruby 3.4 buildsbigdecimalnatively,gccis already there throughclang, and onlymakeis missing. For the skills, linkplugins/buy/skills/buy/(withreferences/) andplugins/buy/skills/shop-research/into the skills directory of the agent you run. Omarchy's own provisioning links into~/.agents/skills(OpenClaw, and the dotagents route),~/.claude/skills(Claude Code; the plugin route above is preferred) and~/.codex/skills. -
Chat apps in a browser (ChatGPT, Grok and similar) can't run
portageon your machine, so they can't use the skill. Use the vendor's coding agent or CLI instead, if it loads skills.
Use the CLI yourself
Install the CLI as in step 1 above, run portage setup, then:
find works with no keys. Its default search, DuckDuckGo's keyless API, resolves brand and store names ("burton snowboards") but not open-ended queries ("waterproof hiking boots"). For those, add a Brave or Google search key: portage setup asks, and search backends has the details. buy without a store URL lists offers and, in a terminal, lets you pick one. --dry-run shows the real total and never charges.
With a store URL, buy goes straight to that store's /.well-known/ucp manifest:
To buy for real, enroll a payment method (portage payment enroll <store-url>), set spending caps (portage policy set), then drop --dry-run and add --yes. buy checks out only through a store's published UCP endpoint, or a platform API you already hold credentials for (your own store). Everything else ends in a hand-off. It never scrapes. The CLI tutorial walks through all of this, including what to do when search comes back empty.
portage setup saves to ~/.portage/.env (chmod 600), and .env.example lists every variable. Only ~/.portage/.env loads automatically, never a .env in the current directory, so a cloned repo can't quietly redirect your purchases or traffic (why). Upgrading, two installs on one PATH, and the Linux keychain: installation.
How a purchase finishes
Most stores don't let a third party complete payment, so buy usually builds the cart and hands off to you:
Amazon and similar retailers restrict automated purchasing agents in their terms, so Portage never automates them. The Amazon entries are on by default and yours to edit; walmart.com, ebay.com and bestbuy.com are always hand-off only. Details: tiers and hand-off targets.
Safety
These rules hold in every tier, for the CLI and the plugin:
- No raw card data. Card data never passes through Portage. Payment methods are tokens from
portage payment enroll, kept in your OS keychain, and the plugin refuses anything that looks like a card number. - You approve every payment. Nothing is bought without your explicit yes. A search result is never bought on
--yesalone: you name the store. The plugin shows you the offers to pick from and the exact total to approve, each with a link to the product page, and one yes covers one purchase.portage policy set --require-approval personmakes only a yes you type in your own terminal count. In a browser hand-off, you click pay. - Your browser's secrets stay closed. Portage never reads your browser's password, cookie or autofill stores, and never attaches to your default browser profile.
- No CAPTCHA or bot-wall bypass. Portage reports it and hands off.
- Spending caps.
portage policy setadds per-transaction, rolling and velocity caps and a store allowlist.
Portage is open-source software provided as-is, without warranty of any kind (MIT). How you use it on any site, and compliance with that site's terms, is your responsibility. Report security issues as described in SECURITY.md.
Commands
portage --help prints this. Flags and env vars for each command are in portage-cli/README.md, also published as the CLI reference.
Packages and docs
Merchants: an adapter gem, or your own Adapter subclass of portage-ucp, serves your catalog, cart and checkout over MCP and UCP. Each adapter gem ships an exe/ server and the PORTAGE_UCP_CONFIG hook, with a shared examples/portage_ucp.rb starting point (library usage, credentials, capability coverage). On Shopify, the native Universal Commerce Agent app covers checkout and orders with no code; Portage adds cart, catalog and a signed manifest (serving /.well-known/ucp).
Contributors and adapter authors: architecture · writing adapters · spec conformance · development · CONTRIBUTING.md.
AI agents reading the docs: the docs site publishes llms.txt and llms-full.txt.
Running behind a proxy
buy, find, compare, check, doctor and payment enroll take --proxy* flags. The same settings work as PORTAGE_PROXY* env vars or a "proxy" section in ~/.portage/config.json. Anything left unconfigured falls back to the standard HTTPS_PROXY/HTTP_PROXY/NO_PROXY variables, except payment traffic, which goes direct unless you name a proxy for it. portage doctor shows the effective proxy for each route, with credentials redacted. Recipes for corporate egress, rotating pools, API gateways, mitmproxy and nginx/Cloudflare, plus the env-var caveats, are in docs/proxy.md.
Requirements
Ruby 3.2 or newer, and the mcp gem ~> 0.24 (pulled in by portage-ucp). The Homebrew formula brings its own Ruby, so a Homebrew install needs neither.
Contributing
Bug reports and pull requests are welcome at tomtom87/Portage. The project is pre-1.0 and still tracking the spec, so open an issue before any change bigger than a bugfix. CONTRIBUTING.md has the workflow; the Code of Conduct applies.
License
MIT. Copyright (c) 2026 Tom Whitbread.
来源:README.md,提交 31666b8
工具
0版本历史
1- v0.14.0最新Oct 11, 2026

