Skip to main content
Glama

Agent Decision & Evidence Tools (MCP + x402)

Agent spend transfer evidence

agent_spend_statement
Read-only

Create a complete Base USDC outflow and transfer record for an agent wallet: every observed transfer, recipient, transaction reference and dated ECB EUR conversion, available as JSON or CSV. Transfers remain explicitly unclassified until invoice, supplier identity and supply type are linked; this tool does not assign VAT, reverse-charge or deductible-expense treatment by itself.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNo
formatNojson
walletYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
csvNo
daysNo
gapsNo
noteNo
toolNo
errorNo
formatNo
payeesNo
periodNo
walletNo
chargedNoWhen present on an error, false means the failed result is uncharged.
messageNo
missingNo
receiptNo
settledNoWhen present on an error, false means no settlement occurred.
sourcesNo
unknownNo
acceptedNo
completeNo
paymentsNo
retryableNo
total_eurNo
total_usdNo
truncatedNo
disclaimerNo
error_codeNo
extensionsNo
media_typeNo
status_codeNo
did_you_meanNo
generated_atNo
payment_countNo
classificationNo
missing_checksNo
vat_assessmentNo
partial_evidenceNo
transaction_semanticsNo
outgoing_transfer_countNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / days / maximum
      Added value: +3650
    • addedInput schema / properties / days / minimum
      Added value: +1
    • removedInput schema / properties / days / title
      Removed value: -"Days"
    • addedInput schema / properties / format / enum
      Added value: +[
      +  "json",
      +  "csv"
      +]
    • removedInput schema / properties / format / title
      Removed value: -"Format"
    • removedInput schema / properties / wallet / title
      Removed value: -"Wallet"
    • removedInput schema / title
      Removed value: -"agent_spend_toolArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "anyOf": [
      +    {
      +      "required": [
      +        "wallet",
      +        "period",
      +        "payment_count",
      +        "outgoing_transfer_count",
      +        "complete",
      +        "gaps",
      +        "total_usd",
      +        "total_eur",
      +        "payees",
      +        "payments",
      +        "truncated",
      +        "vat_assessment",
      +        "sources",
      +        "generated_at",
      +        "disclaimer",
      +        "receipt",
      +        "extensions"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "format",
      +        "media_type",
      +        "csv",
      +        "wallet",
      +        "days",
      +        "classification",
      +        "note",
      +        "receipt",
      +        "extensions"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "error"
      +      ]
      +    }
      +  ],
      +  "description": "Structured result contract for agent_spend_statement. A success satisfies the documented success branch. A domain or tool error includes error and is not a successful settlement; unpaid x402 requirements are carried by the transport wrapper.",
      +  "properties": {
      +    "accepted": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "charged": {
      +      "description": "When present on an error, false means the failed result is uncharged.",
      +      "type": "boolean"
      +    },
      +    "classification": {
      +      "type": "string"
      +    },
      +    "complete": {
      +      "type": "boolean"
      +    },
      +    "csv": {
      +      "type": "string"
      +    },
      +    "days": {
      +      "type": "integer"
      +    },
      +    "did_you_mean": {
      +      "additionalProperties": true,
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "disclaimer": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "oneOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "additionalProperties": true,
      +          "properties": {
      +            "code": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "message": {
      +              "type": "string"
      +            },
      +            "param": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "type": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "message"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "error_code": {
      +      "type": "string"
      +    },
      +    "extensions": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "delivery-receipt": {
      +          "additionalProperties": true,
      +          "properties": {
      +            "how_to_verify": {
      +              "type": "string"
      +            },
      +            "issued_at": {
      +              "format": "date-time",
      +              "type": "string"
      +            },
      +            "issuer": {
      +              "type": "string"
      +            },
      +            "issuer_key": {
      +              "type": "string"
      +            },
      +            "key_id": {
      +              "type": "string"
      +            },
      +            "result_hash": {
      +              "type": "string"
      +            },
      +            "service": {
      +              "type": "string"
      +            },
      +            "signature": {
      +              "type": "string"
      +            },
      +            "signed_message": {
      +              "type": "string"
      +            },
      +            "standard": {
      +              "const": "eucompliance-receipt/2",
      +              "type": "string"
      +            },
      +            "subject": {
      +              "type": "string"
      +            },
      +            "valid_until": {
      +              "format": "date-time",
      +              "type": "string"
      +            },
      +            "verify_url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "standard",
      +            "service",
      +            "subject",
      +            "result_hash",
      +            "issued_at",
      +            "valid_until",
      +            "issuer",
      +            "issuer_key",
      +            "key_id",
      +            "verify_url",
      +            "how_to_verify",
      +            "signature",
      +            "signed_message"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "delivery-receipt"
      +      ],
      +      "type": "object"
      +    },
      +    "format": {
      +      "type": "string"
      +    },
      +    "gaps": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "generated_at": {
      +      "type": "string"
      +    },
      +    "media_type": {
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "missing": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "missing_checks": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "outgoing_transfer_count": {
      +      "type": "integer"
      +    },
      +    "partial_evidence": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "payees": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "payment_count": {
      +      "type": "integer"
      +    },
      +    "payments": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "period": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "receipt": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "how_to_verify": {
      +          "type": "string"
      +        },
      +        "issued_at": {
      +          "format": "date-time",
      +          "type": "string"
      +        },
      +        "issuer": {
      +          "type": "string"
      +        },
      +        "issuer_key": {
      +          "type": "string"
      +        },
      +        "key_id": {
      +          "type": "string"
      +        },
      +        "result_hash": {
      +          "type": "string"
      +        },
      +        "service": {
      +          "type": "string"
      +        },
      +        "signature": {
      +          "type": "string"
      +        },
      +        "signed_message": {
      +          "type": "string"
      +        },
      +        "standard": {
      +          "const": "eucompliance-receipt/2",
      +          "type": "string"
      +        },
      +        "subject": {
      +          "type": "string"
      +        },
      +        "valid_until": {
      +          "format": "date-time",
      +          "type": "string"
      +        },
      +        "verify_url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "standard",
      +        "service",
      +        "subject",
      +        "result_hash",
      +        "issued_at",
      +        "valid_until",
      +        "issuer",
      +        "issuer_key",
      +        "key_id",
      +        "verify_url",
      +        "how_to_verify",
      +        "signature",
      +        "signed_message"
      +      ],
      +      "type": "object"
      +    },
      +    "retryable": {
      +      "type": "boolean"
      +    },
      +    "settled": {
      +      "description": "When present on an error, false means no settlement occurred.",
      +      "type": "boolean"
      +    },
      +    "sources": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "status_code": {
      +      "type": "integer"
      +    },
      +    "tool": {
      +      "type": "string"
      +    },
      +    "total_eur": {
      +      "type": "number"
      +    },
      +    "total_usd": {
      +      "type": "number"
      +    },
      +    "transaction_semantics": {
      +      "type": "string"
      +    },
      +    "truncated": {
      +      "type": "boolean"
      +    },
      +    "unknown": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "vat_assessment": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "wallet": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish a read-only, non-destructive operation; the description adds valuable context that transfers are reported unclassified and no tax treatment is applied, so an agent knows the statement is evidence rather than a compliance conclusion. The verb 'Create' could be misread as a write operation, but the rest of the description makes clear it is generating a report artifact, so there is no true contradiction with readOnlyHint.

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?

Two sentences front-load the deliverable and its contents, then add the essential boundary condition about unclassified transfers and tax treatment. Every clause carries information, with no filler, repetition, or restating of annotations.

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?

The description covers output content, available formats, and the classification boundary, and an output schema exists to document return structure. However, the missing semantics for the days parameter create a real ambiguity about the time window, which is important for an agent deciding whether this tool meets a request for a specific period.

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

Parameters2/5

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

Schema description coverage is 0%, so the description bears the burden of explaining parameters. It partially compensates by identifying the wallet as an agent wallet and mentioning JSON/CSV output, but it never explains the days parameter, its default of 30, or its maximum of 3650. The phrase 'complete ... record' may even mislead an agent into expecting all history rather than a configurable window.

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

Purpose5/5

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

The description names a specific deliverable: a complete Base USDC outflow and transfer record for an agent wallet, enumerating contents (transfers, recipients, transaction references, dated ECB EUR conversion) and formats (JSON or CSV). It clearly differentiates this from sibling tools like wallet_balance or tx_status, which cover balances or individual transactions.

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

Usage Guidelines4/5

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

The description gives clear context for when to use it—compiling spend evidence for an agent wallet—and explicitly states it does not assign VAT, reverse-charge, or deductible-expense treatment, which is a useful when-not. It does not name sibling alternatives, but the coverage and boundary conditions make the intended use fairly unambiguous.

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.