The open protocol for machine-to-machine payments.
MPP lets any client — agents, apps, or humans — pay for any service in the same HTTP request. It standardizes HTTP 402 with an open IETF specification, so servers can charge and clients can pay without API keys, billing accounts, or checkout flows.
You can get started today by reading the protocol overview, jumping straight to the quickstart, or exploring the SDKs.
This repository contains the mpp.dev documentation site and service directory.
- Documentation — quickstart guides, protocol explainers, and SDK references
- Service Directory — a registry of MPP-enabled services at mpp.dev/services
pnpm install # Install dependencies
pnpm run dev # Start development server
pnpm run build # Production build
pnpm run preview # Preview production buildThe service directory at mpp.dev/services lists all MPP-enabled services. To add or update a service, edit the registry source file and open a pull request.
- Edit
schemas/services.ts— add a new entry to theservicesarray:
{
id: "my-service",
name: "My Service",
url: "https://example.com",
serviceUrl: "https://api.example.com",
description: "What your service does.",
categories: ["ai"],
integration: "first-party",
tags: ["llm", "chat"],
docs: {
homepage: "https://docs.example.com",
llmsTxt: "https://docs.example.com/llms.txt",
},
provider: { name: "Example Inc.", url: "https://example.com" },
realm: MPP_REALM,
intent: "charge",
payment: TEMPO_PAYMENT,
endpoints: [
{ route: "POST /v1/completions", desc: "Generate completions", amount: "5000" },
{ route: "GET /v1/models", desc: "List models" },
],
}- Regenerate the discovery file:
node scripts/generate-discovery.ts- Validate:
pnpm check:types
pnpm build- Open a pull request with both
schemas/services.tsandschemas/discovery.jsonchanges.
Contributions to documentation, the service directory, and site improvements are welcome.
- Types pass:
pnpm check:types - Build succeeds:
pnpm build - Lint passes:
pnpm check - E2E tests pass (if touching terminal or interactive components):
pnpm test:e2e
| Change type | Process |
|---|---|
| Typo or editorial fix | Direct PR to main |
| New documentation page | Follow existing page structure in src/pages/ |
| New service listing | Edit schemas/services.ts, regenerate, PR |
| Service update | Edit the service entry in schemas/services.ts, regenerate, PR |
| New component | Follow patterns in src/components/ |
| Site configuration | Open an issue first for discussion |
| Repository | Language |
|---|---|
| wevm/mppx | TypeScript |
| tempoxyz/pympp | Python |
| tempoxyz/mpp-rs | Rust |
| tempoxyz/mpp-specs | IETF specifications |
See SECURITY.md for reporting vulnerabilities.
Licensed under either of Apache License, Version 2.0 or MIT License at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in these crates by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.