Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
nousresearch avatar

Mpp Agent

  • 3 installs
  • 226k repo stars
  • Updated August 5, 2026
  • nousresearch/hermes-agent

Pay HTTP 402 APIs via the Machine Payments Protocol using clients like mppx, Tempo Wallet, Privy, or AgentCash so an agent can complete per-request paid calls.

About

Wraps Machine Payments Protocol (MPP) clients so an agent can pay servers that respond with HTTP 402 Payment Required, choosing among mppx, Tempo Wallet, Privy, and AgentCash. A developer uses it to pay per request, set up an agent wallet, or attach a Stripe Link Shared Payment Token to a 402 challenge.

  • Multiple MPP clients (mppx, Tempo, Privy, AgentCash) for paid API access
  • Handles HTTP 402 www-authenticate challenges with funded wallets

Mpp Agent by the numbers

  • 3 all-time installs (skills.sh)
  • Ranked #13,674 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/nousresearch/hermes-agent --skill mpp-agent

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3
repo stars226k
Last updatedAugust 5, 2026
Repositorynousresearch/hermes-agent

What it does

Pay HTTP 402 APIs via the Machine Payments Protocol using clients like mppx, Tempo Wallet, Privy, or AgentCash so an agent can complete per-request paid calls.

Files

SKILL.mdMarkdownGitHub ↗

MPP Agent Skill

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.

When to Use

  • A merchant API returns HTTP 402 with a www-authenticate header — and the user wants to actually pay it, not just log the response.
  • The user asks to "pay per request", "set up an agent wallet", "use Tempo / Privy / AgentCash", or wants to discover MPP-priced services.
  • A Stripe Link spend has produced a Shared Payment Token (SPT) and the agent needs to attach it to the 402 challenge — in that flow, prefer link-cli mpp pay (see the stripe-link-cli skill).

Choosing a client

ToolWhenSetup
link-cliUser already has Stripe Link set up, or the 402 challenge advertises method="stripe"see the stripe-link-cli skill
Tempo WalletMPP services with spend controls, service discoverytempo wallet login
Privy Agent CLIMulti-chain wallets, browser-based fundingprivy-agent-wallets login
AgentCash300+ pre-priced APIs via one USDC.e balancenpx agentcash onboard
mppxDev + debugging, smallest dep surfacenpm 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.

Prerequisites

  • Node.js 20+ on PATH
  • A funded wallet (Tempo / Privy / AgentCash) OR an mppx account
  • For Tempo / Privy / AgentCash: follow their respective onboarding skills:
  • https://tempo.xyz/SKILL.md
  • https://agents.privy.io/skill.md
  • https://agentcash.dev/skill.md

Use web_extract to fetch any of those SKILL.md files if the user picks one.

Procedure (mppx, fastest path)

Run all commands through the terminal tool.

1. Install + create an account

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).

2. Inspect the merchant's 402 challenge

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=...

3. Pay the request

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.

4. Verify the receipt

mppx attaches the receipt header automatically. To inspect:

mppx <url> -v

Procedure (Tempo Wallet)

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.

Pitfalls

  • `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.
  • Multiple challenges in one header. 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.
  • Zero-amount challenges. Some MPP endpoints charge $0.00 and just want a proof credential. These work without a funded wallet. Don't refuse them as "broken."
  • Wallet keys never enter agent context. All four clients store keys under their own config dirs (or generate per-session ephemeral keypairs, in Privy's case). Do not cat/read_file them.
  • Server-side MPP is a different skill. If the user wants to ADD 402 to their own API, this skill is wrong — point them at https://mpp.dev/quickstart/server and the mppx/nextjs / mppx/hono / mppx/express / mppx/elysia middlewares. A dedicated mpp-server skill may land later.

Verification

mppx --version && mppx account list

Exit code 0 means installed and an account exists.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.