Skip to main content
Glama

Preflight x402 and MPP Offer

payment_offer_preflight

Compare x402 and MPP payment challenges, terms, and seller-declared JSON success-response readiness for one exact public HTTPS GET route before buyer authorization, including URL and realm binding, expiry, cross-protocol economic parity, and exact-route OpenAPI evidence. Use agent_discoverability_audit instead when you need to know whether catalogs rank or expose a service. This tool uses no target credential, signature, or target payment, follows no redirect, never reads the paid target body, and reads only the same-origin public OpenAPI document under a strict size cap. A seller declaration is advisory and does not establish runtime validity, seller trust, utility, or settlement reliability. Payment challenge and credentials are bound to GET https://agents.samedaydesk.com/commerce/payment-offer-preflight, not mcp://. Retry the identical authorized arguments and credential.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesExact public HTTPS GET route whose unpaid x402 and MPP challenge headers and same-origin OpenAPI success-response declaration should be inspected before buyer authorization. Credential-like query keys, fragments, unresolved parameters, local hosts, redirects, and non-public IPs are rejected.
catalogNoOptional caller-supplied catalog candidate. When present, the tool compares it with every live unsigned offer across request, protocol, amount, network, asset, recipient, and expiry.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
offersYes
parityYes
targetYes
productYes
versionYes
boundaryYes
decisionYes
findingsYes
checkedAtYes
protocolsYes
offerCountYes
catalogCoherenceYes
responseContractYes
responseContractAcquisitionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "boundary": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "claim": {
      +          "type": "string"
      +        },
      +        "credentialsUsed": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "openApiDocumentRead": {
      +          "type": "boolean"
      +        },
      +        "paymentSent": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "paymentSigned": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "redirectsFollowed": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "targetResponseBodyRead": {
      +          "const": false,
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "credentialsUsed",
      +        "paymentSigned",
      +        "paymentSent",
      +        "targetResponseBodyRead",
      +        "openApiDocumentRead",
      +        "redirectsFollowed",
      +        "claim"
      +      ],
      +      "type": "object"
      +    },
      +    "catalogCoherence": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "decision": {
      +            "enum": [
      +              "coherent",
      +              "partial",
      +              "drifted"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "decision"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "checkedAt": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "decision": {
      +      "enum": [
      +        "parseable_offer",
      +        "review_required",
      +        "no_parseable_offer"
      +      ],
      +      "type": "string"
      +    },
      +    "findings": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "severity": {
      +            "enum": [
      +              "error",
      +              "warning"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "severity",
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "offerCount": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "offers": {
      +      "items": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "amountAtomic": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "amountDisplay": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "asset": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "decimals": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "expiresAt": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "intent": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "network": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "protocol": {
      +                "const": "x402",
      +                "type": "string"
      +              },
      +              "recipient": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "scheme": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "valid": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "protocol",
      +              "scheme",
      +              "intent",
      +              "network",
      +              "asset",
      +              "amountAtomic",
      +              "decimals",
      +              "amountDisplay",
      +              "recipient",
      +              "expiresAt",
      +              "valid"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "amountAtomic": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/amountAtomic"
      +              },
      +              "amountDisplay": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/amountDisplay"
      +              },
      +              "asset": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/asset"
      +              },
      +              "credentialTypes": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "decimals": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/decimals"
      +              },
      +              "expiresAt": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/expiresAt"
      +              },
      +              "intent": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/intent"
      +              },
      +              "network": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/network"
      +              },
      +              "protocol": {
      +                "const": "mpp",
      +                "type": "string"
      +              },
      +              "realm": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "recipient": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/recipient"
      +              },
      +              "scheme": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/scheme"
      +              },
      +              "valid": {
      +                "$ref": "#/properties/offers/items/anyOf/0/properties/valid"
      +              }
      +            },
      +            "required": [
      +              "protocol",
      +              "scheme",
      +              "intent",
      +              "network",
      +              "asset",
      +              "amountAtomic",
      +              "decimals",
      +              "amountDisplay",
      +              "recipient",
      +              "expiresAt",
      +              "valid",
      +              "realm",
      +              "credentialTypes"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "type": "array"
      +    },
      +    "ok": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "parity": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "compared": {
      +          "type": "boolean"
      +        },
      +        "consistent": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "driftFields": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "compared",
      +        "consistent",
      +        "driftFields"
      +      ],
      +      "type": "object"
      +    },
      +    "product": {
      +      "const": "samedaydesk-payment-offer-preflight",
      +      "type": "string"
      +    },
      +    "protocols": {
      +      "items": {
      +        "enum": [
      +          "mpp",
      +          "x402"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "responseContract": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "decision": {
      +          "enum": [
      +            "admissible",
      +            "partial",
      +            "absent",
      +            "invalid"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "decision"
      +      ],
      +      "type": "object"
      +    },
      +    "responseContractAcquisition": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "attempted": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "credentialsUsed": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "documentRead": {
      +          "type": "boolean"
      +        },
      +        "maxBytes": {
      +          "exclusiveMinimum": 0,
      +          "type": "integer"
      +        },
      +        "path": {
      +          "const": "/openapi.json",
      +          "type": "string"
      +        },
      +        "redirectsFollowed": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "sameOrigin": {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        "targetResponseBodyRead": {
      +          "const": false,
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "attempted",
      +        "sameOrigin",
      +        "path",
      +        "maxBytes",
      +        "documentRead",
      +        "targetResponseBodyRead",
      +        "credentialsUsed",
      +        "redirectsFollowed"
      +      ],
      +      "type": "object"
      +    },
      +    "target": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "httpStatus": {
      +          "type": "integer"
      +        },
      +        "method": {
      +          "const": "GET",
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "method",
      +        "url",
      +        "httpStatus"
      +      ],
      +      "type": "object"
      +    },
      +    "version": {
      +      "const": "1.2.0",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "ok",
      +    "product",
      +    "version",
      +    "checkedAt",
      +    "target",
      +    "decision",
      +    "protocols",
      +    "offerCount",
      +    "offers",
      +    "parity",
      +    "catalogCoherence",
      +    "responseContract",
      +    "responseContractAcquisition",
      +    "findings",
      +    "boundary"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Exact public HTTPS GET route whose unpaid x402 and MPP challenge headers should be inspected before buyer authorization. Credential-like query keys, fragments, unresolved parameters, local hosts, redirects, and non-public IPs are rejected."New value: +"Exact public HTTPS GET route whose unpaid x402 and MPP challenge headers and same-origin OpenAPI success-response declaration should be inspected before buyer authorization. Credential-like query keys, fragments, unresolved parameters, local hosts, redirects, and non-public IPs are rejected."
  3. Changed1 schema field changed
    • addedInput schema / properties / catalog
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional caller-supplied catalog candidate. When present, the tool compares it with every live unsigned offer across request, protocol, amount, network, asset, recipient, and expiry.",
      +  "properties": {
      +    "amountAtomic": {
      +      "description": "Optional advertised price in atomic currency units.",
      +      "pattern": "^(?:0|[1-9][0-9]{0,77})$",
      +      "type": "string"
      +    },
      +    "asset": {
      +      "description": "Optional advertised currency or asset identifier.",
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "expiresAt": {
      +      "description": "Optional advertised offer expiry.",
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "method": {
      +      "const": "GET",
      +      "description": "Catalog request method. The current product inspects exact GET routes.",
      +      "type": "string"
      +    },
      +    "network": {
      +      "description": "Optional advertised network identifier.",
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "protocol": {
      +      "description": "Optional advertised payment protocol.",
      +      "enum": [
      +        "x402",
      +        "mpp"
      +      ],
      +      "type": "string"
      +    },
      +    "recipient": {
      +      "description": "Optional advertised payment recipient.",
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "source": {
      +      "description": "Public catalog or registry name.",
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Exact catalog candidate URL, including all non-secret query values.",
      +      "format": "uri",
      +      "maxLength": 2048,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "method",
      +    "url"
      +  ],
      +  "type": "object"
      +}
  4. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.