Skip to main content
Glama

DropEngine x402 Agent Services

get_live_quote

Paid Live Product Quote ($0.01 USDC). Retrieves explicitly published product price and stock from a public HTTPS product page before an agent buys; shipping, tax and unknown values remain null. Never purchases.

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
urlYes
variantNo
quantityNo
destinationNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaNo
nextNo
errorNo
quoteYes
cachedYes
resultNo
statusNo
paymentNo
productYes
sourcesYes
successYes
variantYes
agent_uxNo
deliveryYes
confidenceYes
fetched_atYes
availabilityYes
data_age_secondsYes

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": {
      +    "availability": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "in_stock": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "quantity_available": {
      +          "type": "null"
      +        },
      +        "stock_status": {
      +          "enum": [
      +            "in_stock",
      +            "out_of_stock",
      +            "unknown"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "in_stock",
      +        "stock_status",
      +        "quantity_available"
      +      ],
      +      "type": "object"
      +    },
      +    "cached": {
      +      "type": "boolean"
      +    },
      +    "confidence": {
      +      "enum": [
      +        "high",
      +        "low"
      +      ],
      +      "type": "string"
      +    },
      +    "data_age_seconds": {
      +      "type": "number"
      +    },
      +    "delivery": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "estimated_days_max": {
      +          "type": "null"
      +        },
      +        "estimated_days_min": {
      +          "type": "null"
      +        }
      +      },
      +      "required": [
      +        "estimated_days_min",
      +        "estimated_days_max"
      +      ],
      +      "type": "object"
      +    },
      +    "fetched_at": {
      +      "type": "string"
      +    },
      +    "product": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "canonical_url": {
      +          "type": "string"
      +        },
      +        "title": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "title",
      +        "canonical_url"
      +      ],
      +      "type": "object"
      +    },
      +    "quote": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "currency": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "fees": {
      +          "type": "null"
      +        },
      +        "landed_total": {
      +          "type": "null"
      +        },
      +        "quantity": {
      +          "type": "number"
      +        },
      +        "shipping": {
      +          "type": "null"
      +        },
      +        "subtotal": {
      +          "type": "number"
      +        },
      +        "tax": {
      +          "type": "null"
      +        },
      +        "unit_price": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "currency",
      +        "unit_price",
      +        "quantity",
      +        "subtotal",
      +        "shipping",
      +        "tax",
      +        "fees",
      +        "landed_total"
      +      ],
      +      "type": "object"
      +    },
      +    "sources": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "success": {
      +      "const": true,
      +      "type": "boolean"
      +    },
      +    "variant": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "color": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "size": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "verified": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "size",
      +        "color",
      +        "verified"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "success",
      +    "product",
      +    "quote",
      +    "availability",
      +    "variant",
      +    "delivery",
      +    "confidence",
      +    "sources",
      +    "cached",
      +    "fetched_at",
      +    "data_age_seconds"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

B3.3/5.0
Behavior4/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 meaningfully disclose behavior: it is paid ($0.01 USDC), it is a non-purchasing read ('never purchases'), and it defines null semantics for shipping, tax, and unknown values. It stops short of naming auth/payment mechanics (how the $0.01 is charged) or failure modes, which keeps it out of the top band.

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 first sentence is front-loaded, dense, and earns its place. The following paragraph, however, is ~120 words of server-wide agent-routing boilerplate that is identical across every sibling tool and dilutes the tool-specific signal.

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?

An output schema exists, so return values need not be described, and cost/read-only behavior is covered. But for a paid external-fetch tool with four parameters at 0% schema coverage and nested objects, gaps remain: what page/format support exists, what happens on unsupported pages, and what variant/quantity/destination actually change.

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%, so the description must carry the parameter semantics, and it largely does not. It hints that 'shipping, tax' exist (implying destination drives estimates) but never explains variant, quantity, or how destination.country/postal_code are used; an agent gets no more than it could infer from the parameter names.

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 opening sentence names a specific verb (retrieves) and resource (explicitly published product price and stock from a public HTTPS product page) and adds a scope boundary ('never purchases'). It is clearly distinguishable from a purchasing tool, though the sibling differentiation that follows is generic routing boilerplate rather than something specific to this tool.

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?

It gives the situational trigger ('before an agent buys') and the entry-point block includes 'known single capability → call the direct tool', which weakly justifies using this over route_tool or /api/discover. However, the block is server-wide boilerplate; it never addresses the overlapping siblings like extract_structured, check_url, or scan_content, so the guidance is implied rather than explicit for this 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