1. Abstract
Expose mpp.dev-style discovery and HTTP payment challenges so agents can discover payable resources and payment terms safely.
MPP lets agents find paid API operations through OpenAPI metadata and recognize HTTP payment challenges without scraping human checkout flows or guessing payable paths.
2. Classification
- Check ID
- mpp
- Check version
- 1.0.0
- Package path
- lib/checks/mpp/versions/1.0.0
- Category
- Agent Ease of Use
- Subcategory
- Agent Commerce
- Check group
- Commerce Protocols
- Check group ID
- commerce-protocols
- Maturity
- Emerging recommendation
- Scope
- site
- Check weight
- 1
3. Input And Output Contracts
- Input
- [email protected]
- Output
- [email protected]
- Resources inspected
- /openapi.json, /llms.txt, /llms-full.txt, HTTP 402 response, WWW-Authenticate: Payment, Authorization: Payment, Payment-Receipt
4. Scoring Semantics
| Step ID | Title | Weight | Description |
|---|---|---|---|
applicability | Decide whether MPP applies | 0.1 | Detect mpp.dev-style MPP signals from homepage, headers, canonical discovery, and public agent metadata. |
canonical-discovery | Fetch canonical MPP discovery | 0.2 | Fetch /openapi.json as the deterministic mpp.dev discovery path for HTTP APIs. |
payment-discovery | Validate MPP OpenAPI payment metadata | 0.25 | Validate operation-level x-payment-info, offers, methods, intents, amount strings, and 402 response declarations. |
documented-routes | Find explicitly documented payable routes | 0.1 | Use only OpenAPI or explicit public metadata routes as runtime probe candidates. |
runtime-challenge | Validate safe runtime MPP challenge | 0.2 | Safely probe documented GET candidates for HTTP 402 plus WWW-Authenticate: Payment without sending credentials. |
protocol-distinction | Distinguish MPP from x402-only evidence | 0.05 | Record x402 compatibility as adjacent evidence but do not pass x402-only payment headers as MPP. |
security-review | Review MPP metadata safety | 0.1 | Flag secrets, credentials, private endpoints, and unsafe public payment metadata. |
5. Package Documentation
MPP Check v1.0.0
Status
- Version:
1.0.0 - Check identifier:
mpp - Input contract:
[email protected] - Output contract:
[email protected] - Scope: site-level HTTP/OpenAPI evidence for mpp.dev-style Machine Payments Protocol support
Abstract
This check validates mpp.dev-style MPP discovery and safe runtime payment challenges for origins that expose machine-payable API resources. It does not execute payments, generate credentials, or submit Authorization: Payment.
Motivation
Agents need a deterministic way to discover paid resources before calling them. mpp.dev presents OpenAPI discovery at /openapi.json plus runtime 402 payment challenges as the HTTP path for that discovery. Without canonical discovery or explicitly documented paid routes, a checker cannot safely know which paths to probe.
Normative Model
The check uses mpp.dev as its protocol source. MPP is modeled as a Challenge-Credential-Receipt lifecycle:
- Challenge: a paid resource returns HTTP
402withWWW-Authenticate: Payment. - Credential: a client retries with
Authorization: Payment. - Receipt: a successful paid response can include
Payment-Receipt.
For HTTP APIs, mpp.dev-documented discovery uses GET /openapi.json, operation-level x-payment-info, and payment offers. Payable operations should declare a 402 response.
Applicability
The check applies when public evidence suggests mpp.dev-style MPP support:
/openapi.jsoncontains operation-levelx-payment-info.- a safe route returns
402withWWW-Authenticate: Payment. - public docs or agent metadata mention Machine Payments Protocol, MPP, mpp.dev,
mppx, Challenge-Credential-Receipt,Authorization: Payment, orPayment-Receipt. llms.txtorllms-full.txtidentifies MPP support.
The check is not applicable when there is no public MPP signal, or when the site only exposes ordinary human checkout.
Pass Criteria
The check passes when it finds valid MPP discovery or a valid safe runtime challenge:
/openapi.jsonis reachable and parseable.- at least one OpenAPI operation has
x-payment-info. - each payable operation declares a
402response. - each offer includes
method,intent, andamount. - offer amounts are
nullor non-negative integer strings. - a safe documented route returns
402withWWW-Authenticate: Payment. - runtime Payment challenges include
id,realm,method,intent, andrequest.
Warning Criteria
The check warns when MPP evidence is partial or ambiguous:
- MPP is claimed, but
/openapi.jsonis missing. - MPP routes are documented only outside canonical discovery.
- no explicit safe
GETroute is available to probe. - a body-bearing payable operation omits
requestBody. - a
402challenge is not safely observable. - MPP and x402 compatibility are both present, but the MPP surface is unclear.
Missing /openapi.json is a real discovery defect. The check does not guess arbitrary paid paths when canonical discovery is absent.
Failure Criteria
The check fails when MPP is claimed but the visible MPP surface is malformed or unsafe:
/openapi.jsonis present but cannot be parsed./openapi.jsonis not shaped like OpenAPI.x-payment-infois malformed.- a payable operation omits a
402response. - an offer omits
method,intent, oramount. - an amount is not
nullor a non-negative integer string. - a documented payable route returns
402withoutWWW-Authenticate: Payment. - a Payment challenge omits
id,realm,method,intent, orrequest. - public metadata exposes credentials, private keys, private hosts, or unsafe payment endpoints.
- only x402-style
PAYMENT-*evidence is present and no mpp.dev-style MPP evidence is found.
Evidence Model
Evidence includes:
- applicability signals
/openapi.jsonstatus, content type, and parse state- payable operation path and method
- offer count, method, intent, and amount shape
402response declaration presence- explicit safe runtime probe candidates
- runtime status code and selected payment headers
- Payment challenge required parameter presence
- metadata findings from
llms.txtandllms-full.txt - x402-only evidence as adjacent evidence
- secret or unsafe endpoint flags
Evidence must not include full credentials, full payment authorization payloads, cookies, bearer tokens, private keys, wallet secrets, or full receipt payloads.
Validation And Scoring Steps
applicability(0.10): identify mpp.dev-style MPP signals.canonical-discovery(0.20): fetch/openapi.json.payment-discovery(0.25): validate OpenAPIx-payment-info, offers, amount format, and402responses.documented-routes(0.10): find only explicit safe payableGETroutes.runtime-challenge(0.20): probe documented candidates for402plusWWW-Authenticate: Payment.protocol-distinction(0.05): keep x402-only evidence from passing as MPP.security-review(0.10): flag credentials, secrets, private endpoints, and unsafe public metadata.
Standard Behavior
If no MPP signal is visible, the result is not_applicable.
If valid canonical discovery is present, the result can pass without executing payment.
If canonical discovery is missing but a documented safe route returns a valid Payment challenge, the result can pass runtime validation while warning that discovery is missing.
If MPP is claimed and neither canonical discovery nor explicit safe runtime evidence is available, the result warns or fails based on the strength and quality of the claim.
Non-Standard And Real-World Behavior
Some services may document paid routes in public docs, llms.txt, or llms-full.txt before publishing canonical discovery. The check can use those explicit routes as safe candidates, but it does not crawl or guess paid endpoints.
Some services may support x402 compatibility alongside MPP. x402-only headers are adjacent evidence, not MPP pass evidence.
Non-Goals And Limitations
This check does not:
- execute payments
- send
Authorization: Payment - generate credentials
- verify settlement
- validate provider-specific payment proofs
- validate every OpenAPI rule
- crawl arbitrary API paths
- probe unsafe, authenticated, state-changing, or body-bearing operations
- validate MCP, JSON-RPC, or WebSocket MPP transports
References
Source: lib/checks/mpp/versions/1.0.0/docs.md
6. Version Changelog
mpp v1.0.0 Changelog
- Validates canonical
/openapi.jsondiscovery, operation-levelx-payment-info, payment offers, and402response declarations. - Treats missing canonical discovery as a discovery defect and probes only explicitly documented safe
GETroutes. - Recognizes
402plusWWW-Authenticate: Paymentas runtime MPP evidence without executing payments. - Distinguishes mpp.dev-style MPP evidence from x402-only
PAYMENT-*headers.
Source: lib/checks/mpp/versions/1.0.0/changelog.md