Vibeleaderboard
Index / tool

Machine Payments Protocol

https://github.com/tempoxyz/mpp
Visit mpp.dev
Category
Developer Tools
Rank
No. 1945Tools index
Pricing
Open Source
Type
TOOL
Builder
tempoxyz
GitHub
89 stars
Date

About

The Machine Payments Protocol (MPP) is an open standard, co-authored by Tempo and Stripe, that makes HTTP 402 Payment Required a usable payment flow between machines. A caller pays for an API request inline with the request itself, so an agent or app can consume a paid service without an API key, a billing account, or a checkout step beforehand. It covers one-time charges, metered pay-as-you-go sessions, and subscriptions across several payment rails including stablecoins, cards, and Bitcoin Lightning, with SDKs in TypeScript, Python, Rust, Go, and Ruby.

What it does

MPP defines a way for software clients to pay for services inside a request. A server responds with HTTP 402 payment requirements, the client supplies payment credentials, and the exchange continues without prior API keys, billing accounts, or checkout flows. The project documents protocol concepts, integrations, SDKs, and participating services.

Why it's ranked here

MPP addresses a concrete friction point in paid APIs: setup before the first request. Its strongest case is breadth. The documentation covers clients, servers, several transports, payment intents, and multiple payment methods, while SDK references span five languages. The repository is primarily the documentation and demonstration hub, not the normative specification or SDK implementation.

What's good

The protocol fits ordinary request and response mechanics through HTTP 402 rather than requiring a separate purchase journey. Documentation extends beyond a quickstart into security, refunds, identity, discovery, relays, and payment hooks. Separate client and server guidance exists across Go, Python, Ruby, Rust, and TypeScript, giving teams several implementation paths.

Tradeoffs

This repository cannot answer every implementation question alone. The normative specification and SDK source live in separate repositories. Running the documentation site requires pnpm and Node 24 or newer, while its demonstrations depend on payment credentials, network configuration, and external services. The curated service directory also accepts only live, production-ready submissions.

How to use it well

Use MPP when agents, applications, or people should buy metered HTTP services during the request itself. Start with the protocol overview, choose the relevant client and server SDK guides, then test against an appropriate payment method and transport. Treat this repository as documentation and examples. It does not replace the normative specification, SDK source, or a general billing system.

Technical notes+

README.md defines this repository as the source for the documentation site and service directory, while package.json identifies a private ESM package managed by pnpm with Node >=24, Vite, Waku, React, Vocs, TypeScript, Vitest, and Playwright. The build runs discovery, diagram, theme, CLI-help, and description generators before Vite. src/pages.gen.ts shows static documentation routes for HTTP, MCP, and WebSocket transports plus Go, Python, Ruby, Rust, and TypeScript SDK references. src/demo-client.ts creates Tempo and Stripe payment-enabled fetch clients; src/mppx.server.ts configures a fee-paying Tempo testnet server with SSE; src/mppx-stripe.server.ts configures Stripe shared-payment-token handling. src/create-spt.test.ts verifies rejection of live Stripe keys, src/mcp-services-proxy.test.ts covers proxy and CORS behavior, and src/mppx-secret.server.test.ts checks secret-key fallback rules.

Observed

License
Dual licensed under Apache License 2.0 or MIT, at the user's option.
Primary language
TypeScript is the primary implementation language shown for the documentation site, scripts, declarations, demos, and tests.
Packaging
Private ESM package managed with pnpm; requires Node 24 or newer.
Interfaces
Documents HTTP, MCP, and WebSocket transports, including an HTTP 402 payment flow.
SDK coverage
SDK references are provided for Go, Python, Ruby, Rust, and TypeScript.
Repository role
Contains the documentation site and curated service directory; the normative specification and SDK implementations live in separate repositories.
Testing
Uses Vitest for unit tests and Playwright-backed end-to-end testing.

Read from README.md, package.json, src/env.d.ts, src/pages.gen.ts, src/demo-client.ts, src/mppx.server.ts, src/create-spt.test.ts, src/mppx-proxy-client.ts, src/virtual-modules.d.ts, src/mppx-secret.server.ts, src/mppx-stripe.server.ts, src/shiki-style-to-class.ts, src/mcp-services-proxy.test.ts, src/mppx-secret.server.test.ts, src/mppx-payment-link.server.ts.

What it can do

  • Convert documents to markdown format

    Document files (PDF, Word, etc.)Markdown text

  • Parse and extract text from documents

    Document filesPlain text content

  • Process multiple document formats

    Various file formatsStandardized output format

  • Batch convert documents

    Multiple document filesConverted file collection

Tags

paymentshttp-402agent-paymentsmachine-to-machinestablecoinsapiprotocol

Tech Stack

Node.jsTypeScriptVite

Media

Machine Payments Protocol

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.