SpendPreflight
by spendpreflight · remote · no sign-in to list tools · v1.0.0 · published by GitHub user spendpreflight
Operated by SpendPreflight: sanctions screening and allow/hold/block preflight for x402 payments.
5 tools: 1 do something that can't be undone, 3 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things3Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http spendpreflight https://api.spendpreflight.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "preflight_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":false,"openWorldHint":true}; The name "preflight_payment" says "payment": a word that usually means money moves, which cannot be taken back.
- Infolint_endpoint
The description mentions "credentials".
What this check looks forMatched text
description: "...ic seven-day report link. No payment or credentials; GET cannot validate a POST-only endpoi..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
5 tools
Can't be undone 1Claude Code: ask
preflight_paymentCall this before any x402/USDC payment to evaluate the actual challenge or cart before signing.1 finding
Why it is in this group
- The name "preflight_payment" says "payment": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "preflight_payment" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":false,"openWorldHint":true}; The name "preflight_payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Call this before any x402/USDC payment to evaluate the actual challenge or cart before signing. 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, endpoint category price multiple, liveness and payTo changes). 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).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
- idempotentHint: false
Changes things 3Claude Code: ask
check_endpointCached x402 endpoint observations, operated by SpendPreflight.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Cached x402 endpoint observations, operated by SpendPreflight. Returns a transparent score (or unknown), its components and seven-day unpaid probe history for an already publicly listed URL. Never fetches the caller's URL or pays the endpoint. Unlisted, unavailable or stale data is not charged. This is not a paid-delivery or compliance guarantee. Provide the exact resource URL; add method when the URL has multiple advertised methods. Use for endpoint history and price context before paying. Use check_payee for wallet/name screening or preflight_payment for an allow/hold/block decision. Price $0.005 per cached lookup (shared free trial first). An unknown score means missing evidence; repeated paid calls may incur another charge.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- idempotentHint: true
check_payeePayee risk check.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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. Call this before a USDC payment when you only have a payee name, wallet or domain. 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).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
- idempotentHint: true
lint_endpointFree x402 Lint by SpendPreflight.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...ic seven-day report link. No payment or credentials; GET cannot validate a POST-only endpoi..."
Description, as the server wrote it Free x402 Lint by SpendPreflight. Checks a public HTTPS endpoint with an unpaid GET: v1/v2 challenge shape, payTo/asset/network syntax, price, Bazaar metadata and browser CORS headers. Returns fixes and a public seven-day report link. No payment or credentials; GET cannot validate a POST-only endpoint or paid delivery. Do not submit private URLs.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 1Claude Code: allow
get_service_infoFree, read-only service reference.No findings
Why it is in this group
- The name "get_service_info" says "get": a word for reading.
Description, as the server wrote it Free, read-only service reference. Use when you need prices, default spending rules, payment setup, trial allowance, or a ready-to-use example call. If you already have a payment challenge or cart, call preflight_payment directly; this reference call is optional. 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.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http spendpreflight https://api.spendpreflight.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__spendpreflight__get_service_info"
],
"ask": [
"mcp__spendpreflight__lint_endpoint",
"mcp__spendpreflight__check_payee",
"mcp__spendpreflight__preflight_payment",
"mcp__spendpreflight__check_endpoint"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as spendpreflight. Review it before you use it.
