
Payment Guard Mcp
io.github.mlawsonking由 GitHub 帳號 mlawsonking 發布v1.3.0更新於 Oct 24, 2026
Pre-send risk check for AI agents that move money — screen an address or payment URL before sending.
概覽
本機 MCP 伺服器,在 AI 代理付款前檢查加密地址、ENS 名稱、付款連結與代幣合約的制裁、詐騙與蜜罐風險。
- 可以做什麼
- 篩檢 EVM 地址與 ENS 名稱,檢查 OFAC 制裁、詐騙黑名單與鏈上訊號,回傳 safe、caution 或 block;對地址或名稱做僅限 OFAC 的快速檢查;解析 ENS 名稱並篩檢解析出的地址;審查 x402 或商家付款連結的仿冒主機、短網址、易濫用頂級網域、新註冊網域與重新導向目標;在買入、兌換或授權前檢查代幣合約的蜜罐行為、極高賣出稅與黑名單命中。
- 適用情境
- 適用於 AI 代理透過加密通道、x402 端點或付款連結轉移真實資金,且希望在送出前做確定性、免費的檢查,避免誤付受制裁或詐騙地址。也適合在買入、兌換或授權陌生代幣前使用。
- 執行需求
- 以 stdio 在本機執行,通常透過 npx 啟動,需要 Node.js。需要連線至公共 RPC 節點、ENS、蜜罐模擬服務與規則更新端點的網路;端點可用 PAYMENT_GUARD_API 覆寫。未宣告需要帳號、API 金鑰或標頭。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Payment Guard Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
payment-guard-mcp
An MCP server that checks who your agent is about to pay, before it sends anything. Give it a crypto address, an ENS name, or a payment URL and it returns a verdict. Deterministic, no LLM, free.
Agents are starting to move real money on their own, over crypto rails, x402 endpoints, and payment links. The obvious way that goes wrong is paying a sanctioned or scam address by mistake, which is usually irreversible. screen_address is the check to run first.
Install
Tools
screen_address: the main guard. Takes an EVM address or ENS name and checks OFAC sanctions, scam and abuse blocklists, and on-chain signals (brand-new and unused addresses, contracts). Returns safe, caution, or block.screen_payment: vet an x402 or merchant payment URL for a punycode host, a known brand name sitting outside the registrable domain, shorteners, abuse-prone TLDs, freshly registered domains, and the final URL after redirects.check_sanctioned: a quick OFAC-only check for an address or ENS name.resolve_name: resolve an ENS name to its address and screen that address. It catches names that don't resolve. It does not detect spoofed lookalike names.screen_token: before buying, swapping, or approving a token, check the contract for honeypot behavior (you can buy but not sell), extreme sell taxes, and blocklist hits.
On-chain checks run on Ethereum, Base, Polygon, Arbitrum and Optimism. Data comes from the OFAC SDN list, community scam lists (ethereum-lists, ScamSniffer), public RPC nodes, and ENS.
ENS coverage: resolution is namehash, then resolver(node) on the mainnet ENS registry, then a direct addr(bytes32) call. The address that comes back is screened against the sanctions and scam lists. There is no confusable check and no ENSIP-15 normalization, so lookalike and homoglyph names are not detected. There is no ENSIP-10 wildcard resolution and no CCIP-Read, so offchain and L2 names — Basenames, .cb.id, gasless subnames — report as not resolving here even though a wallet resolves them.
Honeypot coverage: the buy+sell simulation is api.honeypot.is, Ethereum and Base only. It returns 400 Invalid chain for Polygon, Arbitrum and Optimism, so the honeypot and tax fields are not populated there. The response says which chains it covers, and when no simulation ran the verdict is never safe — it is caution, or block if the scam blocklist already hit.
URL coverage: the lookalike rule is a substring match on 14 brand names, flagged when the brand is not the registrable domain. paypal.com.secure-pay.xyz is caught; paypa1.com is not, because there is no edit distance or homoglyph mapping. Only the final URL after redirects is compared, not each hop.
Sanctions coverage, stated plainly: OFAC publishes sanctioned addresses by currency, not by chain, so this checks the union of every EVM-format list (ETH, ARB, BSC, ETC, USDC, USDT) and that result applies to any EVM chain. Bitcoin, Tron, Solana, Monero and other non-EVM sanctioned addresses are not checked, because only EVM addresses are accepted. Every response carries a coverage object saying so. If the list cannot be loaded the result is unknown, never clear.
Rule updates
About once a day this server asks the rules feed whether there is a newer ruleset, and applies it if
there is. The request carries two things: which surface asked, which here is facade, and the rules
version already installed. No machine id, no user id, no file names, nothing you scanned.
Bundles are signed with Ed25519 and verified against a public key compiled into this package, so it
does not matter which mirror served one. A bundle that fails its signature, its schema, or its ReDoS
check is discarded and the rules you already had stay in place. --offline turns updates off, as
does AGENT_GUARDS_NO_FEED=1 or {"feed": false} in ~/.agent-guards/config.json. The bundle
format and how to verify one yourself: https://github.com/mlawsonking/MCP/blob/main/rules/README.md
It calls https://payment-guard.vercel.app (set PAYMENT_GUARD_API to override). One of six agent guards in this repo. MIT.
來源:payment-guard-mcp/README.md,提交 91f3fa7
工具
0版本歷史
1- v1.3.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分