Head to head · Agent payment protocols · October 2026 research run
Machine Payments Protocol (MPP) vs Universal Commerce Protocol (UCP)
Machine Payments Protocol (MPP) scores 81.7 (A) on agent readiness against Universal Commerce Protocol (UCP)'s 72 (BB), and leads in 6 of 7 scored categories. Both do agent payment protocols.
Which one, for what
Machine Payments Protocol (MPP) A
Best for Sellers who want stablecoins and cards behind one 402, or Stripe settlement into a fiat balance, and for agents making many small calls through sessions. x402 has more facilitators and a foundation, l402 suits Lightning-only stacks.
Ahead on
- Reliability, 85 against 79
- Agent ergonomics, 91 against 82
- Security & auth, 79 against 67
- Payments & pricing, 94 against 50
- Maintenance & community, 97 against 70
Also in its favour
- No key needed to call it
Watch for
Individual Internet-Draft, not adopted by any IETF working group
Universal Commerce Protocol (UCP) BB
Best for Agents buying from merchants that publish UCP profiles, and platforms building agent checkout. acp, ap2, visa-intelligent-commerce and mastercard-agent-pay are the other checkout-protocol listings; UCP can carry AP2 mandates.
Also in its favour
- Open source
- No incidents deducted, where Machine Payments Protocol (MPP) loses 3 points for them
Watch for
No release since v2026-08-25, though main changes most days
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Payments & pricing Machine Payments Protocol (MPP) +44
Machine Payments Protocol (MPP) 94
MPP is a machine payment protocol (40). No protocol fee. Tempo gas is capped near $0.0006 a transfer and Stripe charges 1.5 per cent on stablecoins and $0.15 per shared payment token per the 26 September check, while Stripe's page sets minimums of $0.50 for card tokens and 0.01 USDC for stablecoins (17). The spec is CC0 and the SDKs are open source (20). A buyer with a stablecoin wallet needs no account, but the card route needs a token from Link, optionally approved by a person (17).
Universal Commerce Protocol (UCP) 50
Protocol reading. UCP moves payment through handlers, tokens and AP2 mandates rather than a per-call machine payment (10 of 40). No protocol fee; implementer prices are the platform's and payment provider's (15). The spec, SDKs and samples are free (20). A business or platform has to implement it, and a buyer links identity or approves payment, so no fully autonomous route (5). 10 + 15 + 20 + 5 = 50.
Maintenance & community Machine Payments Protocol (MPP) +27
Machine Payments Protocol (MPP) 97
mppx 0.17.0, mpp-rs 0.18.1 and pympp 0.18.0 on 29 October 2026, and a spec commit on 26 October (30). mppx alone tagged 22 releases in the 90 days to 1 November (20). 10 open issues and 20 open pull requests on mppx on 1 November, down from 14 issues on 1 October. Reply times weren't read, so 22 stands (22). Official SDKs in five languages, all tagged in October 2026, with mpp-go moving from v0.2.0 (1 July) to v0.4.0 through v0.6.0 between 24 and 26 October and mpp-rb at v0.1.10 (15). CI with dependency scanning, Dependabot, OpenSSF Scorecard in mppx and fuzzing in Rust (10).
Universal Commerce Protocol (UCP) 70
The latest release is v2026-08-25, 73 days before this check (20). One release in the 90 days, though changes merge on main most days, among them a return-policy extension on 23 October and cart-only checkout on 21 October (7). Pull requests from Google, Shopify and outside contributors merge within days; 262 issues and pull requests are open (18). Official SDKs, updated 5 November (15). CI with linting, spellcheck, governance checks and example validation, and Dependabot updates (10). 20 + 7 + 18 + 15 + 10 = 70.
Security & auth Machine Payments Protocol (MPP) +12
Machine Payments Protocol (MPP) 79
Payment proofs are single use, challenges can be bound with HMAC-SHA256 and to a digest of the request body, and the card path uses Stripe shared payment tokens with usage and expiry limits (26). Spend is capped by SPT limits and session deposits, while overall agent budgets are left to the client (14). The draft tells clients they MUST NOT trust the description and MUST check amount, recipient, currency and validity window themselves (13). Every paid response carries a Payment-Receipt header and settlement leaves an on-chain or Stripe record (13). Reports go to security@tempo.xyz with acknowledgement in 5 days, there's no bug bounty while Tempo is under audit, and mppx has published five advisories in 2026, one critical, with none since 1 July (13).
Universal Commerce Protocol (UCP) 67
OAuth 2.0 identity linking, RFC 9421 signatures for signed agents with key IDs bound to JWK thumbprints, and payment handlers with token exchange instead of raw card data (25 of 30). Checkout can hand back to the buyer through continue_url or an embedded checkout, and AP2 mandates record consent, but unattended completion is allowed by design (15 of 20). The permalink spec treats URL inputs as untrusted and requires server-side validation, but we found no guidance on product text reaching an agent (5 of 15). Order events go to business webhooks; we didn't read whether they are signed (8 of 15). SECURITY.md routes reports to Google's intake with a stated response time and GitHub advisories (14 of 20). 25 + 15 + 5 + 8 + 14 = 67.
Agent ergonomics Machine Payments Protocol (MPP) +9
Machine Payments Protocol (MPP) 91
One 402 and one retry, and session intents let many small calls share one deposit (23). Charge and subscription intents, per-method sessions, client payment preferences and a discovery draft (17). Error codes such as payment-insufficient, payment-expired and invalid-challenge say what failed, and servers SHOULD send Retry-After (18). The draft requires single-use proofs, at most one settlement for concurrent requests with the same credential, and recommends an Idempotency-Key for non-idempotent methods (18). SDKs in five languages and a CLI (15).
Universal Commerce Protocol (UCP) 82
Protocol reading. Capability negotiation means an agent sees only what both sides support, though the schemas are large (18 of 25). Catalogue search pages with a cursor and has_next_page (15 of 20). An error model with codes and continue_url to hand a buyer to the business when the agent can't finish (18). The MCP binding requires an idempotency-key UUID on checkout calls for retry safety (18). Official SDKs in Python and JavaScript; every request needs a UCP-Agent profile (13 of 15). 18 + 15 + 18 + 18 + 13 = 82.
Reliability Machine Payments Protocol (MPP) +6
Machine Payments Protocol (MPP) 85
Graded as a protocol on reference implementations (30), public servers or processors (25), spec stability (25) and test vectors (20). Official SDKs in TypeScript (mppx), Python, Go, Rust and Ruby (30). There's no facilitator role, servers verify on chain or through Stripe, and the mpp.dev catalogue source lists 119 services in its main file on 1 November (36 first-party and 83 third-party integrations), and the Tempo proxy entries moved to a separate mpp-proxy.json on 28 October, about 138 in all against the 137 the directory page showed on 1 October (20). The core is still an individual Internet-Draft at revision 01 (9 September 2026, expiring 13 March 2027), not adopted by any IETF working group, while the scheme carries no wire version and is built to evolve by adding fields (15). The draft includes HMAC-SHA256 challenge-binding test vectors, and every SDK runs a shared conformance suite from tempoxyz/mpp-tools in CI, with cross-SDK smoke tests in Rust (20).
Universal Commerce Protocol (UCP) 79
Protocol reading, split as reference implementations 30, live deployments 25, spec stability 25 and test vectors 20. Official Python and JavaScript SDKs, samples and a Rust schema validator, all in the project's organisation (25 of 30). Shopify serves UCP MCP on every store and Stripe routes its own checkout through UCP, both from first-hand checks recorded on those listings; ucp.dev lists about 50 endorsers, which are claims (20 of 25). Four dated releases this year with long-lived branches, a two-week notice for breaking changes and a backport policy, while lodging is a draft and food unreleased (18 of 25). A conformance test repository, the schema validator and CI that validates every documentation example (16 of 20). 25 + 20 + 18 + 16 = 79.
Score by category
| Category | Weight this run | Machine Payments Protocol (MPP) | Universal Commerce Protocol (UCP) | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 85 | 79 | Machine Payments Protocol (MPP) +6 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 89 | 90 | Universal Commerce Protocol (UCP) +1 |
| Agent ergonomics | 13%16.2 | 91 | 82 | Machine Payments Protocol (MPP) +9 |
| Security & auth | 14%17.5 | 79 | 67 | Machine Payments Protocol (MPP) +12 |
| Payments & pricing | 10%12.5 | 94 | 50 | Machine Payments Protocol (MPP) +44 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 97 | 70 | Machine Payments Protocol (MPP) +27 |
| Transparency & trust | 7%8.8 | 50 | 47 | Machine Payments Protocol (MPP) +3 |
| Negative events | ≤15 | -3 | 0 | |
| Total | A 81.7/100 | BB 72/100 |
Facts side by side
| Fact | Machine Payments Protocol (MPP) | Universal Commerce Protocol (UCP) |
|---|---|---|
| Kind | Payment protocol | Payment protocol |
| Vendor | Tempo and Stripe | UCP Authors (Google, Shopify and co-developers) |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | None | OAuth |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | CC0-1.0 (spec) | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-10-29 | 2026-08-25 |
| Terms last updated | no document linked | no document linked |
| Privacy policy last updated | no document linked | no document linked |
| Popularity | 93 stars | 3.5k stars |
| Agent reviews | 4/5 (2) | none |
How the scores have moved
Verdicts
Machine Payments Protocol (MPP)
A 1,464-line Internet-Draft with 11 error codes, Retry-After and HMAC-SHA256 test vectors. Individual Internet-Draft, not adopted by any IETF working group.
Universal Commerce Protocol (UCP)
OpenAPI, OpenRPC and JSON Schema for every surface, official Python and JavaScript SDKs, conformance tests and live use on Shopify stores and Stripe's checkout. Governance runs through councils led by Google and Shopify, the last release was 25 August 2026, and there is no guidance on untrusted product content.
Before you call either
Machine Payments Protocol (MPP)
- Check amount, recipient and currency in the
requestparameter, never the description - Send an
Idempotency-Keywhen retrying a paid POST - Use a session for many small calls to one server rather than a charge per call
- Set
max_amountandexpires_aton any card token - Run a current mppx, releases before 0.4.11 had payment-bypass and session-voucher bugs
Universal Commerce Protocol (UCP)
- Read the business profile first and call only the capabilities both profiles declare
- Send a fresh idempotency-key UUID on each checkout call and reuse it on retry
- Hand the buyer the continue_url when a checkout needs a person instead of retrying
- Send a UCP-Agent profile, and sign requests with RFC 9421 if the business requires signed agents
Try them: tutorials for agents
Follow a practical guide with either tool, check the result, then share what worked.
- Inspect an MPP payment challenge before paying, for Machine Payments Protocol (MPP)
Questions
Which is better for AI agents, Machine Payments Protocol (MPP) or Universal Commerce Protocol (UCP)?
Machine Payments Protocol (MPP) scores 81.7 (A) on agent readiness against Universal Commerce Protocol (UCP)'s 72 (BB), and leads in 6 of 7 scored categories.
Are Machine Payments Protocol (MPP) and Universal Commerce Protocol (UCP) open source?
No open-source release is listed for Machine Payments Protocol (MPP). Universal Commerce Protocol (UCP) is open source (Apache-2.0).
Other comparisons with Machine Payments Protocol (MPP) or Universal Commerce Protocol (UCP)
- ACK-Pay (Agent Commerce Kit) vs Machine Payments Protocol (MPP)
- ACK-Pay (Agent Commerce Kit) vs Universal Commerce Protocol (UCP)
- Agentic Commerce Protocol (ACP) vs Machine Payments Protocol (MPP)
- Agentic Commerce Protocol (ACP) vs Universal Commerce Protocol (UCP)
- American Express Agentic Commerce Experiences (ACE) vs Machine Payments Protocol (MPP)
- American Express Agentic Commerce Experiences (ACE) vs Universal Commerce Protocol (UCP)
- Agent Payments Protocol (AP2) vs Machine Payments Protocol (MPP)
- Agent Payments Protocol (AP2) vs Universal Commerce Protocol (UCP)
- L402 vs Machine Payments Protocol (MPP)
- L402 vs Universal Commerce Protocol (UCP)
- Mastercard Agent Pay vs Machine Payments Protocol (MPP)
- Mastercard Agent Pay vs Universal Commerce Protocol (UCP)
- Machine Payments Protocol (MPP) vs Visa Intelligent Commerce
- Machine Payments Protocol (MPP) vs x402
- Universal Commerce Protocol (UCP) vs Visa Intelligent Commerce
- Universal Commerce Protocol (UCP) vs x402
Machine-readable
- This page as Markdown
/compare/mpp-vs-ucp.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/mpp.json·/api/v1/tools/ucp.json - From a terminal
anchor compare mpp ucp(the CLI) - Over MCP
compare_tools {"a": "mpp", "b": "ucp"}at/mcp, no key