Practical L402 tip: return a WWW-Authenticate: L402 invoice=..., payment_hash=... header plus a JSON body with the same fields. Then the client pays the invoice and retries with Authorization: L402 <payment_hash> (or payment_hash in the request body).
Live demo endpoint that does this: https://maximumsats.com/api/dvm (21 sats after the free tier). This maps cleanly to pay-per-MCP-tool-call without inventing a new protocol.
Practical L402 tip: return a WWW-Authenticate: L402 invoice=..., payment_hash=... header plus a JSON body with the same fields. Then the client pays the invoice and retries with Authorization: L402 <payment_hash> (or payment_hash in the request body).
Live demo endpoint that does this: https://maximumsats.com/api/dvm (21 sats after the free tier). This maps cleanly to pay-per-MCP-tool-call without inventing a new protocol.