Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Preflight x402 payments. Base ERC-8004 agent #1151628; wallet binding verified Nov 3, 2026.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://api.spendpreflight.com/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http spendpreflight https://api.spendpreflight.com/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"spendpreflight": {
"url": "https://api.spendpreflight.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"spendpreflight": {
"type": "http",
"url": "https://api.spendpreflight.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://api.spendpreflight.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 6 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
preflight_paymentUse when you are about to sign an x402 payment for allow, hold or block, reasons and a signed decision receipt. Covers payee sanctions screening, spending rules and cached price/recipient evidence where available. For separate evidence, use lint_endpoint/listing_guard for technic
check_payeeUse when you need standalone payee screening without a payment decision. 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 a
lint_endpointUse when you sell via x402 and want a free check of your public payment challenge. Free x402 Lint by SpendPreflight. Includes a free passive Security Check summary; optional full report with fixes is $0.10, no automatic payment. Checks a public HTTPS endpoint with an unpaid GET:
check_tokenUse when you need a bounded Base token assessment with explicit unassessed areas. Base contract safety signals from bounded public-chain reads and OFAC. Basic: deployed bytecode and SDN match. Deep adds standard owner(), paused(), totalSupply(), decimals() and ERC-1967 storage ob
payment_receiptUse when you need a signed observation of an existing Base USDC transfer. Verify a native Base USDC transfer by tx_hash (optional log_index), or exact pay_to + decimal amount + past start/end (max 90 days). Ambiguous matches fail without charge. Signed observation, OFAC flags, co
get_service_infoUse when you need more tools: browse Buyers, Sellers, Books and Data APIs, prices, rules and examples. If you have a payment challenge, call preflight_payment directly. Free, read-only service reference. Use when you need prices, default spending rules, payment setup, trial allow
verify_payee_bindingUse when a seller advertises an ERC-8004 identity and you need an ERC-8478 Draft wallet-binding observation. ERC-8478 Draft payee verification: endpoint origin and ERC-8004 agent wallet or EIP-712 delegation at one pinned registry block. Nine explicit outcomes; not-read is unchar
quote_checkUse when you need an exact quote compared with cached public price and recipient evidence. Compare a supplied x402 quote with the latest comparable cached public unpaid quote and disclosed retained history. Scout keeps only the latest probe; the separate public index can retain s
listing_guardUse when you need a detailed public listing metadata check. Bazaar Listing Guard: CDP technical validation plus a bounded heuristic metadata screen for agent-directed instructions, embedded URLs, tool calls, invisible Unicode, long fields and prices above 100x a fresh Scout categ
check_listingUse when an existing integration calls the listing_guard compatibility alias. Compatibility alias of listing_guard for existing clients. Prefer listing_guard for a new detailed metadata check; these are the same operation, not two independent checks. Bazaar Listing Guard: CDP tec
security_checkUse when you need the full passive evidence from a current complete saved Lint report. x402 Security Check (Lint Pro). Detailed passive findings and source-linked fixes from an existing, unexpired free Lint report. $0.10 USDC on Base, no trial or automatic payment. No new target
seller_indexUse when you need sellers from the existing cached public catalog. Search cached public x402 sellers. First three matches free; up to12 cost0.01 USDC only with extra matches. Bounded unpaid availability, 402, quote history and public Lint evidence; missing evidence unknown. Parti
domain_authUse when you need public DNS email-authentication observations for a domain. Observe a public domain’s MX, SPF, direct DMARC record, supplied DKIM selectors and resolver-reported DNSSEC evidence.0.005 USDC per usable report, no shared trial. Fixed public Cloudflare DoH only, at m
check_endpointUse when you need cached public endpoint evidence. 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
wallet_statementUse when you need a reconciled Base USDC statement for a bounded UTC window. Export native Base USDC wallet transfers as JSON or CSV for a past range up to 90 days, start inclusive/end exclusive. Exact decimal running balances, counterparties and OFAC flags. Up to 1000 transfers/
find_rv_stationsUse when you need nearby RV stations from the dated FillPoint snapshot; see Data APIs. Nearest RV dump/water stations from FillPoint RV's dated September 17, 2026 ODbL snapshot. $0.01 for bounded straight-line proximity calculation, not live access, potable-water assurance or roa
size_solarUse when you need solar energy arithmetic from supplied assumptions; see Data APIs. Off-grid PV energy-balance estimate based on Wattpath by Nomad Energy Club. Supply daily loads, peak sun hours, PV losses, and optional battery assumptions. No location/weather lookup, electrical
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub spendpreflight ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 227 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 17 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.2.0-metadata.8) เข้า registry เมื่อวาน
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Dechonet MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
30 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Call preflight_payment before signing an x402 payment. Get allow, hold or block, reasons and a signed decision receipt; enforce the decision within your approved wallet and budget. Preflight combines payee screening, spending rules and cached price/recipient evidence where available. ERC-8478 wallet binding remains a separate verify_payee_binding call.
About to pay? Start with Preflight. Selling via x402? Start with free Lint and monitoring.
Three runnable examples: a guarded x402 client, Claude Code / Cursor MCP setup, and seller CI. The examples run offline by default; no payment or live probe is needed to try them.
MCP core tools appear first: preflight_payment, check_payee, lint_endpoint, check_token, payment_receipt. Free get_service_info groups the complete enabled catalog into Buyers, Sellers, Books and Data APIs. All products and prices remain available in the catalog; solar and FillPoint have their own Data APIs page.
verify_payee_binding or POST /v1/payee-binding, 0.01 USDC with the existing shared trial. Signed JSON reports exactly one of nine outcomes at a pinned registry block; not-read is uncharged. Checks direct agent-wallet equality or EIP-712 delegation, including ERC-1271, rotation and expiry. An observation is not payment approval. Base first, plus public Robinhood reads; the Draft may change.Read the announcement and tool-selection guide. These are operated remote-service tools; this metadata update does not publish a new npm package or enable automatic payments.
createQuoteCheckHook attaches to onBeforePaymentCreation. It compares the selected exact-scheme quote with a dated cached public unpaid quote, never requests the merchant, and aborts on above_expected, payTo_changed, unknown or an error. ok only means the supplied amount is not above the last comparable observation with the same recipient; it is not payment approval or loss prevention. Keep the local guard for allowlists, per-payment limits and its in-process daily budget.
import { createQuoteCheckHook, guard } from 'spendpreflight';
// comparisonFetch is a SEPARATE locally guarded x402 fetch configured by you. // It can pay the comparison API's $0.001 fee; no shared trial or auto-renewal. client.onBeforePaymentCreation(createQuoteCheckHook({ fetch: comparisonFetch })); guard(client, { remote: false, rules: { maxPerPaymentUsd: 0.10, dailyCapUsd: 1 } });
Without an explicitly supplied paid fetch, plain fetch stops at the 402 offer. The same client cannot pay its own hook fee: recursion is rejected before signing. Missing/stale/ambiguous history returns unknown without a charge. No automatic retry, target refresh, signature replay or application of a suggested cap occurs. The informational suggested_max_amount_per_payment uses atomic units for the stated asset/network and expires with the cached observation; it is not a personal budget. Use quoteCheck(input, options) for a standalone comparison, or signed GET /quote-check / MCP quote_check. URL and quote fields are sent transiently to the comparison API; do not use private URLs or query secrets.
SpendPreflight — trust and verification tools for stablecoin payments, built for AI agents and the people who run them.
Product catalog · Trust and privacy
Allow, hold or block every x402 payment before your agent pays.
Maintained by the operator of SpendPreflight, the optional paid screening API linked below.
Drop-in spend guard for the official x402 client (@x402/core, @x402/fetch, @x402/axios). It checks each payment *before anything is signed*:
A blocked payment is aborted before signing. A hold goes to your onHold callback, or is denied. Every decision is passed to onDecision so you can log it.
npm i spendpreflight @x402/fetch @x402/evm viem
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client"; import { privateKeyToAccount } from "viem/accounts"; import { guard } from "spendpreflight";
const account = privateKeyToAccount(process.env.AGENT_KEY as 0x${string}); const client = new x402Client().register("eip155:8453", new ExactEvmScheme(account)); const pay = wrapFetchWithPayment(fetch, client);
guard(client, { rules: { maxPerPaymentUsd: 1, holdAboveUsd: 0.25, dailyCapUsd: 20 }, remote: false, // local rules; separate screening client shown below onHold: async v => askHuman(v), // return true to approve onDecision: v => console.log(v.decision, v.reasons, v.receiptId), });
const res = await pay("https://api.some-paid-service.com/data"); // guarded
guard(client, { remote: { trial: true } }); // 3 free remote checks per day per IP
Or use local rules only, with no network call:
guard(client, { remote: false });
Copy-paste examples maintained by the operator of SpendPreflight:
/v1/preflight before paying ($0.02 screening fee).See setup and safety notes. The screening tools never pay the merchant under review. Enforce decisions in the actual payment client; a model selecting a tool alone is not a spending gate. Tests use local mocks and throwaway signers, with no paid calls.
| Decision | What happens | Typical reasons |
|---|---|---|
allow | Payment proceeds | All rules passed |
hold | onHold(verdict) decides; denied if you don't provide one | Above hold threshold, domain not on allowlist, new domain, possible sanctions name match, remote check unavailable |
block | Payment aborted before signing | Over max, daily cap hit, wrong network or asset, blocklisted, payee wallet on the OFAC SDN list |
The remote check fails safe: if the API is unreachable, the decision is hold. Set remote.onError: "allow" to fail open instead.
Version0.2.0 requires Node20+ and a separate screening payment client, with its own local-only guard, exact payTo/asset/network allowlist and screening budget. A claimed resource hostname never bypasses the merchant guard. Reusing the merchant client recursively fails closed before signing.
| Option | Default |
|---|---|
maxPerPaymentUsd | 1 |
holdAboveUsd | 0.25 |
dailyCapUsd | 25 (in-process, UTC day) |
allowedNetworks | ["eip155:8453"] (Base) |
usdcOnly | true |
domainAllowlist / domainBlocklist | [] (subdomains match) |
payToAllowlist / payToBlocklist | [] |
strictAllowlist | false (hold anything not on an allowlist) |
maxPriceMultiple | 5 (remote only; null disables category price comparison) |
requireLive | true (remote only; hold after three usable failed unpaid probes) |
holdOnPayToChange | true (remote only; hold on a seven-day payTo change) |
Version 0.2.0 adds these three settings when remote is enabled. They use the public Endpoint Health Index: the price rule compares the current quote with a category median; liveness counts usable unpaid probes; payee changes are compared within the same network and asset. They do not run locally or trigger a crawl, and no merchant endpoint is paid to gather this data.
Missing, ambiguous or stale index data is explicitly reported in verdict.remote.index_evidence. It does not become an invented healthy result or a failed probe; the other spending and sanctions rules still apply. A failed remote request retains the existing fail-safe hold. Cart-only checkout has no endpoint history. The corresponding service rules are deployed. Index coverage is still being populated; inspect index_evidence instead of assuming full-catalog coverage.
Any agent or language can call the same checks over HTTP with x402. No account, no API key:
POST https://api.spendpreflight.com/v1/preflight: send the 402 body plus your rules; get allow, hold or block with a receipt. $0.02.POST https://api.spendpreflight.com/v1/check: JSON body with address, domain or name; payee sanctions and domain risk. $0.01.llms.txt alongside it.October22 migration: all paid API execution uses POST JSON. GET/HEAD return discovery challenges only and never settle, even with query parameters or payment headers. Build the POST request and obtain its challenge before signing; do not sign a GET quote for execution. ?trial=1 remains an optional URL flag on POST. The 0.2.1 Scout helpers and current LangChain source examples use this method; Scout production availability is still gated. The core remote preflight guard already used POST. Version0.2.0 is not republished.
Don't take our word for any of this; each point can be checked:
src/index.ts; it's about 250 lines.hold, not allow.ตัดมาแค่ช่วงต้น อ่านต่อใน repo