optional-skills/payments/mpp-agent/SKILL.md
Wraps the Machine Payments Protocol (MPP, https://mpp.dev) clients so Hermes can pay for per-request API access against servers that respond with HTTP 402 Payment Required.
Three client options, all distributed via npm. Pick the lightest one that solves the user's need. Gated [linux, macos] while the broader payments tooling matures on Windows.
HTTP 402 with a www-authenticate header — and the user wants to actually pay it, not just log the response.link-cli mpp pay (see the stripe-link-cli skill).| Tool | When | Setup |
|---|---|---|
link-cli | User already has Stripe Link set up, or the 402 challenge advertises method="stripe" | see the stripe-link-cli skill |
| Tempo Wallet | MPP services with spend controls, service discovery | tempo wallet login |
| Privy Agent CLI | Multi-chain wallets, browser-based funding | privy-agent-wallets login |
| AgentCash | 300+ pre-priced APIs via one USDC.e balance | npx agentcash onboard |
mppx | Dev + debugging, smallest dep surface | npm install -g mppx then mppx account create |
Default: if the user already has Stripe Link configured or the 402 challenge specifies method="stripe", use link-cli mpp pay (the stripe-link-cli skill). Otherwise mppx for one-off paid calls and debugging, and Tempo Wallet when the user wants persistent spend controls.
PATHmppx accounthttps://tempo.xyz/SKILL.mdhttps://agents.privy.io/skill.mdhttps://agentcash.dev/skill.mdUse web_extract to fetch any of those SKILL.md files if the user picks one.
Run all commands through the terminal tool.
npm install -g mppx
mppx account create
Store the resulting account credentials wherever the CLI tells you (the CLI writes them under its own config — do not paste them into the agent transcript).
If the user gives you a URL, probe it first to confirm it actually speaks MPP:
curl -i <url>
A real MPP 402 looks like:
HTTP/1.1 402 Payment Required
www-authenticate: tempo amount=0.1 currency=...
mppx <url>
For non-GET methods or request bodies:
mppx <url> --method POST --data '<json>'
mppx handles the 402 challenge/credential dance automatically and prints the merchant's actual response on success.
mppx attaches the receipt header automatically. To inspect:
mppx <url> -v
The Tempo Wallet skill at https://tempo.xyz/SKILL.md is the canonical reference; fetch it with web_extract and follow it. Headline:
tempo wallet login
tempo wallet pay <url>
Spend controls and service discovery live in the wallet UI at https://wallet.tempo.xyz.
HTTP 402 without method="stripe" cannot be paid by Stripe Link. If the challenge advertises only Tempo / other methods, use mppx (or whichever wallet matches) — Link will reject it. Conversely, if it advertises method="stripe", prefer Link via the stripe-link-cli skill so the spend goes through the user's approved card.www-authenticate may list several methods (e.g. tempo, stripe). The Link CLI's mpp decode will pick the Stripe one; mppx will pick Tempo. There's no single "right" client — pick by which wallet the user has funded.$0.00 and just want a proof credential. These work without a funded wallet. Don't refuse them as "broken."cat/read_file them.mppx/nextjs / mppx/hono / mppx/express / mppx/elysia middlewares. A dedicated mpp-server skill may land later.mppx --version && mppx account list
Exit code 0 means installed and an account exists.