Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pay HTTP 402 APIs via Machine Payments Protocol (MPP).
.claude/skills/nousresearch-mpp-agent/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -35% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 10% | 0% |
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 createStore 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> -vThe 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 listExit code 0 means installed and an account exists.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 11,441 | 3,204 | -72% | 1 | 1 | 0% | 2,008 | 1,738 | -13% | 0 | 0 | — |
case-02 | fail→fail | 6,152 | 5,253 | -15% | 1 | 1 | 0% | 1,053 | 1,659 | +58% | 0 | 0 | — |
case-03 | fail→fail | 8,391 | 4,134 | -51% | 1 | 1 | 0% | 1,349 | 1,538 | +14% | 0 | 0 | — |
case-04 | fail→fail | 16,609 | 4,927 | -70% | 1 | 1 | 0% | 3,291 | 2,286 | -31% | 0 | 0 | — |
case-05 | pass→pass | 18,386 | 13,953 | -24% | 1 | 1 | 0% | 3,501 | 4,003 | +14% | 0 | 0 | — |
case-06 | pass→pass | 11,199 | 8,591 | -23% | 1 | 1 | 0% | 2,277 | 2,936 | +29% | 0 | 0 | — |
case-07 | fail→pass | 9,512 | 3,331 | -65% | 1 | 1 | 0% | 1,569 | 1,904 | +21% | 0 | 0 | — |
case-08 | fail→pass | 19,123 | 3,706 | -81% | 1 | 1 | 0% | 3,053 | 1,989 | -35% | 0 | 0 | — |
case-09 | fail→pass | 10,568 | 2,045 | -81% | 1 | 1 | 0% | 1,850 | 1,698 | -8% | 0 | 0 | — |
case-10 | fail→pass | 12,379 | 2,024 | -84% | 1 | 1 | 0% | 2,166 | 1,615 | -25% | 0 | 0 | — |
case-11 | fail→pass | 9,866 | 2,297 | -77% | 1 | 1 | 0% | 1,538 | 1,699 | +10% | 0 | 0 | — |
case-12 | pass→pass | 7,470 | 2,798 | -63% | 1 | 1 | 0% | 1,344 | 1,784 | +33% | 0 | 0 | — |
case-13 | pass→pass | 5,331 | 1,943 | -64% | 1 | 1 | 0% | 917 | 1,660 | +81% | 0 | 0 | — |
case-14 | fail→pass | 7,969 | 2,918 | -63% | 1 | 1 | 0% | 1,262 | 1,871 | +48% | 0 | 0 | — |
case-15 | pass→pass | 7,151 | 1,647 | -77% | 1 | 1 | 0% | 1,164 | 1,578 | +36% | 0 | 0 | — |
case-16 | fail→pass | 7,514 | 2,086 | -72% | 1 | 1 | 0% | 1,495 | 1,618 | +8% | 0 | 0 | — |
case-17 | fail→pass | 2,981 | 10,012 | +236% | 1 | 1 | 0% | 417 | 2,491 | +497% | 0 | 0 | — |
case-18 | fail→pass | 9,380 | 2,174 | -77% | 1 | 1 | 0% | 1,682 | 1,715 | +2% | 0 | 0 | — |
case-19 | fail→pass | 13,402 | 1,158 | -91% | 1 | 1 | 0% | 2,257 | 1,456 | -35% | 0 | 0 | — |
case-20 | fail→pass | 11,922 | 5,218 | -56% | 1 | 1 | 0% | 1,902 | 2,221 | +17% | 0 | 0 | — |
case-21 | fail→pass | 8,471 | 1,829 | -78% | 1 | 1 | 0% | 1,405 | 1,652 | +18% | 0 | 0 | — |
case-22 | fail→pass | 12,256 | 3,622 | -70% | 1 | 1 | 0% | 2,386 | 2,000 | -16% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.