
Machine Payments Protocol
https://github.com/tempoxyz/mpp- 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 files → Plain text content
Process multiple document formats
Various file formats → Standardized output format
Batch convert documents
Multiple document files → Converted file collection
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.