# mpp

## What is MPP?

**MPP (Machine Payments Protocol)** is an open machine-to-machine payment protocol from **Stripe and Tempo Labs**, launched in March 2026. It formalizes HTTP 402 for agent payments: stablecoins and cards are accepted within a single HTTP request, and a session primitive handles streaming transactions.

## Why do you need MPP?

As the AI economy grows, agents increasingly buy services from other agents or external services. MPP creates a common language for such transactions, with several key differences from [x402](/glossary/x402):

| | x402 | MPP |
|--|------|-----|
| Author | Coinbase | Stripe + Tempo Labs |
| Payment methods | Stablecoins (USDC) | Stablecoins + cards |
| Sessions | No | Session primitive for streaming |
| Service directory | No | 100+ services |

MPP targets a broader market: alongside stablecoins, traditional payment instruments are supported, lowering the barrier to entry.

## How do you implement MPP?

Declare MPP support in [`ai-agent.json`](/glossary/ai-agent-json):

```json
{
  "payments": {
    "mpp": "https://api.example.com/mpp"
  }
}
```

Or via a Link header:

```http
Link: <https://api.example.com/mpp>; rel="mpp-endpoint"
```

Full integration requires implementing an MPP endpoint according to the specification at `mpp.dev`. The session primitive is used for streaming services where a transaction spans over time (subscriptions, long-running tasks).

## How do we check MPP?

The MPP check in the scanner is **informational** (does not affect the main score). The scanner checks for protocol declaration in two ways:

1. GET `/.well-known/ai-agent.json` → `payments.mpp` field
2. HEAD `/` → Link header with `rel="mpp-endpoint"`

Actual payment processing is not tested. If a declaration is found → `pass`, if absent → `fail`.

[← All glossary terms](/en/glossary)
