Skip to main content
Glama

Agent Spend Guard — owner-set purchasing guardrails

Server Details

Free spend guardrails for AI agents: approve/deny/ask_user, caps, dupes.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool maps to a distinct lifecycle stage: pre-purchase checking, post-purchase recording, reporting, and rule configuration. The check and record tools are clearly separated by before/after semantics and linked via check_id/tx_ref, leaving no realistic confusion.

Naming Consistency4/5

All tools share the spend_guard_ prefix and mostly follow a verb_noun snake_case pattern: check_purchase, record_purchase, set_rules. The single exception is spend_guard_report, which drops an explicit object, creating a minor but noticeable inconsistency.

Tool Count5/5

Four tools cleanly cover the guardrail workflow: configure rules, check purchases, record purchases, and report on spend. Each tool has a clear purpose and none are redundant, making the count well-scoped for the server's purpose.

Completeness5/5

The tool surface covers the full expected lifecycle of purchasing guardrails: rule management, pre-purchase evaluation, post-purchase recording with idempotency, and monthly reporting. The set_rules full-declaration approach handles clearing rules, and report includes current rules, so there are no obvious dead ends or critical missing operations.

Available Tools

4 tools
spend_guard_check_purchaseAInspect

Humans: sign up with your email at https://a2awire.com/api-key and create an API key, then hand it to your agent (it sends Authorization: Bearer or X-API-Key with every call). Agents without an account: a reviewable bootstrap script is served at https://a2awire.com/api/v1/connectors/spend-guard/bootstrap.sh (download it, read it, then run it to mint a key). Call BEFORE checkout. Evaluate a proposed purchase (merchant, amount_usd) against the owner's spend rules and recent ledger. Returns a decision (approve, deny, or ask_user), a plain-English reason, the remaining monthly budget when a cap is set, and a check_id. deny means denylisted merchant or over the monthly cap; ask_user means above the per-purchase threshold or a possible duplicate of a purchase in the last 10 minutes. Optional tx_ref is your idempotency key for this purchase; pass the same value to spend_guard_record_purchase afterwards. Appends a check event; checks never consume budget. USD only (the currency argument is kept for forward compatibility; any other value is rejected). Not guest-callable. REST: POST /api/v1/spend-guard/check.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_refNoOptional idempotency key for this purchase; pass the same value to the record call afterwards. Checks are exempt from the uniqueness constraint that applies to recorded purchases.
categoryNo
currencyNoUSD only. Kept for forward compatibility; any other value is rejected.USD
merchantYes
amount_usdYes
descriptionNo

TDQS

A4.4/5.0
Behavior5/5

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

The description adds meaningful behavior beyond the annotations: it appends a check event, never consumes budget, defines deny and ask_user semantics, states USD-only rejection, and describes authentication requirements. This is rich, non-obvious context that helps an agent reason about side effects.

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

Conciseness4/5

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

The description is dense but well organized: key operational guidance like 'Call BEFORE checkout' is placed early, followed by return values and behavioral rules. Some facts repeat the schema text, but almost every sentence adds operational value.

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

Completeness5/5

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

With no output schema, the description adequately explains what the tool returns: decision, plain-English reason, remaining monthly budget when applicable, and check_id. It also covers auth, REST endpoint, idempotency linkage, and restrictions, giving an agent enough to call it 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 only 33%, but the description adds value for merchant, amount_usd, tx_ref, and currency. However, category and description parameters are left undocumented in both schema and prose, so the description only partially compensates for the low coverage.

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 uses a specific verb and resource: 'Evaluate a proposed purchase (merchant, amount_usd) against the owner's spend rules and recent ledger.' It also clearly differentiates this from sibling tools by describing the decision output and the later call to spend_guard_record_purchase.

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 explicitly says 'Call BEFORE checkout' and clarifies the check-to-record flow with tx_ref. It also notes the tool is not guest-callable. It does not explicitly enumerate when to avoid report or set_rules, but the timing and purpose make the usage context clear.

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

spend_guard_record_purchaseA
Idempotent
Inspect

Humans: sign up with your email at https://a2awire.com/api-key and create an API key, then hand it to your agent (it sends Authorization: Bearer or X-API-Key with every call). Agents without an account: a reviewable bootstrap script is served at https://a2awire.com/api/v1/connectors/spend-guard/bootstrap.sh (download it, read it, then run it to mint a key). Call AFTER checkout. Record a completed purchase in the owner's spend ledger. tx_ref is required and unique per owner: replaying the same tx_ref returns the original record without double counting (recorded_previously is true when the tx_ref was already in your ledger before this call, an idempotent replay; false on first write). Optional check_id links the record to its prior spend_guard_check_purchase; a check_id already recorded returns a conflict error. Returns the recorded event and the month-to-date total. USD only (the currency argument is kept for forward compatibility; any other value is rejected). Not guest-callable. REST: POST /api/v1/spend-guard/record.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_refYesCaller idempotency key, unique across your recorded purchases; replays return the original record.
categoryNo
check_idNoOptional id from spend_guard_check_purchase; at most one record may consume each check.
currencyNoUSD only. Kept for forward compatibility; any other value is rejected.USD
merchantYes
amount_usdYes
descriptionNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only provide idempotentHint=true, but the description adds extensive behavioral detail: idempotent replay semantics with recorded_previously, conflict error for used check_id, currency rejection, authentication requirements, return of recorded event and month-to-date total, and REST endpoint. This far exceeds what annotations convey and is essential for correct usage.

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?

The description is long but every sentence adds value. It front-loads authentication requirements and timing, then core function, idempotency, optional linking, return value, currency constraint, and REST endpoint. The structure is logical and no filler is present.

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

Completeness5/5

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

For a tool with 7 parameters and no output schema, the description is thorough: it covers authentication, when to call, idempotency, optional link conflicts, currency restriction, return values, and the REST path. An agent has all necessary information to call it correctly without external docs.

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

Parameters4/5

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

Schema description coverage is only 43%, but the tool description compensates by explaining the critical parameters: tx_ref uniqueness and idempotency, check_id linking behavior, and currency restriction. The schema also provides descriptions for tx_ref, check_id, and currency, and the description reinforces them. Parameters like merchant and amount_usd lack individual description but their purpose is self-evident from the schema constraints.

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 states a specific verb ('record'), a resource ('completed purchase in the owner's spend ledger'), and a clear temporal constraint ('Call AFTER checkout'). It is unambiguous and naturally distinguishes from sibling tools by its role in the purchase flow, even without naming them.

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 explicitly says 'Call AFTER checkout' and mentions linking to 'prior spend_guard_check_purchase', which implies the sequencing versus the check tool. It also notes 'Not guest-callable' as a precondition. It does not explicitly name alternatives for when not to use, but the flow context is sufficient.

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

spend_guard_reportA
Read-onlyIdempotent
Inspect

Humans: sign up with your email at https://a2awire.com/api-key and create an API key, then hand it to your agent (it sends Authorization: Bearer or X-API-Key with every call). Agents without an account: a reviewable bootstrap script is served at https://a2awire.com/api/v1/connectors/spend-guard/bootstrap.sh (download it, read it, then run it to mint a key). Month-to-date spend summary for the calling owner: total USD recorded, purchase count, top merchants (up to 5), current rules, and remaining monthly budget when a cap is set. Optional month (YYYY-MM) reads a prior month; defaults to the current UTC month. Not guest-callable. REST: GET /api/v1/spend-guard/report.

ParametersJSON Schema
NameRequiredDescriptionDefault
monthNoOptional month filter (YYYY-MM); defaults to the current UTC month.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful value beyond those: the authentication requirement (Authorization: Bearer or X-API-Key header, key minted via the bootstrap script), the guest-call restriction, and the month defaulting to current UTC. No contradiction with the annotations exists.

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

Conciseness3/5

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

The core purpose sentence is well-structured and informative, but the two opening sentences about API-key onboarding (sign-up URL, header format, bootstrap script) are verbose and tangential to the tool's core function. They earn their place as needed auth context, but could be tightened. The purpose is front-loaded after the auth preamble.

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

Completeness5/5

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

For a simple read-only report with one optional parameter and no output schema, the description is thorough: it conveys the full return content, month default behavior, the REST endpoint, and the auth requirement. Nothing an agent needs to call it correctly is missing.

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 coverage is 100% — the month parameter is already documented in the schema as "Optional month filter (YYYY-MM); defaults to the current UTC month." The description adds only marginal clarity by noting a prior month can be read, which mostly restates the schema. Per the baseline rule, 3 is appropriate since the schema does the heavy lifting.

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 states a precise verb+resource: "Month-to-date spend summary for the calling owner" and enumerates the exact return fields (total USD, purchase count, top merchants, current rules, remaining budget). This clearly differentiates it from its siblings spend_guard_record_purchase (a write), spend_guard_set_rules (configuration), and spend_guard_check_purchase (a single-purchase check). An agent can tell this is the read-only aggregate report tool.

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 usage context: it is a month-to-date summary, the month parameter reads a prior month, and it defaults to the current UTC month. It also states it is "Not guest-callable" and requires an API key, which guides when the tool can be used. It does not explicitly name sibling alternatives and when to choose them, but the report-vs-action distinction is evident from the content.

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

spend_guard_set_rulesA
Idempotent
Inspect

Humans: sign up with your email at https://a2awire.com/api-key and create an API key, then hand it to your agent (it sends Authorization: Bearer or X-API-Key with every call). Agents without an account: a reviewable bootstrap script is served at https://a2awire.com/api/v1/connectors/spend-guard/bootstrap.sh (download it, read it, then run it to mint a key). Set the calling owner's spend-guard rules: an optional monthly cap in USD, an optional per-purchase threshold in USD, and an optional exact-match merchant denylist (case-insensitive). Full declaration: omit or null a field to clear that rule. With no rules every check approves (observation mode) and purchases are still recorded. Returns the effective rules. Not guest-callable. REST: PUT /api/v1/spend-guard/rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
monthly_cap_usdNoCumulative recorded spend per UTC calendar month at or above which checks deny. Null clears the cap.
merchant_denylistNoExact-match merchant names (case-insensitive) whose purchases are denied, up to 100 entries. Null clears the list.
per_purchase_threshold_usdNoA single purchase strictly above this amount asks the user first. Null clears the threshold.

TDQS

A4.1/5.0
Behavior4/5

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

Beyond annotations (idempotent, non-destructive, readOnlyHint=false), the description adds critical behavioral details: authentication requirement (not guest-callable), the clearing semantics (omit/null clears a rule), the observation-mode default when no rules exist, and the return value (effective rules). This goes beyond what annotations provide.

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

Conciseness4/5

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

The description is relatively long but every sentence earns its place: it includes auth setup, rule specifics, clearing behavior, default mode, return value, and the REST endpoint. The opening sentence focuses on human sign-up, which is important for authentication but delays the primary purpose; still, it is well-structured and not redundant.

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

Completeness4/5

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

Given the tool's complexity (multiple optional rules, clearing, observation mode, auth, no output schema), the description is comprehensive. It covers what the tool does, how to invoke it (REST method), the authentication prerequisite, the behavior of each rule, and the return. The only minor gap is a more explicit return format, but 'Returns the effective rules' suffices for an agent.

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 100% and each parameter already has a detailed description (maximum, exclusiveMinimum, null-clearing semantics). The tool description restates the rule names but does not add new meaning to the parameters themselves; the schema carries the full burden, so the baseline of 3 applies.

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 clearly states the verb (set), the resource (the calling owner's spend-guard rules), and the specific rule types (monthly cap, per-purchase threshold, merchant denylist). It distinguishes this from siblings by naming the operation (set rules) versus check, record, and report.

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 provides clear context for when to use this tool: to configure rules for the authenticated owner. It explains the clearing behavior and the observation-mode default, but does not explicitly compare to sibling tools. The distinction is implicit given the operation names.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • First observedspend_guard_check_purchase
    • First observedspend_guard_record_purchase
    • First observedspend_guard_report
    • First observedspend_guard_set_rules

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables human-in-the-loop authorization for AI agent transactions, allowing real-time approval or denial of purchases based on configurable spending limits, vendor blocklists, daily caps, and category restrictions.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A wallet and guardrail for AI agents, enabling spending limits, payment approvals, and real-time ledger tracking via memory or Stripe backends.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources