x402 settle reliability: verify, idempotency, receipts, spend caps; 0.002-0.005 USDC/call
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a delivery receipt (status paid) for an order/request ref; idempotent per ref. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
Settlement tx hash on Base, 0x + 64 hex.
Your order / request id (idempotency key).
Free-text note (max 200 chars).
Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key.
Public https URL we POST to when the status resolves.
USD amount as decimal string, e.g. "0.25".
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http settle https://settle.moneytools.dev/mcp
Create a delivery receipt (status paid) for an order/request ref; idempotent per ref. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| tx | string | Settlement tx hash on Base, 0x + 64 hex. |
| ref | string | Your order / request id (idempotency key). |
| note | string | Free-text note (max 200 chars). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| webhook | string | Public https URL we POST to when the status resolves. |
| amountUsd | string | USD amount as decimal string, e.g. "0.25". |
{
"type": "object",
"properties": {
"tx": {
"type": "string",
"description": "Settlement tx hash on Base, 0x + 64 hex."
},
"ref": {
"type": "string",
"description": "Your order / request id (idempotency key)."
},
"note": {
"type": "string",
"description": "Free-text note (max 200 chars)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"webhook": {
"type": "string",
"description": "Public https URL we POST to when the status resolves."
},
"amountUsd": {
"type": "string",
"description": "USD amount as decimal string, e.g. \"0.25\"."
}
}
}Read a delivery receipt and its history. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| ref | string | Your order / request id (idempotency key). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| receiptId | string | Receipt id str_… (or use ref). |
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "Your order / request id (idempotency key)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"receiptId": {
"type": "string",
"description": "Receipt id str_… (or use ref)."
}
}
}Move a receipt paid -> delivered | failed | refunded (refundTx optional). Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| ref | string | Your order / request id (idempotency key). |
| note | string | Free-text note (max 200 chars). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| status | string | New status (see tool description). |
| refundTx | string | Refund tx hash on Base, 0x + 64 hex. |
| receiptId | string | Receipt id str_… (or use ref). |
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "Your order / request id (idempotency key)."
},
"note": {
"type": "string",
"description": "Free-text note (max 200 chars)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"status": {
"type": "string",
"description": "New status (see tool description)."
},
"refundTx": {
"type": "string",
"description": "Refund tx hash on Base, 0x + 64 hex."
},
"receiptId": {
"type": "string",
"description": "Receipt id str_… (or use ref)."
}
}
}Idempotency gate: claim an EIP-3009 authorization (payer+nonce) before settling. claimed:false means duplicate — do not settle again. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| asset | string | Token contract, default Base USDC. |
| nonce | string | EIP-3009 authorization nonce, 0x + 64 hex. |
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| network | string | CAIP-2 network, default eip155:8453 (Base). |
| paymentPayload | string | The x402 PAYMENT-SIGNATURE / X-PAYMENT payload (base64 JSON or object). |
{
"type": "object",
"properties": {
"asset": {
"type": "string",
"description": "Token contract, default Base USDC."
},
"nonce": {
"type": "string",
"description": "EIP-3009 authorization nonce, 0x + 64 hex."
},
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"network": {
"type": "string",
"description": "CAIP-2 network, default eip155:8453 (Base)."
},
"paymentPayload": {
"type": "string",
"description": "The x402 PAYMENT-SIGNATURE / X-PAYMENT payload (base64 JSON or object)."
}
}
}Mark a claimed authorization settled or failed (failed allows a retry). Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| tx | string | Settlement tx hash on Base, 0x + 64 hex. |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| gateId | string | Gate id from settle_gate_claim. |
| status | string | New status (see tool description). |
{
"type": "object",
"properties": {
"tx": {
"type": "string",
"description": "Settlement tx hash on Base, 0x + 64 hex."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"gateId": {
"type": "string",
"description": "Gate id from settle_gate_claim."
},
"status": {
"type": "string",
"description": "New status (see tool description)."
}
}
}Show remaining calls/expiry of your MoneyTools Settle key. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
{
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
}
}
}Paid, read-only, no arguments: x402 settlement health report for Base USDC — Base RPC head/latency, PayAI facilitator reachability, settlement-watch outcomes (24h); with a key also your receipts/open watches/caps/spend. $0.001 USDC per call via x402 over MCP (unpaid call returns PaymentRequired; retry with params._meta["x402/payment"]), or 1 call of your Settle key (apiKey).
| Argument | Type | Description |
|---|---|---|
| apiKey | string | Optional Settle key mts_… (pays with 1 call instead of x402). |
{
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "Optional Settle key mts_… (pays with 1 call instead of x402)."
}
}
}How to buy MoneyTools Settle (1 USDC / 30 days incl. 1,000 calls, x402 on Base USDC) or get a free trial key. Read-only pricing and upgrade instructions.
No arguments.
{
"type": "object",
"properties": {}
}Get a free MoneyTools Settle trial key right now (50 calls, 7 days, 1 per client per day; bucketed by IPv6 /64 or CF-Worker zone) with ready-to-run first calls. Pass the returned apiKey as the apiKey argument of any tool.
No arguments.
{
"type": "object",
"properties": {}
}Verify an x402 settlement on Base USDC right now (by tx hash, or payer+nonce / paymentPayload via USDC.authorizationState). Returns settled|failed|pending|not_settled|expired|unknown. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| tx | string | Settlement tx hash on Base, 0x + 64 hex. |
| nonce | string | EIP-3009 authorization nonce, 0x + 64 hex. |
| payTo | string | Seller receiving address 0x…. |
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| amount | string | Expected amount in USDC atomic units (6 decimals), e.g. "10000" = 0.01 USDC. |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| validBefore | number | Authorization validBefore (unix seconds). |
| paymentPayload | string | The x402 PAYMENT-SIGNATURE / X-PAYMENT payload (base64 JSON or object). |
Watch a timed-out/unknown x402 settlement: re-checked on-chain for up to 24h; POSTs your webhook when it becomes settled/failed/expired. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| tx | string | Settlement tx hash on Base, 0x + 64 hex. |
| nonce | string | EIP-3009 authorization nonce, 0x + 64 hex. |
| payTo | string | Seller receiving address 0x…. |
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| amount | string | Expected amount in USDC atomic units (6 decimals), e.g. "10000" = 0.01 USDC. |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| webhook | string | Public https URL we POST to when the status resolves. |
| validBefore | number | Authorization validBefore (unix seconds). |
| paymentPayload | string | The x402 PAYMENT-SIGNATURE / X-PAYMENT payload (base64 JSON or object). |
Status of a settlement watch. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| watchId | string | Watch id stw_… from settle_watch. |
{
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"watchId": {
"type": "string",
"description": "Watch id stw_… from settle_watch."
}
}
}Read the spend caps of a payer address plus what it spent in the last 24h (and in a session). Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| sessionId | string | Your session / run id. |
{
"type": "object",
"properties": {
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"sessionId": {
"type": "string",
"description": "Your session / run id."
}
}
}Agent spend caps: set per-call / per-day (rolling 24h) / per-session USD limits and optional allow-lists (payTo, hosts, networks) for a payer wallet address (replaces the previous policy for that payer). Optional ownerLock secret so the agent cannot loosen the caps later. Advisory and non-custodial. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| ownerLock | string | Owner secret (>=12 chars); once set, caps can only be loosened with it. |
| perDayUsd | string | Max USD per rolling 24h. |
| allowHosts | array | Allowed seller hostnames. |
| allowPayTo | array | Allowed seller payTo addresses. |
| perCallUsd | string | Max USD per single payment, e.g. "0.10". |
| allowNetworks | array | Allowed CAIP-2 networks. |
Pre-payment check before signing an x402 payment: 'would this payment exceed my cap?'. Pass the 402 PAYMENT-REQUIRED (header or body) or amountUsd, plus payer and optional sessionId/host. Returns allow|deny with reasons and remaining budget; reserve:true also logs it as pending. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| ref | string | Your order / request id (idempotency key). |
| host | string | Seller hostname, e.g. api.example.com. |
| payTo | string | Seller receiving address 0x…. |
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| network | string | CAIP-2 network, default eip155:8453 (Base). |
| reserve | boolean | true = log this payment as pending if allowed. |
| amountUsd | string | USD amount as decimal string, e.g. "0.25". |
| sessionId |
Spend log / receipts for a payer address: totals (settled, pending, refunded), top sellers and the latest receipts over the last N days (1-31). Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| days | number | Look-back window in days (1-31). |
| limit | number | Max receipts returned. |
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| sessionId | string | Your session / run id. |
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Look-back window in days (1-31)."
},
"limit": {
"type": "number",
"description": "Max receipts returned."
},
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"sessionId": {
"type": "string",
"description": "Your session / run id."
}
}
}Record an x402 payment the agent made (or update a reserved one by spendId/ref): status settled|failed|pending|refunded, tx; verify:true checks a Base tx on-chain (read-only). Builds the spend log / receipts. Needs a key mts_ (X-API-Key header or apiKey argument). No key? call settle_trial_key (free, 50 calls/7 days). Full plan 1 USDC/30d incl. 1,000 calls via x402.
| Argument | Type | Description |
|---|---|---|
| tx | string | Settlement tx hash on Base, 0x + 64 hex. |
| ref | string | Your order / request id (idempotency key). |
| host | string | Seller hostname, e.g. api.example.com. |
| note | string | Free-text note (max 200 chars). |
| payTo | string | Seller receiving address 0x…. |
| payer | string | Payer / agent wallet address 0x… (40 hex). |
| apiKey | string | Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key. |
| status | string | New status (see tool description). |
| verify | boolean | true = verify tx on Base (read-only). |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
{
"type": "object",
"properties": {
"tx": {
"type": "string",
"description": "Settlement tx hash on Base, 0x + 64 hex."
},
"nonce": {
"type": "string",
"description": "EIP-3009 authorization nonce, 0x + 64 hex."
},
"payTo": {
"type": "string",
"description": "Seller receiving address 0x…."
},
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"amount": {
"type": "string",
"description": "Expected amount in USDC atomic units (6 decimals), e.g. \"10000\" = 0.01 USDC."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"validBefore": {
"type": "number",
"description": "Authorization validBefore (unix seconds)."
},
"paymentPayload": {
"type": "string",
"description": "The x402 PAYMENT-SIGNATURE / X-PAYMENT payload (base64 JSON or object)."
}
}
}{
"type": "object",
"properties": {
"tx": {
"type": "string",
"description": "Settlement tx hash on Base, 0x + 64 hex."
},
"nonce": {
"type": "string",
"description": "EIP-3009 authorization nonce, 0x + 64 hex."
},
"payTo": {
"type": "string",
"description": "Seller receiving address 0x…."
},
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"amount": {
"type": "string",
"description": "Expected amount in USDC atomic units (6 decimals), e.g. \"10000\" = 0.01 USDC."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"webhook": {
"type": "string",
"description": "Public https URL we POST to when the status resolves."
},
"validBefore": {
"type": "number",
"description": "Authorization validBefore (unix seconds)."
},
"paymentPayload": {
"type": "string",
"description": "The x402 PAYMENT-SIGNATURE / X-PAYMENT payload (base64 JSON or object)."
}
}
}| perSessionUsd |
| string |
| Max USD per sessionId. |
{
"type": "object",
"properties": {
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"ownerLock": {
"type": "string",
"description": "Owner secret (>=12 chars); once set, caps can only be loosened with it."
},
"perDayUsd": {
"type": "string",
"description": "Max USD per rolling 24h."
},
"allowHosts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Allowed seller hostnames."
},
"allowPayTo": {
"type": "array",
"items": {
"type": "string"
},
"description": "Allowed seller payTo addresses."
},
"perCallUsd": {
"type": "string",
"description": "Max USD per single payment, e.g. \"0.10\"."
},
"allowNetworks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Allowed CAIP-2 networks."
},
"perSessionUsd": {
"type": "string",
"description": "Max USD per sessionId."
}
}
}| string |
| Your session / run id. |
| paymentRequired | string | The 402 PAYMENT-REQUIRED header (base64) or the 402 JSON body. |
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "Your order / request id (idempotency key)."
},
"host": {
"type": "string",
"description": "Seller hostname, e.g. api.example.com."
},
"payTo": {
"type": "string",
"description": "Seller receiving address 0x…."
},
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"network": {
"type": "string",
"description": "CAIP-2 network, default eip155:8453 (Base)."
},
"reserve": {
"type": "boolean",
"description": "true = log this payment as pending if allowed."
},
"amountUsd": {
"type": "string",
"description": "USD amount as decimal string, e.g. \"0.25\"."
},
"sessionId": {
"type": "string",
"description": "Your session / run id."
},
"paymentRequired": {
"type": "string",
"description": "The 402 PAYMENT-REQUIRED header (base64) or the 402 JSON body."
}
}
}| network | string | CAIP-2 network, default eip155:8453 (Base). |
| spendId | string | Spend id sp_… from spend_check reserve. |
| amountUsd | string | USD amount as decimal string, e.g. "0.25". |
| sessionId | string | Your session / run id. |
| paymentRequired | string | The 402 PAYMENT-REQUIRED header (base64) or the 402 JSON body. |
{
"type": "object",
"properties": {
"tx": {
"type": "string",
"description": "Settlement tx hash on Base, 0x + 64 hex."
},
"ref": {
"type": "string",
"description": "Your order / request id (idempotency key)."
},
"host": {
"type": "string",
"description": "Seller hostname, e.g. api.example.com."
},
"note": {
"type": "string",
"description": "Free-text note (max 200 chars)."
},
"payTo": {
"type": "string",
"description": "Seller receiving address 0x…."
},
"payer": {
"type": "string",
"description": "Payer / agent wallet address 0x… (40 hex)."
},
"apiKey": {
"type": "string",
"description": "Your MoneyTools Settle key mts_… (alternative to the X-API-Key header). No key: call settle_trial_key."
},
"status": {
"type": "string",
"description": "New status (see tool description)."
},
"verify": {
"type": "boolean",
"description": "true = verify tx on Base (read-only)."
},
"network": {
"type": "string",
"description": "CAIP-2 network, default eip155:8453 (Base)."
},
"spendId": {
"type": "string",
"description": "Spend id sp_… from spend_check reserve."
},
"amountUsd": {
"type": "string",
"description": "USD amount as decimal string, e.g. \"0.25\"."
},
"sessionId": {
"type": "string",
"description": "Your session / run id."
},
"paymentRequired": {
"type": "string",
"description": "The 402 PAYMENT-REQUIRED header (base64) or the 402 JSON body."
}
}
}