Skip to content

tempoxyz/mpp



Machine Payments Protocol



mpp

The open protocol for machine-to-machine payments.

Website IETF Spec License

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.

What's in this repo

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

Development

pnpm install      # Install dependencies
pnpm run dev      # Start development server
pnpm run build    # Production build
pnpm run preview  # Preview production build

Contributing to the service directory

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

Add a new service

  1. Edit schemas/services.ts — add a new entry to the services array:
{
  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" },
  ],
}
  1. Regenerate the discovery file:
node scripts/generate-discovery.ts
  1. Validate:
pnpm check:types
pnpm build
  1. Open a pull request with both schemas/services.ts and schemas/discovery.json changes.

Contributing

Contributions to documentation, the service directory, and site improvements are welcome.

Pull request checklist

  1. Types pass: pnpm check:types
  2. Build succeeds: pnpm build
  3. Lint passes: pnpm check
  4. E2E tests pass (if touching terminal or interactive components): pnpm test:e2e

Types of contributions

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

SDKs

Repository Language
wevm/mppx TypeScript
tempoxyz/pympp Python
tempoxyz/mpp-rs Rust
tempoxyz/mpp-specs IETF specifications

Security

See SECURITY.md for reporting vulnerabilities.

License

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.

About

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Security policy

Stars

Watchers

Forks

Contributors