Skip to main content
Glama

Synthex Forge — x402 Paid Agent Services

Assess Spend Anomaly

assess_spend_anomaly
Read-onlyIdempotent

Judge whether the spend is normal. use it rather than assess_mandate_compliance for spend anomaly, not mandate compliance; an object with 53 fields including agentId, agent_id. $0.05 USDC.

Input Schema

NameRequiredDescriptionDefault
agent_idNoThe identifier of the agent the operation concerns.
baselineNoThe baseline this operation operates on. See the schema for its type and whether it is required.
spend_windowNoThe spend window this operation operates on. See the schema for its type and whether it is required.

Output Schema

NameRequiredDescriptionDefault
tsNoThe `ts` field of the response.
llmNoThe `llm` field of the response.
kindNoThe `kind` field of the response.
noteNoA note on how the answer was produced.
testNoThe `test` field of the response.
clockNoThe `clock` field of the response.
indexNoThe `index` field of the response.
shareNoThe `share` field of the response.
amountNoThe `amount` field of the response.
eventsNoThe `events` field of the response.
key_idNoThe `key_id` field of the response.
zScoreNoThe `zScore` field of the response.
agentIdNoThe `agentId` field of the response.
driversNoThe `drivers` field of the response.
formulaNoThe `formula` field of the response.
profileNoThe `profile` field of the response.
verdictYesThe decision this tool returned.
z_scoreNoThe `z_score` field of the response.
agent_idNoThe `agent_id` field of the response.
elevatedNoThe `elevated` field of the response.
verdictsNoThe `verdicts` field of the response.
anomalousNoThe `anomalous` field of the response.
signatureYesThe Ed25519 signature over the evidence core, base64-encoded.
signed_byNoThe key id that signed the answer.
amount_usdNoThe amount the operation concerned.
public_keyNoThe `public_key` field of the response.
thresholdsNoThe `thresholds` field of the response.
event_countNoThe `event_count` field of the response.
methodologyNoThe `methodology` field of the response.
windowHoursNoThe `windowHours` field of the response.
window_ruleNoThe `window_rule` field of the response.
counterpartyNoThe `counterparty` field of the response.
coverageGapsNoThe `coverageGaps` field of the response.
window_hoursNoThe `window_hours` field of the response.
coverage_gapsNoThe `coverage_gaps` field of the response.
evidence_coreYesThe canonical, signed core of the answer — the payload the signature covers.
output_sha256YesSHA-256 hex digest of the canonical evidence core.
missing_fieldsNoThe `missing_fields` field of the response.
profileVersionNoVersion of the answer profile.
observedPerHourNoThe `observedPerHour` field of the response.
profile_versionNoVersion of the answer profile.
total_spend_usdNoThe `total_spend_usd` field of the response.
canonicalizationNoThe canonicalisation rule the digest was computed under.
observed_per_hourNoThe `observed_per_hour` field of the response.
methodologyVersionNoThe `methodologyVersion` field of the response.
methodology_versionNoVersion of the method that produced the answer.
signature_algorithmNoThe `signature_algorithm` field of the response.
baselineObservationsNoThe `baselineObservations` field of the response.
derived_window_hoursNoThe `derived_window_hours` field of the response.
baseline_observationsNoThe `baseline_observations` field of the response.
baseline_std_per_hourNoThe `baseline_std_per_hour` field of the response.
baseline_mean_per_hourNoThe `baseline_mean_per_hour` field of the response.
min_baseline_observationsNoThe `min_baseline_observations` field of the response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed55 schema fields changed
    • addedOutput schema / properties / agentId
      Added value: +{
      +  "description": "The `agentId` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / agent_id
      Added value: +{
      +  "description": "The `agent_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / amount
      Added value: +{
      +  "description": "The `amount` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / amount_usd
      Added value: +{
      +  "description": "The amount the operation concerned.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / anomalous
      Added value: +{
      +  "description": "The `anomalous` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / baselineObservations
      Added value: +{
      +  "description": "The `baselineObservations` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / baseline_mean_per_hour
      Added value: +{
      +  "description": "The `baseline_mean_per_hour` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / baseline_observations
      Added value: +{
      +  "description": "The `baseline_observations` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / baseline_std_per_hour
      Added value: +{
      +  "description": "The `baseline_std_per_hour` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / canonicalization
      Added value: +{
      +  "description": "The canonicalisation rule the digest was computed under.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / clock
      Added value: +{
      +  "description": "The `clock` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / counterparty
      Added value: +{
      +  "description": "The `counterparty` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / coverageGaps
      Added value: +{
      +  "description": "The `coverageGaps` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / coverage_gaps
      Added value: +{
      +  "description": "The `coverage_gaps` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / derived_window_hours
      Added value: +{
      +  "description": "The `derived_window_hours` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / drivers
      Added value: +{
      +  "description": "The `drivers` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / elevated
      Added value: +{
      +  "description": "The `elevated` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / event_count
      Added value: +{
      +  "description": "The `event_count` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / events
      Added value: +{
      +  "description": "The `events` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_core
      Added value: +{
      +  "description": "The canonical, signed core of the answer — the payload the signature covers.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / formula
      Added value: +{
      +  "description": "The `formula` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / index
      Added value: +{
      +  "description": "The `index` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / key_id
      Added value: +{
      +  "description": "The `key_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "description": "The `kind` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / llm
      Added value: +{
      +  "description": "The `llm` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodology
      Added value: +{
      +  "description": "The `methodology` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodologyVersion
      Added value: +{
      +  "description": "The `methodologyVersion` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodology_version
      Added value: +{
      +  "description": "Version of the method that produced the answer.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / min_baseline_observations
      Added value: +{
      +  "description": "The `min_baseline_observations` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / missing_fields
      Added value: +{
      +  "description": "The `missing_fields` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / note
      Added value: +{
      +  "description": "A note on how the answer was produced.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / observedPerHour
      Added value: +{
      +  "description": "The `observedPerHour` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / observed_per_hour
      Added value: +{
      +  "description": "The `observed_per_hour` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / output_sha256
      Added value: +{
      +  "description": "SHA-256 hex digest of the canonical evidence core.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / profile
      Added value: +{
      +  "description": "The `profile` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / profileVersion
      Added value: +{
      +  "description": "Version of the answer profile.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / profile_version
      Added value: +{
      +  "description": "Version of the answer profile.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / public_key
      Added value: +{
      +  "description": "The `public_key` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / share
      Added value: +{
      +  "description": "The `share` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / signature
      Added value: +{
      +  "description": "The Ed25519 signature over the evidence core, base64-encoded.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / signature_algorithm
      Added value: +{
      +  "description": "The `signature_algorithm` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / signed_by
      Added value: +{
      +  "description": "The key id that signed the answer.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / test
      Added value: +{
      +  "description": "The `test` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / thresholds
      Added value: +{
      +  "description": "The `thresholds` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / total_spend_usd
      Added value: +{
      +  "description": "The `total_spend_usd` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / ts
      Added value: +{
      +  "description": "The `ts` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verdict
      Added value: +{
      +  "description": "The decision this tool returned.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / verdicts
      Added value: +{
      +  "description": "The `verdicts` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / windowHours
      Added value: +{
      +  "description": "The `windowHours` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / window_hours
      Added value: +{
      +  "description": "The `window_hours` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / window_rule
      Added value: +{
      +  "description": "The `window_rule` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / zScore
      Added value: +{
      +  "description": "The `zScore` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / z_score
      Added value: +{
      +  "description": "The `z_score` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "evidence_core",
      +  "output_sha256",
      +  "signature",
      +  "verdict"
      +]
  2. Added

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds a real behavioral fact not in the structured data — the $0.05 USDC cost — but the 'object with 53 fields including agentId, agent_id' fragment is opaque and adds no usable behavior context.

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

Conciseness2/5

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

The intent is front-loaded in the first clause, but roughly a third of the text is a broken fragment ('an object with 53 fields including agentId, agent_id') that duplicates the same field name in two casings and contradicts the presence of an output schema. Size is fine; the content is not clean.

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?

Read-only judgment tool with an output schema and full parameter coverage, so return values need not be explained. However, nothing says how the verdict is derived from `baseline` versus `spend_window`, and the stray '53 fields' claim may mislead about the return payload the output schema already defines.

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%, so `agent_id`, `baseline` and `spend_window` are already documented. The description contributes nothing about what a baseline must contain or how the spend window is evaluated, so it sits at the baseline 3 rather than above it.

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 ('Judge whether the spend is normal') and explicitly separates itself from the `assess_mandate_compliance` sibling. The word 'normal' is left undefined and the surrounding fragments are ungrammatical, but an agent can still tell what domain the tool covers.

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?

Explicitly names the alternative to avoid ('use it rather than `assess_mandate_compliance` for spend anomaly, not mandate compliance'), which is exactly the routing signal an agent needs among ~140 siblings. It stops short of describing prerequisites or when a verdict is inconclusive, but the key exclusion is stated.

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.