Skip to main content
Glama

SpendGuard policy check

spendguard_evaluate
Read-onlyIdempotent

Free. Check a proposed Base USDC payment against a spending policy you supply (per-transaction limit, daily budget, human-approval threshold, allowed recipients) before money moves. Returns APPROVE, HUMAN_APPROVAL or BLOCK with findings. Advisory only: it never signs, holds keys or moves funds.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "agentId": "<agentId>",
      "requestId": "<requestId>",
      "chain": "<chain>",
      "asset": "<asset>",
      "recipient": "<recipient>",
      "amount": "<amount>",
      "policy": "<policy>"
    },
    "name": "spendguard_evaluate"
  }
}

Input Schema

NameRequiredDescriptionDefault
assetYes
chainYes
amountYes
policyYes
agentIdYes
contextNo
recipientYes
requestIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real value beyond them: it is free, it never signs, holds keys, or moves funds, and it names the three outcome verdicts APPROVE, HUMAN_APPROVAL, BLOCK. That said, it does not say how findings are structured, whether verdicts are deterministic across repeated calls, or what 'HUMAN_APPROVAL' obligates the caller to do next.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with cost ('Free.') then the check, then the return values and the safety caveat. No filler, and the most decision-relevant facts come first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Naming the return verdicts is essential since there is no output schema, and it is done well. But with nested objects and zero schema coverage, the description leaves the context object's semantics (repeat detection, upstream agent-proof decision) and the string format/units of amount and policy limits unexplained, which an agent needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 8 parameters including a nested 6-field policy object, so the description must compensate. It explains four policy fields (per-transaction limit, daily budget, human-approval threshold, allowed recipients) but omits maxRepeats and blockUnknownRecipients, and says nothing about agentId, requestId, or the context object's repeatCount and agentProofDecision — meaningful gaps for an 8-param call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check a proposed Base USDC payment against a spending policy') and adds the ordering context 'before money moves'. It is clearly a spend-policy evaluation rather than a payment verifier or token risk scan, but it never names how it differs from the close sibling verify_payment, so the differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'...before money moves' implies the pre-execution moment to call it, and 'Advisory only' tells the agent it cannot itself settle a payment. However, no explicit when-not conditions or alternative sibling tools (preflight, quick_check, verify_payment) are named, so routing is only weakly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources