SpendPreflight

Operated by SpendPreflight: sanctions screening and allow/hold/block preflight for x402 payments.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
70%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,486Tokens (tool definitions)
~4.4 KBTypical response size
Moderate attention impact (1.16% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "spendpreflight": {
      "url": "https://api.spendpreflight.com/mcp"
    }
  }
}

Remote endpoints

https://api.spendpreflight.com/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_payee(domain, address, name)

Payee risk check. Screens a payee wallet address and name against the OFAC SDN sanctions list and checks the merchant domain's registration age and DNS. Returns risk low|medium|high|unknown with flags such as sanctioned_address, sanctioned_name_possible, new_domain. Use for standalone payee screening before paying. Provide at least one of domain, address, or name; inputs may be combined, and domain accepts a hostname or URL. For an x402 challenge or cart and an allow/hold/block spending-rule decision, use preflight_payment instead. Price $0.01 per call (free trial first).

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Merchant domain or URL, e.g. shop.example.com"
    },
    "address": {
      "type": "string",
      "description": "Payee wallet address (EVM 0x…, BTC, etc.)"
    },
    "name": {
      "type": "string",
      "description": "Merchant or payee legal name"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "risk": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "unknown"
      ],
      "description": "Overall payee risk"
    },
    "flags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "e.g. sanctioned_address, sanctioned_name_exact, sanctioned_name_possible, new_domain, domain_no_dns"
    },
    "sanctions": {
      "type": "object",
      "properties": {
        "address_match": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ]
        },
        "name_matches": {
          "type": "array"
        }
      },
      "required": [
        "name_matches"
      ],
      "additionalProperties": false,
      "description": "OFAC SDN matches"
    },
    "domain": {
      "anyOf": [
        {},
        {
          "type": "null"
        }
      ],
      "description": "Domain age/DNS signals, or null if no domain given"
    },
    "data_as_of": {
      "type": "string",
      "description": "Timestamp of the sanctions data used"
    },
    "disclaimer": {
      "type": "string"
    }
  },
  "required": [
    "risk",
    "flags",
    "sanctions",
    "data_as_of",
    "disclaimer"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢preflight_payment(challenge, cart, resource_url, rules, spent_today_usd)

Spend preflight for AI agents. Send the x402 PaymentRequired body (v1 or v2) you received, or a cart, plus optional rules (per-payment max, hold threshold, daily cap, allowlists, new-domain days). Returns allow|hold|block with reasons, the cheapest acceptable payment option, and a receipt id. Read-only: never signs, settles, or holds funds. Use before every payment. It includes payee screening in its spending-rule decision. For standalone wallet, name, or domain screening without a payment, use check_payee instead. Each repeat call creates a new receipt and may consume another trial or paid call. Price $0.02 per call (free trial first).

Input Schema

{
  "type": "object",
  "properties": {
    "challenge": {
      "type": "object",
      "additionalProperties": {},
      "description": "The x402 PaymentRequired body (v1 or v2) your agent received with HTTP 402"
    },
    "cart": {
      "type": "object",
      "properties": {
        "merchant_domain": {
          "type": "string"
        },
        "total_usd": {
          "type": "number"
        },
        "pay_to": {
          "type": "string"
        },
        "merchant_name": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "description": "Use instead of challenge for agent checkout / card payments"
    },
    "resource_url": {
      "type": "string",
      "description": "URL that returned the 402, if not inside the challenge"
    },
    "rules": {
      "type": "object",
      "properties": {
        "max_per_payment_usd": {
          "type": "number"
        },
        "hold_above_usd": {
          "type": "number"
        },
        "daily_cap_usd": {
          "type": "number"
        },
        "allowed_networks": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "usdc_only": {
          "type": "boolean"
        },
        "domain_allowlist": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "domain_blocklist": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "payto_allowlist": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "payto_blocklist": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "strict_allowlist": {
          "type": "boolean"
        },
        "new_domain_days": {
          "type": "number"
        }
      },
      "additionalProperties": false,
      "description": "Spending rules; all optional. See get_service_info for defaults."
    },
    "spent_today_usd": {
      "type": "number",
      "description": "What this agent already spent today, for the daily cap"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "decision": {
      "type": "string",
      "enum": [
        "allow",
        "hold",
        "block"
      ],
      "description": "Pay on allow, ask a human on hold, never pay on block"
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Every rule that fired, prefixed with its decision"
    },
    "chosen_option": {
      "anyOf": [
        {},
        {
          "type": "null"
        }
      ],
      "description": "The cheapest acceptable payment option"
    },
    "options_evaluated": {
      "type": "integer"
    },
    "payee": {
      "anyOf": [
        {},
        {
          "type": "null"
        }
      ],
      "description": "Payee screening details"
    },
    "receipt": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "ts": {
          "type": "string"
        },
        "input_sha256": {
          "type": "string"
        },
        "decision": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "ts",
        "input_sha256",
        "decision"
      ],
      "additionalProperties": false,
      "description": "Log this for audit"
    }
  },
  "required": [
    "decision",
    "reasons",
    "options_evaluated",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_service_info

Free, read-only service reference. Use first to learn prices, default spending rules, payment setup, trial allowance, and integration links. Takes no arguments and performs no payee screening or payment decision. Use check_payee for standalone payee risk; use preflight_payment for an x402 challenge or cart and an allow/hold/block decision.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "when_to_use": {
      "type": "string"
    },
    "pricing": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "free_trial_per_day": {
      "type": "number"
    },
    "payment": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "default_rules": {
      "type": "object",
      "additionalProperties": {}
    },
    "http_api": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "client_guard": {
      "type": "string"
    },
    "site": {
      "type": "string"
    },
    "guarantees": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "trust": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "disclaimer": {
      "type": "string"
    }
  },
  "required": [
    "when_to_use",
    "pricing",
    "free_trial_per_day",
    "payment",
    "default_rules",
    "http_api",
    "client_guard",
    "site",
    "guarantees",
    "trust",
    "disclaimer"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools