Skip to main content
Glama

Advisory spending check

authorize_agent_spend
Read-onlyIdempotent

Compare a proposed downstream cost with caller-supplied limits and history. Advisory only: does not authenticate policy, reserve funds, issue authorization or block external API calls. Evaluation excludes this service fee. Paid: 0.10 USDC per accepted analysis, including an unfavorable advisory result. Check get_utility_service_status with service='authorize_agent_spend' and the free fixed example first. Owner-authorized x402 payment is required; tool discovery does not authorize spending.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
policyYes
historyYes
currencyYes
proposed_costYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Changed11 schema fields changed
    • addedInput schema / properties / history / properties / committed_last_hour / not
      Added value: +{
      +  "pattern": "\\n"
      +}
    • changedInput schema / properties / history / properties / committed_last_hour / pattern
      Previous value: -"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?(?![\\s\\S])"New value: +"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?$"
    • addedInput schema / properties / history / properties / pending_reserved / not
      Added value: +{
      +  "pattern": "\\n"
      +}
    • changedInput schema / properties / history / properties / pending_reserved / pattern
      Previous value: -"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?(?![\\s\\S])"New value: +"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?$"
    • addedInput schema / properties / policy / properties / max_per_hour / not
      Added value: +{
      +  "pattern": "\\n"
      +}
    • changedInput schema / properties / policy / properties / max_per_hour / pattern
      Previous value: -"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?(?![\\s\\S])"New value: +"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?$"
    • addedInput schema / properties / policy / properties / max_per_transaction / not
      Added value: +{
      +  "pattern": "\\n"
      +}
    • changedInput schema / properties / policy / properties / max_per_transaction / pattern
      Previous value: -"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?(?![\\s\\S])"New value: +"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?$"
    • addedInput schema / properties / proposed_cost / not
      Added value: +{
      +  "pattern": "\\n"
      +}
    • changedInput schema / properties / proposed_cost / pattern
      Previous value: -"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?(?![\\s\\S])"New value: +"^(?:0|[1-9][0-9]{0,8})(?:\\.[0-9]{1,6})?$"
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "contract_version": {
      -        "const": "ardaro.agent-utilities.response.v1"
      -      },
      -      "identities": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "analysis_result_identity": {
      -            "pattern": "^res_[0-9a-f]{64}(?![\\s\\S])",
      -            "type": "string"
      -          },
      -          "payment_identity": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "protocol": {
      -                "const": "x402-v2"
      -              },
      -              "reference": {
      -                "pattern": "^pay_[0-9a-f]{64}(?![\\s\\S])",
      -                "type": "string"
      -              },
      -              "replayed": {
      -                "type": "boolean"
      -              }
      -            },
      -            "required": [
      -              "protocol",
      -              "reference",
      -              "replayed"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "analysis_result_identity",
      -          "payment_identity"
      -        ],
      -        "type": "object"
      -      },
      -      "result": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "authorization_status": {
      -            "enum": [
      -              "WITHIN_SUBMITTED_LIMITS",
      -              "EXCEEDS_SUBMITTED_LIMITS",
      -              "RATE_THRESHOLD_EXCEEDED",
      -              "CURRENCY_MISMATCH"
      -            ]
      -          },
      -          "checks": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "currency_consistent": {
      -                "type": "boolean"
      -              },
      -              "hourly_within_limit": {
      -                "type": [
      -                  "boolean",
      -                  "null"
      -                ]
      -              },
      -              "rate_within_limit": {
      -                "type": "boolean"
      -              },
      -              "transaction_within_limit": {
      -                "type": [
      -                  "boolean",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "currency_consistent",
      -              "transaction_within_limit",
      -              "hourly_within_limit",
      -              "rate_within_limit"
      -            ],
      -            "type": "object"
      -          },
      -          "currency": {
      -            "enum": [
      -              "USD",
      -              "USDC"
      -            ],
      -            "type": "string"
      -          },
      -          "findings": {
      -            "items": {
      -              "enum": [
      -                "CURRENCY_MISMATCH",
      -                "TRANSACTION_LIMIT_EXCEEDED",
      -                "HOURLY_LIMIT_EXCEEDED",
      -                "RATE_THRESHOLD_EXCEEDED"
      -              ]
      -            },
      -            "maxItems": 3,
      -            "type": "array",
      -            "uniqueItems": true
      -          },
      -          "history_currency": {
      -            "enum": [
      -              "USD",
      -              "USDC"
      -            ],
      -            "type": "string"
      -          },
      -          "hourly_remaining_after_proposal": {
      -            "anyOf": [
      -              {
      -                "maxLength": 18,
      -                "minLength": 8,
      -                "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}(?![\\s\\S])",
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "policy": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "advisory_only": {
      -                "const": true
      -              },
      -              "caller_identity_authenticated": {
      -                "const": false
      -              },
      -              "checks_exclude_service_fee": {
      -                "const": true
      -              },
      -              "credentials_issued": {
      -                "const": false
      -              },
      -              "delivery_verified": {
      -                "const": false
      -              },
      -              "downstream_payment_authorized": {
      -                "const": false
      -              },
      -              "external_spend_enforced": {
      -                "const": false
      -              },
      -              "fee_scope": {
      -                "const": "The separately quoted service fee is excluded from these checks and must be budgeted separately in USDC. No USD/USDC conversion is performed."
      -              },
      -              "history_scope": {
      -                "const": "The caller supplies committed cost for its intended rolling-hour window, all unresolved pending reservations, and the count of prior checks in its intended minute. Completeness and timing are not verified."
      -              },
      -              "history_verified": {
      -                "const": false
      -              },
      -              "human_review_required": {
      -                "const": true
      -              },
      -              "ledger_updated": {
      -                "const": false
      -              },
      -              "model_calls": {
      -                "const": 0
      -              },
      -              "policy_authenticated": {
      -                "const": false
      -              },
      -              "reservation_created": {
      -                "const": false
      -              },
      -              "scope": {
      -                "const": "Compares caller-supplied downstream maximum cost with caller-supplied limits and history. A within-limits result is not authorization, a reservation, or evidence that actual spend is controlled."
      -              },
      -              "stateless": {
      -                "const": true
      -              },
      -              "submitted_evidence_verified": {
      -                "const": false
      -              },
      -              "submitted_records_retained": {
      -                "const": false
      -              }
      -            },
      -            "required": [
      -              "advisory_only",
      -              "stateless",
      -              "submitted_records_retained",
      -              "caller_identity_authenticated",
      -              "submitted_evidence_verified",
      -              "external_spend_enforced",
      -              "downstream_payment_authorized",
      -              "reservation_created",
      -              "ledger_updated",
      -              "credentials_issued",
      -              "delivery_verified",
      -              "model_calls",
      -              "human_review_required",
      -              "policy_authenticated",
      -              "history_verified",
      -              "checks_exclude_service_fee",
      -              "scope",
      -              "fee_scope",
      -              "history_scope"
      -            ],
      -            "type": "object"
      -          },
      -          "policy_currency": {
      -            "enum": [
      -              "USD",
      -              "USDC"
      -            ],
      -            "type": "string"
      -          },
      -          "proposed_cost": {
      -            "maxLength": 18,
      -            "minLength": 8,
      -            "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}(?![\\s\\S])",
      -            "type": "string"
      -          },
      -          "proposed_hour_total": {
      -            "anyOf": [
      -              {
      -                "maxLength": 18,
      -                "minLength": 8,
      -                "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}(?![\\s\\S])",
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "submitted_budget_in_use": {
      -            "anyOf": [
      -              {
      -                "maxLength": 18,
      -                "minLength": 8,
      -                "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}(?![\\s\\S])",
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "tool": {
      -            "const": "authorize_agent_spend"
      -          }
      -        },
      -        "required": [
      -          "tool",
      -          "authorization_status",
      -          "currency",
      -          "policy_currency",
      -          "history_currency",
      -          "proposed_cost",
      -          "submitted_budget_in_use",
      -          "proposed_hour_total",
      -          "hourly_remaining_after_proposal",
      -          "checks",
      -          "findings",
      -          "policy"
      -        ],
      -        "type": "object"
      -      },
      -      "service_id": {
      -        "const": "ardaro.authorize_agent_spend"
      -      },
      -      "status": {
      -        "const": "review_required"
      -      }
      -    },
      -    "required": [
      -      "contract_version",
      -      "service_id",
      -      "status",
      -      "result",
      -      "identities"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "contract_version": {
      -        "const": "ardaro.agent-utilities.response.v1"
      -      },
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "maxLength": 100,
      -            "type": "string"
      -          },
      -          "message": {
      -            "maxLength": 300,
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "error"
      -      }
      -    },
      -    "required": [
      -      "contract_version",
      -      "status",
      -      "error"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "additionalProperties": false,
      -    "properties": {
      -      "contract_version": {
      -        "const": "ardaro.agent-receipt-intelligence.response.v1"
      -      },
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "maxLength": 80,
      -            "type": "string"
      -          },
      -          "message": {
      -            "maxLength": 280,
      -            "type": "string"
      -          },
      -          "remediation": {
      -            "maxLength": 280,
      -            "type": "string"
      -          },
      -          "retryable": {
      -            "type": "boolean"
      -          },
      -          "service_code": {
      -            "enum": [
      -              "ARDARO_ARITHMETIC_MISMATCH",
      -              "ARDARO_DOCUMENT_TOO_LARGE",
      -              "ARDARO_DUPLICATE_SUSPECTED",
      -              "ARDARO_EXTRACTION_LOW_CONFIDENCE",
      -              "ARDARO_IDEMPOTENCY_CONFLICT",
      -              "ARDARO_INPUT_UNSUPPORTED",
      -              "ARDARO_PAYMENT_INVALID",
      -              "ARDARO_PAYMENT_RECONCILIATION_REQUIRED",
      -              "ARDARO_PAYMENT_REQUIRED",
      -              "ARDARO_RATE_LIMITED",
      -              "ARDARO_SERVICE_UNAVAILABLE"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "service_code",
      -          "message",
      -          "retryable",
      -          "remediation"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "error"
      -      }
      -    },
      -    "required": [
      -      "contract_version",
      -      "status",
      -      "error"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "additionalProperties": false,
      -    "properties": {
      -      "contract_version": {
      -        "const": "ardaro.agent-receipt-intelligence.response.v1"
      -      },
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "maxLength": 80,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "message": {
      -            "const": "Service is not ready."
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message"
      -        ],
      -        "type": "object"
      -      },
      -      "service": {
      -        "const": "ardaro-receipt-intelligence"
      -      },
      -      "status": {
      -        "const": "not_ready"
      -      }
      -    },
      -    "required": [
      -      "contract_version",
      -      "status",
      -      "service",
      -      "error"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "properties": {
      -      "accepts": {
      -        "items": {
      -          "properties": {
      -            "amount": {
      -              "type": "string"
      -            },
      -            "asset": {
      -              "type": "string"
      -            },
      -            "extra": {
      -              "additionalProperties": true,
      -              "type": "object"
      -            },
      -            "maxTimeoutSeconds": {
      -              "type": "integer"
      -            },
      -            "network": {
      -              "type": "string"
      -            },
      -            "payTo": {
      -              "type": "string"
      -            },
      -            "scheme": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "scheme",
      -            "network",
      -            "asset",
      -            "amount",
      -            "payTo",
      -            "maxTimeoutSeconds"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "error": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "extensions": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": true,
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "resource": {
      -        "oneOf": [
      -          {
      -            "properties": {
      -              "description": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "iconUrl": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "mimeType": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "serviceName": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "tags": {
      -                "oneOf": [
      -                  {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "url": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "url"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "x402Version": {
      -        "const": 2,
      -        "default": 2,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "accepts"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "error"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "message": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "error"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "message"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "contract_version": {
      +        "const": "ardaro.agent-utilities.response.v1"
      +      },
      +      "identities": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "analysis_result_identity": {
      +            "pattern": "^res_[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "payment_identity": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "protocol": {
      +                "const": "x402-v2"
      +              },
      +              "reference": {
      +                "pattern": "^pay_[0-9a-f]{64}$",
      +                "type": "string"
      +              },
      +              "replayed": {
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "protocol",
      +              "reference",
      +              "replayed"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "analysis_result_identity",
      +          "payment_identity"
      +        ],
      +        "type": "object"
      +      },
      +      "result": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "authorization_status": {
      +            "enum": [
      +              "WITHIN_SUBMITTED_LIMITS",
      +              "EXCEEDS_SUBMITTED_LIMITS",
      +              "RATE_THRESHOLD_EXCEEDED",
      +              "CURRENCY_MISMATCH"
      +            ]
      +          },
      +          "checks": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "currency_consistent": {
      +                "type": "boolean"
      +              },
      +              "hourly_within_limit": {
      +                "type": [
      +                  "boolean",
      +                  "null"
      +                ]
      +              },
      +              "rate_within_limit": {
      +                "type": "boolean"
      +              },
      +              "transaction_within_limit": {
      +                "type": [
      +                  "boolean",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "currency_consistent",
      +              "transaction_within_limit",
      +              "hourly_within_limit",
      +              "rate_within_limit"
      +            ],
      +            "type": "object"
      +          },
      +          "currency": {
      +            "enum": [
      +              "USD",
      +              "USDC"
      +            ],
      +            "type": "string"
      +          },
      +          "findings": {
      +            "items": {
      +              "enum": [
      +                "CURRENCY_MISMATCH",
      +                "TRANSACTION_LIMIT_EXCEEDED",
      +                "HOURLY_LIMIT_EXCEEDED",
      +                "RATE_THRESHOLD_EXCEEDED"
      +              ]
      +            },
      +            "maxItems": 3,
      +            "type": "array",
      +            "uniqueItems": true
      +          },
      +          "history_currency": {
      +            "enum": [
      +              "USD",
      +              "USDC"
      +            ],
      +            "type": "string"
      +          },
      +          "hourly_remaining_after_proposal": {
      +            "anyOf": [
      +              {
      +                "maxLength": 18,
      +                "minLength": 8,
      +                "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "policy": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "advisory_only": {
      +                "const": true
      +              },
      +              "caller_identity_authenticated": {
      +                "const": false
      +              },
      +              "checks_exclude_service_fee": {
      +                "const": true
      +              },
      +              "credentials_issued": {
      +                "const": false
      +              },
      +              "delivery_verified": {
      +                "const": false
      +              },
      +              "downstream_payment_authorized": {
      +                "const": false
      +              },
      +              "external_spend_enforced": {
      +                "const": false
      +              },
      +              "fee_scope": {
      +                "const": "The separately quoted service fee is excluded from these checks and must be budgeted separately in USDC. No USD/USDC conversion is performed."
      +              },
      +              "history_scope": {
      +                "const": "The caller supplies committed cost for its intended rolling-hour window, all unresolved pending reservations, and the count of prior checks in its intended minute. Completeness and timing are not verified."
      +              },
      +              "history_verified": {
      +                "const": false
      +              },
      +              "human_review_required": {
      +                "const": true
      +              },
      +              "ledger_updated": {
      +                "const": false
      +              },
      +              "model_calls": {
      +                "const": 0
      +              },
      +              "policy_authenticated": {
      +                "const": false
      +              },
      +              "reservation_created": {
      +                "const": false
      +              },
      +              "scope": {
      +                "const": "Compares caller-supplied downstream maximum cost with caller-supplied limits and history. A within-limits result is not authorization, a reservation, or evidence that actual spend is controlled."
      +              },
      +              "stateless": {
      +                "const": true
      +              },
      +              "submitted_evidence_verified": {
      +                "const": false
      +              },
      +              "submitted_records_retained": {
      +                "const": false
      +              }
      +            },
      +            "required": [
      +              "advisory_only",
      +              "stateless",
      +              "submitted_records_retained",
      +              "caller_identity_authenticated",
      +              "submitted_evidence_verified",
      +              "external_spend_enforced",
      +              "downstream_payment_authorized",
      +              "reservation_created",
      +              "ledger_updated",
      +              "credentials_issued",
      +              "delivery_verified",
      +              "model_calls",
      +              "human_review_required",
      +              "policy_authenticated",
      +              "history_verified",
      +              "checks_exclude_service_fee",
      +              "scope",
      +              "fee_scope",
      +              "history_scope"
      +            ],
      +            "type": "object"
      +          },
      +          "policy_currency": {
      +            "enum": [
      +              "USD",
      +              "USDC"
      +            ],
      +            "type": "string"
      +          },
      +          "proposed_cost": {
      +            "maxLength": 18,
      +            "minLength": 8,
      +            "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}$",
      +            "type": "string"
      +          },
      +          "proposed_hour_total": {
      +            "anyOf": [
      +              {
      +                "maxLength": 18,
      +                "minLength": 8,
      +                "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "submitted_budget_in_use": {
      +            "anyOf": [
      +              {
      +                "maxLength": 18,
      +                "minLength": 8,
      +                "pattern": "^(?:0|[1-9][0-9]{0,10})\\.[0-9]{6}$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "tool": {
      +            "const": "authorize_agent_spend"
      +          }
      +        },
      +        "required": [
      +          "tool",
      +          "authorization_status",
      +          "currency",
      +          "policy_currency",
      +          "history_currency",
      +          "proposed_cost",
      +          "submitted_budget_in_use",
      +          "proposed_hour_total",
      +          "hourly_remaining_after_proposal",
      +          "checks",
      +          "findings",
      +          "policy"
      +        ],
      +        "type": "object"
      +      },
      +      "service_id": {
      +        "const": "ardaro.authorize_agent_spend"
      +      },
      +      "status": {
      +        "const": "review_required"
      +      }
      +    },
      +    "required": [
      +      "contract_version",
      +      "service_id",
      +      "status",
      +      "result",
      +      "identities"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "contract_version": {
      +        "const": "ardaro.agent-utilities.response.v1"
      +      },
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "maxLength": 100,
      +            "type": "string"
      +          },
      +          "message": {
      +            "maxLength": 300,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "error"
      +      }
      +    },
      +    "required": [
      +      "contract_version",
      +      "status",
      +      "error"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "additionalProperties": false,
      +    "properties": {
      +      "contract_version": {
      +        "const": "ardaro.agent-receipt-intelligence.response.v1"
      +      },
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "maxLength": 80,
      +            "type": "string"
      +          },
      +          "message": {
      +            "maxLength": 280,
      +            "type": "string"
      +          },
      +          "remediation": {
      +            "maxLength": 280,
      +            "type": "string"
      +          },
      +          "retryable": {
      +            "type": "boolean"
      +          },
      +          "service_code": {
      +            "enum": [
      +              "ARDARO_ARITHMETIC_MISMATCH",
      +              "ARDARO_DOCUMENT_TOO_LARGE",
      +              "ARDARO_DUPLICATE_SUSPECTED",
      +              "ARDARO_EXTRACTION_LOW_CONFIDENCE",
      +              "ARDARO_IDEMPOTENCY_CONFLICT",
      +              "ARDARO_INPUT_UNSUPPORTED",
      +              "ARDARO_PAYMENT_INVALID",
      +              "ARDARO_PAYMENT_RECONCILIATION_REQUIRED",
      +              "ARDARO_PAYMENT_REQUIRED",
      +              "ARDARO_RATE_LIMITED",
      +              "ARDARO_SERVICE_UNAVAILABLE"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "service_code",
      +          "message",
      +          "retryable",
      +          "remediation"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "error"
      +      }
      +    },
      +    "required": [
      +      "contract_version",
      +      "status",
      +      "error"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "additionalProperties": false,
      +    "properties": {
      +      "contract_version": {
      +        "const": "ardaro.agent-receipt-intelligence.response.v1"
      +      },
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "maxLength": 80,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "message": {
      +            "const": "Service is not ready."
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "service": {
      +        "const": "ardaro-receipt-intelligence"
      +      },
      +      "status": {
      +        "const": "not_ready"
      +      }
      +    },
      +    "required": [
      +      "contract_version",
      +      "status",
      +      "service",
      +      "error"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "properties": {
      +      "accepts": {
      +        "items": {
      +          "properties": {
      +            "amount": {
      +              "type": "string"
      +            },
      +            "asset": {
      +              "type": "string"
      +            },
      +            "extra": {
      +              "additionalProperties": true,
      +              "type": "object"
      +            },
      +            "maxTimeoutSeconds": {
      +              "type": "integer"
      +            },
      +            "network": {
      +              "type": "string"
      +            },
      +            "payTo": {
      +              "type": "string"
      +            },
      +            "scheme": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "scheme",
      +            "network",
      +            "asset",
      +            "amount",
      +            "payTo",
      +            "maxTimeoutSeconds"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "error": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "extensions": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "resource": {
      +        "oneOf": [
      +          {
      +            "properties": {
      +              "description": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "iconUrl": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "mimeType": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "serviceName": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "tags": {
      +                "oneOf": [
      +                  {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "url"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "x402Version": {
      +        "const": 2,
      +        "default": 2,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "accepts"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "message": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "const": "error"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "message"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. First observed

TDQS

A3.7/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the annotations. It discloses that the tool is advisory (does not authenticate, reserve, authorize, or block), which aligns with readOnlyHint and idempotentHint. It also reveals the cost: 0.10 USDC per accepted analysis, including unfavorable results, and emphasizes that owner-authorized x402 payment is required while tool discovery does not authorize spending. These details are critical for the agent to understand the tool's side effects and prerequisites, which annotations alone do not capture. No contradiction with annotations is present.

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 approximately 100 words, which is reasonable for a tool with cost and auth implications. It is front-loaded with the core purpose in the first sentence, followed by advisory caveats, then pricing and prerequisite steps, and finally the auth requirement. Each sentence carries meaningful information, and there is minimal redundancy. The structure is logical and easy to scan, though it could be slightly tightened by merging some caveats, but it remains appropriately sized for the complexity.

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 (nested objects, required parameters, output schema), the description covers the most critical contextual aspects: advisory nature, cost, auth requirement, and a prerequisite check. Since an output schema exists, it need not explain return values. However, it does not describe the exact comparison logic (e.g., how limits are applied or what constitutes an 'acceptable' analysis), which might be inferred from the output schema or examples. The description is sufficiently complete for an agent to make a first call, but it leaves out some operational details that could be clarified.

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%, meaning the description does not explain any of the four parameters (proposed_cost, currency, policy, history). While the schema itself is highly detailed with nested objects, required fields, and constraints, the description adds no semantic meaning beyond what the schema already provides. Since coverage is low (0%), the description is expected to compensate by explaining parameter intent, but it does not. The parameter names are somewhat self-explanatory, but the description does not clarify how they interact (e.g., how policy and history are used in the comparison), leaving the agent to infer from names alone. This falls short of the baseline.

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?

The description clearly states the verb 'Compare' with a specific resource: proposed downstream cost against caller-supplied limits and history. It explicitly labels itself as 'Advisory only', which differentiates it from potential authorization tools. However, it does not directly name any specific sibling tool it complements or contrasts with, beyond referencing get_utility_service_status and get_utility_example as prerequisite checks. The purpose is unambiguous but could be stronger by explicitly stating what it is not (e.g., not an authorizer) in a way that directly contrasts with a sibling.

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?

The description provides some usage context: it tells the agent to check get_utility_service_status with a specific service name first and to use the free fixed example. It also clarifies that this tool is advisory only and does not perform actual authorization, which implies it should be used when only a recommendation is needed. However, it never states explicitly 'when to use this vs alternatives' or provides criteria for selecting this over a sibling. The guidance is implicit rather than directive, leaving the agent to infer the exact use case without clearly naming alternative tools or exclusionary conditions.

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