Skip to main content
Glama

DropEngine x402 Agent Services

verify_claim

Paid Freshness / Claim Verifier ($0.02 USDC). Checks a factual claim against fresh web search evidence and returns supported/contradicted/mixed/insufficient/stale with sources. Requires TAVILY_API_KEY. If the key is missing, returns a provider-unavailable error before requesting payment. Claim text is sent to the configured search provider.

Agent entry points: risky external action → use Agent Action Gate when a combined action-specific safety assessment is needed; unclear capability/provider → use free /api/discover; constrained comparison between callable alternatives → use paid route_tool; known single capability → call the direct tool; multi-step objective → read the matching workflow recipe and call only relevant steps. Workflows are stateless recipes, not executors; calls are paid separately and are not bundle charged. Agent Action Gate does not approve payment, sign or broadcast transactions, evaluate seller reputation, replace transaction simulation, replace route_tool, or replace human approval.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
claimYes
freshness_daysNo
preferred_domainsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaNo
nextNo
claimYes
errorNo
cachedYes
resultNo
statusNo
paymentNo
sourcesYes
successYes
verdictYes
agent_uxNo
degradedYes
evidenceYes
warningsYes
freshnessYes
confidenceYes
verified_atYes
conflicting_evidenceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedOutput schema / properties / agent_ux
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "error": {
      +      "anyOf": [
      +        {},
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "meta": {
      +      "additionalProperties": {},
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "next": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "payment": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "execution_status": {
      +          "enum": [
      +            "not_started",
      +            "succeeded",
      +            "failed",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        },
      +        "status": {
      +          "enum": [
      +            "not_required",
      +            "required",
      +            "settled",
      +            "failed",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "status",
      +        "execution_status"
      +      ],
      +      "type": "object"
      +    },
      +    "result": {},
      +    "status": {
      +      "enum": [
      +        "succeeded",
      +        "failed",
      +        "partial",
      +        "outcome_unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "result",
      +    "error",
      +    "meta",
      +    "payment",
      +    "next"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "anyOf": [
      +    {},
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / meta
      Added value: +{
      +  "additionalProperties": {},
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / next
      Added value: +{
      +  "items": {},
      +  "type": "array"
      +}
    • addedOutput schema / properties / payment
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "execution_status": {
      +      "enum": [
      +        "not_started",
      +        "succeeded",
      +        "failed",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "not_required",
      +        "required",
      +        "settled",
      +        "failed",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "execution_status"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / result
      Added value: +{}
    • addedOutput schema / properties / status
      Added value: +{
      +  "enum": [
      +    "succeeded",
      +    "failed",
      +    "partial",
      +    "outcome_unknown"
      +  ],
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "cached": {
      +      "type": "boolean"
      +    },
      +    "claim": {
      +      "type": "string"
      +    },
      +    "confidence": {
      +      "type": "number"
      +    },
      +    "conflicting_evidence": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "published_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "snippet": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "type": "string"
      +          },
      +          "source_quality": {
      +            "type": "string"
      +          },
      +          "supports": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "title": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "source",
      +          "title",
      +          "published_at",
      +          "source_quality",
      +          "supports",
      +          "snippet"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "degraded": {
      +      "type": "boolean"
      +    },
      +    "evidence": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "published_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "snippet": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "type": "string"
      +          },
      +          "source_quality": {
      +            "type": "string"
      +          },
      +          "supports": {
      +            "const": true,
      +            "type": "boolean"
      +          },
      +          "title": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "source",
      +          "title",
      +          "published_at",
      +          "source_quality",
      +          "supports",
      +          "snippet"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "freshness": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "age_days": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "newest_source_at": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "status": {
      +          "enum": [
      +            "fresh",
      +            "stale",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "status",
      +        "newest_source_at",
      +        "age_days"
      +      ],
      +      "type": "object"
      +    },
      +    "sources": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "success": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "verdict": {
      +      "enum": [
      +        "supported",
      +        "contradicted",
      +        "mixed",
      +        "insufficient_evidence",
      +        "stale"
      +      ],
      +      "type": "string"
      +    },
      +    "verified_at": {
      +      "type": "string"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "success",
      +    "claim",
      +    "verdict",
      +    "confidence",
      +    "freshness",
      +    "evidence",
      +    "conflicting_evidence",
      +    "warnings",
      +    "sources",
      +    "degraded",
      +    "cached",
      +    "verified_at"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does it well: it discloses the price ($0.02 USDC), the TAVILY_API_KEY requirement, the failure behavior (provider-unavailable error returned before payment is requested), and the privacy side effect (claim text is sent to the external search provider). These are exactly the non-obvious traits an agent must know before invoking.

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 core description is front-loaded and dense: price, function, output values, auth, and failure mode in four tight sentences. The appended routing paragraph is longer and server-wide boilerplate rather than tool-specific, so it dilutes rather than sharpens, but the essential content stays up front.

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?

An output schema exists, so return-structure explanation is optional (the verdict enumeration is a bonus), and the payment, key, error, and privacy behavior are covered. The main shortfall is the entirely undocumented parameters, which leaves an agent guessing at freshness and domain-filter semantics.

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% for all three parameters, so the description must compensate, and it largely does not. 'Fresh web search evidence' faintly hints at freshness_days, but the range/semantics of freshness_days and the purpose of preferred_domains (up to 10 domain filters) are never explained, and the claim length bounds (8-2000 chars) go unmentioned.

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 first sentence names a specific verb and resource (checks a factual claim) and enumerates the exact verdict space (supported/contradicted/mixed/insufficient/stale) plus the evidence returned (sources). This is clearly differentiable from siblings like check_url, scan_content, or extract_structured, which operate on URLs/content rather than claim truth.

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 entry-point routing block gives clear context: a known single capability means 'call the direct tool,' while comparisons go to route_tool and unclear capability to /api/discover. That is useful disambiguation, though the guidance is generic to the server rather than tailored to when claim verification specifically beats check_url or scan_content.

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