Skip to main content
Glama

DropEngine x402 Agent Services

invoice_preflight_quote

FREE, no wallet or document upload: choose the lowest priced Invoice Preflight tool from document type, PDF page count, and optional byte size. Call this before a paid invoice tool when the tier is uncertain. It does not inspect or validate the document.

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
page_countNo
document_typeYes
file_size_bytesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaNo
nextNo
errorNo
reasonYes
resultNo
statusNo
networkYes
paymentNo
agent_uxNo
price_usdcYes
no_payment_takenYes
recommended_toolYes
document_not_inspectedYes
final_validation_on_paid_callYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 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: +{}
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "ready",
      -  "needs_page_count",
      -  "unsupported",
      -  "temporarily_unavailable"
      -]New value: +[
      +  "succeeded",
      +  "failed",
      +  "partial",
      +  "outcome_unknown"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "status",
      -  "recommended_tool",
      -  "price_usdc",
      -  "network",
      -  "reason",
      -  "no_payment_taken",
      -  "document_not_inspected",
      -  "final_validation_on_paid_call"
      -]New value: +[
      +  "recommended_tool",
      +  "price_usdc",
      +  "network",
      +  "reason",
      +  "no_payment_taken",
      +  "document_not_inspected",
      +  "final_validation_on_paid_call"
      +]
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it discloses that the operation is FREE, requires no wallet or document upload, performs no inspection/validation, and is not bundle charged. It does not state latency, caching, or rate limits, but for a stateless quote lookup the key behavioral traits are covered.

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 first two sentences are tight and front-loaded, but the long 'Agent entry points' paragraph is largely boilerplate about other tools (Agent Action Gate, route_tool, workflow recipes) and contributes little to selecting or invoking this specific quote tool. It inflates the definition without earning its length here.

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?

Complexity is low, the schema is small and simple, and an output schema exists so return values need not be explained. Combined with the free/no-wallet disclosure, the description gives an agent enough to call it correctly; the off-topic routing paragraph is the only weak point.

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 0%, but the description names all three inputs (document type, PDF page count, optional byte size), which compensates partially and matches the schema properties. It does not add format, units, or edge-case details beyond the parameter names and the 1–10000 bounds already in the schema.

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 opening sentence states a specific verb and resource — pick the lowest-priced Invoice Preflight tool — and explicitly scopes it as free with no wallet or document upload. It distinguishes itself cleanly from the paid invoice siblings (invoice_preflight, invoice_preflight_10_pages, invoice_preflight_50_pages) and disclaims that it does not inspect the document.

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?

It gives a direct when-to-use rule: 'Call this before a paid invoice tool when the tier is uncertain.' The entry-point block also routes among alternatives (Agent Action Gate, discover, route_tool, direct tool), giving clear context. It stops short of an explicit when-not-to-use for this specific tool.

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