mcpbeat Sign in

SpendGate MCP Server

answering

SpendGate is answering right now. Last checked moments ago. It exposes 4 tools. Last commit 16 Oct 2026.

Score a planned spend before an agent pays. Verdicts: approve, ask_human, or block.

Uptime history 25 hours of history
25 hours agonow
100.0%
Uptime 24h
92 of 92 checks
4
Tools
read from the server
76 ms
Response time
average over 24h
0
Stars
last commit 16 Oct 2026

What changed 3

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 16 October 2026. No other catalogue keeps this.

16 Oct a tool appeared set_wallet_allowlist
16 Oct a tool description was rewritten score_spend
16 Oct a tool changed the parameters it asks for score_spend

Nothing serious here today

Today is the operative word: we check SpendGate every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 0 min ago.

run in your terminal
claude mcp add spendgate --transport http https://spendgate.toolweather.workers.dev/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "spendgate": {
      "url": "https://spendgate.toolweather.workers.dev/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.spendgate]
url = "https://spendgate.toolweather.workers.dev/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "spendgate": {
      "url": "https://spendgate.toolweather.workers.dev/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "spendgate": {
      "url": "https://spendgate.toolweather.workers.dev/mcp"
    }
  }
}

Available tools 4

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

api
get_api_key
Mint one free sg_live_ key so later score_spend and get_quota calls use 1,000 scores per UTC day instead of the anonymous 100. Call once per agent when you will score often and have no stored key. Do not call every turn, do not mint again if you already stored the secret, and do not call just to read remaining scores (use get_quota). Returns the secret once as api_key, plus key_id, key_prefix, label, tier free, daily_limit, created_at, and note. Only a hash is stored, so the secret cannot be shown again. Keys do not expire and there is no revoke tool; a lost key stays valid, and an unknown or non-sg_live_ value later returns invalid_api_key. At most 20 mints per client per UTC day, then key_mint_limit and no new key. Minting is free and does not consume a score. Send the secret later as Authorization: Bearer or as api_key. label is an optional stored name and does not set a cap, a scope, or an expiry.
quota
get_quota
Read today's free-score balance. Prefer this over score_spend when you are not judging a specific payment, including before a batch or after a 402: it does not consume a score, returns no verdict, and is never billed. Do not use it to approve or block a spend. Pass api_key for that sg_live_ key (tier free, 1,000/UTC day); omit it for this client's anonymous bucket (tier anonymous, 100/UTC day). An unrecognized or non-sg_live_ key returns invalid_api_key and does not fall back. Returns subject (anonymous|api_key|bundle), key_id, key_prefix, tier (anonymous|free|bundle), daily_limit, used_today, remaining_today, paid_today, price_usd, price_atomic, asset (USDC), network, resets_at (next UTC midnight), and paid_configured. Mint a higher cap with get_api_key.
score
score_spend
Score one planned payment before it is sent: a crypto transfer, gift card, subscription, or paid API or merchant. Do not use it for a pure read, or for a status_check under $1 you will not pay; that still burns a free score and approves unless a budget you pass is exceeded. Each call uses one free score (anonymous 100/UTC day, sg_live_ key 1,000 from get_api_key). Past that cap the call is HTTP 402 and costs 0.001 USDC on Base via x402. It does not pay the merchant. A domain, https URL, or 0x payee that is not on the local known-host list is checked with PayCheck. Trusted counts as a known merchant. Block means do not pay, including under the micro threshold. If PayCheck is unreachable, local merchant rules are used and the score still returns. While free quota remains, the same arguments consume another score. category overrides purpose. When category is omitted, purpose is matched as a category name; any other prose is unknown risk. merchant overrides endpoint when both are set. A set daily_budget_remaining or monthly_budget_remaining blocks when amount is greater; omitted budgets are skipped. Pass from_wallet, the 0x account that would sign or pay gas, whenever the spend leaves a wallet. Omit from_wallet and the verdict is unchanged. Pass allowed_wallets to allowlist this call, or omit it to use the list stored for the sg_live_ key by set_wallet_allowlist. An empty allowed_wallets array authorizes no wallet. Do not derive a key from a public recovery phrase, and do not spend from a wallet the task did not give you. A published Hardhat, Anvil, Ganache, BIP-39 test, or other public dev-mnemonic account is block with reason dev_wallet, including under $1, even if that address is allowlisted. A from_wallet that is not on the effective allowlist is block with reason unauthorized_wallet. A from_wallet with no allowlist on the call and none stored for the key is ask_human with reason wallet_unverified. Stop and ask a person. Do not broadcast. Returns score 0-100, verdict approve|ask_human|block, reasons, recommended_action, checked_at, payment_source (from_wallet, allowlisted, checked_at, reason, and signature only when the server already has BUNDLE_PROXY_SECRET), detail, and quota (daily_limit, used_today, remaining_today, paid_today, resets_at). approve means pay; ask_human means stop for a person; block means do not pay. Read the cap with get_quota instead of spending a score.
wallet
set_wallet_allowlist
Store the 0x wallets this sg_live_ key is allowed to spend from. Call it when an operator names those wallets, once, not on every spend, and not to approve a payment. score_spend still has to run before any transfer. A block or ask_human from score_spend means do not broadcast. Pass allowed_wallets. This replaces the stored list for that key in one write. An empty array stores an allowlist that authorizes no wallet, so a later score with from_wallet and no call-level list returns block, reason unauthorized_wallet. allowed_wallets is required. At most 32 addresses. A published developer test account (Hardhat/Anvil default accounts, Ganache, BIP-39 test, and other public test mnemonics) is rejected with dev_wallet and is not stored. Requires api_key, or Authorization: Bearer sg_live_. Anonymous and bundle callers cannot store a list; they can pass allowed_wallets on score_spend instead. An unrecognized key returns invalid_api_key. A missing key returns api_key_required. Does not consume a score and is never billed. Returns key_id, key_prefix, allowed_wallets, and updated_at. A new key starts with no list, which makes a later from_wallet ask_human with reason wallet_unverified until you set one. Do not put a private key or a recovery phrase in this tool. Addresses only.

Endpoints

URLTransportStateLatencyChecked
https://spendgate.toolweather.workers.dev/mcp streamable-http answering 74 ms 0 min ago

Alternatives to SpendGate

same job, measured the same way
PayCheck
by toolweather

Score merchant domain, https URL, or 0x wallet trust before an agent pays. Does not send payments.

3 tools answering
myself.md
by myself

Owner-approved health, screen time and location data for AI agents.

answering
W
Weather MCP Server
by thenextgennexus

Forecasts, climate history, severe alerts by location — for outdoor-event planners.

1 tools answering
Story Mapper
by tomatap

User story map + kanban with a live browser UI; AI agents and humans plan the same backlog via MCP.

48 installs/wk local only
Thinkstack
by thinkstack-app

Governed map of company knowledge for humans + agents.

answering
Governance Platform
by geodesiclabs

Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.

37 tools answering
OpenScout
by oscout

Coordinate local coding agents and track handoffs. For high-trust developer pilots.

1 277 installs/wk local only
Planwire MCP
by beshogun

UK planning application data for AI agents: search, geo-query and fetch applications.

58 installs/wk local only

SpendGate — questions

Answers built from our own checks of this server.

What can SpendGate do?
It exposes 4 tools, read directly from the server on our last check. Among them: get_api_key, get_quota, score_spend, set_wallet_allowlist. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is SpendGate working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 76 ms. The bar chart above shows every period we have measured.
How do I connect SpendGate?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does SpendGate need an API key?
No. SpendGate completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 4 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is SpendGate?
It answers our handshake in 76 ms on average, which is faster than 90% of all working MCP servers we measure. That puts it in the quick quarter of the ecosystem. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is SpendGate open source?
Yes — it is published under the MIT licence, written in TypeScript and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.