Skip to main content
Glama

HubVibe: Pay-per-Call Agent Tools: Web Search, Email Verify, KYC Screening, Stocks, Crypto, News

Live availability: can this be bought or booked right now?

hubvibe_commerce_availability
Read-onlyIdempotent

Product availability and price check: is it in stock and buyable right now, at what price, in which options (sizes, colours, dates, rooms), which option matches the variant you name, quantity and ship-to eligibility where the page states them, with evidence and a checked_at stamp. Reads any product or booking page (schema.org, Open Graph, Shopify JSON; a browser only when needed). Input: url; optional variant, quantity, ship_to. $0.50 per call. Returns: available, availability, price, currency, options[], matched_option, quantity_ok, ship_to_ok, shipping, eligibility_notes[], evidence[], source, confidence, checked_at.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe product, listing or booking page.
ship_toNoOptional: ISO 3166-1 alpha-2 country the order ships to.
variantNoOptional: the option you want, in words (size 9 natural black; double room 12 Oct; economy).
languageNoOptional answer language, BCP-47 (en, ja, pt-BR). Default: the input's.
quantityNoOptional: how many you need.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
statusYes
workerYes
price_usdYes
provenanceYes
receipt_idYes
attributionNo
receipt_urlYes
billing_warningNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed24 schema fields changed
    • changedInput schema / properties / language / description
      Previous value: -"Optional BCP-47 language tag (en, ja, pt-BR, zh-Hant): every prose field of the answer is written in this language. Default: the language of the material or question."New value: +"Optional answer language, BCP-47 (en, ja, pt-BR). Default: the input's."
    • removedOutput schema / description
      Removed value: -"The 200 body of every paid /work call. `result` is the worker's own output (its schema is per route); everything else is the same on every /work route. A receipt for the job is at `receipt_url`."
    • removedOutput schema / properties / attribution / description
      Removed value: -"Present only when the result's text was machine-translated: the credit to show with it."
    • removedOutput schema / properties / attribution / items / description
      Removed value: -"A credit."
    • removedOutput schema / properties / attribution / items / properties
      Removed value: -{
      -  "text": {
      -    "description": "Credit.",
      -    "examples": [
      -      "Translated by Google"
      -    ],
      -    "type": "string"
      -  },
      -  "url": {
      -    "description": "Link.",
      -    "examples": [
      -      "https://translate.google.com"
      -    ],
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / attribution / items / required
      Removed value: -[
      -  "text",
      -  "url"
      -]
    • removedOutput schema / properties / attribution / items / type
      Removed value: -"object"
    • removedOutput schema / properties / billing_warning / description
      Removed value: -"Present only when the charge was recorded with a caveat."
    • removedOutput schema / properties / billing_warning / examples
      Removed value: -[
      -  "settlement pending"
      -]
    • removedOutput schema / properties / price_usd / description
      Removed value: -"What this call cost, in USD."
    • removedOutput schema / properties / price_usd / examples
      Removed value: -[
      -  0.02
      -]
    • removedOutput schema / properties / provenance / description
      Removed value: -"How the result was produced: which providers ran and how long each took."
    • removedOutput schema / properties / provenance / properties
      Removed value: -{
      -  "attempts": {
      -    "description": "Provider attempts made, including retries and failovers.",
      -    "examples": [
      -      1
      -    ],
      -    "type": "integer"
      -  },
      -  "elapsed_ms": {
      -    "description": "Wall-clock milliseconds for the whole job.",
      -    "examples": [
      -      340
      -    ],
      -    "type": "integer"
      -  },
      -  "providers_used": {
      -    "description": "Providers that served the job.",
      -    "examples": [
      -      [
      -        "coinbase-advanced-trade-public"
      -      ]
      -    ],
      -    "items": {
      -      "description": "Provider name.",
      -      "examples": [
      -        "coinbase-advanced-trade-public"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "steps": {
      -    "description": "Every step the job ran, in order.",
      -    "items": {
      -      "description": "One step of the job.",
      -      "properties": {
      -        "ms": {
      -          "description": "Milliseconds the step took.",
      -          "examples": [
      -            312
      -          ],
      -          "type": "integer"
      -        },
      -        "ok": {
      -          "description": "Whether the step succeeded.",
      -          "examples": [
      -            true
      -          ],
      -          "type": "boolean"
      -        },
      -        "provider": {
      -          "description": "Provider that served the step.",
      -          "examples": [
      -            "coinbase-advanced-trade-public"
      -          ],
      -          "type": "string"
      -        },
      -        "reason": {
      -          "description": "Failure reason, on a failed step.",
      -          "examples": [
      -            "provider_timeout"
      -          ],
      -          "type": "string"
      -        },
      -        "step": {
      -          "description": "Step name inside the worker.",
      -          "examples": [
      -            "quote"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "step",
      -        "ok",
      -        "ms"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  }
      -}
    • removedOutput schema / properties / provenance / required
      Removed value: -[
      -  "steps",
      -  "providers_used",
      -  "attempts",
      -  "elapsed_ms"
      -]
    • removedOutput schema / properties / receipt_id / description
      Removed value: -"Receipt id for this job."
    • removedOutput schema / properties / receipt_id / examples
      Removed value: -[
      -  "rcpt_9f1c2b3a4d5e6f70"
      -]
    • removedOutput schema / properties / receipt_url / description
      Removed value: -"Where to fetch the machine-readable receipt (free, no payment)."
    • removedOutput schema / properties / receipt_url / examples
      Removed value: -[
      -  "/work/receipts/rcpt_9f1c2b3a4d5e6f70"
      -]
    • removedOutput schema / properties / result / properties
      Removed value: -{
      -  "availability": {
      -    "description": "Availability of the option asked for (or of the product when no variant was named).",
      -    "enum": [
      -      "in_stock",
      -      "out_of_stock",
      -      "preorder",
      -      "backorder",
      -      "limited",
      -      "discontinued",
      -      "unknown"
      -    ],
      -    "examples": [
      -      "in_stock"
      -    ],
      -    "type": "string"
      -  },
      -  "available": {
      -    "description": "Purchasable or bookable right now under the conditions asked; null when the page does not say.",
      -    "examples": [
      -      true
      -    ],
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "checked_at": {
      -    "description": "When the page was read (UTC). The answer was true at this moment; nothing here is cached.",
      -    "examples": [
      -      "2026-09-26T18:00:00Z"
      -    ],
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  "confidence": {
      -    "description": "high: exact structured data for the option asked; medium: page-level tags only; low: model reading or nothing found.",
      -    "enum": [
      -      "high",
      -      "medium",
      -      "low"
      -    ],
      -    "examples": [
      -      "high"
      -    ],
      -    "type": "string"
      -  },
      -  "currency": {
      -    "description": "ISO 4217 currency of `price`; null when not stated.",
      -    "examples": [
      -      "USD"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "eligibility_notes": {
      -    "description": "Restrictions and caveats, in words.",
      -    "examples": [
      -      []
      -    ],
      -    "items": {
      -      "description": "A restriction or caveat the page states, or why a condition could not be checked.",
      -      "examples": [
      -        "Ships to US, CA and GB only."
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "evidence": {
      -    "description": "The evidence behind the answer, best first.",
      -    "items": {
      -      "description": "What the answer rests on: a structured-data field or an exact quote from the page.",
      -      "examples": [
      -        "JSON-LD Offer availability https://schema.org/InStock price 110 USD"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "final_url": {
      -    "description": "The URL after redirects.",
      -    "examples": [
      -      "https://example.com/products/wool-runner"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "http_status": {
      -    "description": "HTTP status of the page fetch.",
      -    "examples": [
      -      200
      -    ],
      -    "type": [
      -      "integer",
      -      "null"
      -    ]
      -  },
      -  "javascript_rendered": {
      -    "description": "Whether a real browser had to render the page to answer.",
      -    "examples": [
      -      false
      -    ],
      -    "type": "boolean"
      -  },
      -  "language": {
      -    "description": "BCP-47 tag the prose fields were written in; null for the page's own language.",
      -    "examples": [
      -      "en"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "matched_option": {
      -    "description": "The option matching `variant`; null when no variant was asked or none matched.",
      -    "properties": {
      -      "availability": {
      -        "description": "Availability of this option.",
      -        "enum": [
      -          "in_stock",
      -          "out_of_stock",
      -          "preorder",
      -          "backorder",
      -          "limited",
      -          "discontinued",
      -          "unknown"
      -        ],
      -        "examples": [
      -          "in_stock"
      -        ],
      -        "type": "string"
      -      },
      -      "available": {
      -        "description": "Purchasable now; null when the page does not say.",
      -        "examples": [
      -          true
      -        ],
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "currency": {
      -        "description": "ISO 4217 code; null when not stated.",
      -        "examples": [
      -          "USD"
      -        ],
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "name": {
      -        "description": "The option as the page names it.",
      -        "examples": [
      -          "Natural Black / 10"
      -        ],
      -        "type": "string"
      -      },
      -      "price": {
      -        "description": "Price of this option; null when not stated.",
      -        "examples": [
      -          110
      -        ],
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "sku": {
      -        "description": "SKU when the page states one.",
      -        "examples": [
      -          "WR3MNCW100"
      -        ],
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "url": {
      -        "description": "Option-specific URL when the page gives one.",
      -        "examples": [
      -          "https://example.com/products/wool-runner?variant=10"
      -        ],
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "name",
      -      "available",
      -      "availability",
      -      "price",
      -      "currency"
      -    ],
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "model": {
      -    "description": "The model used, only when the model layer ran.",
      -    "examples": [
      -      "gemini-2.5-flash"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "options": {
      -    "description": "Every purchasable variation the page lists (sizes, colours, dates, rooms, fares).",
      -    "items": {
      -      "description": "One purchasable variation.",
      -      "properties": {
      -        "availability": {
      -          "description": "Availability of this option.",
      -          "enum": [
      -            "in_stock",
      -            "out_of_stock",
      -            "preorder",
      -            "backorder",
      -            "limited",
      -            "discontinued",
      -            "unknown"
      -          ],
      -          "examples": [
      -            "in_stock"
      -          ],
      -          "type": "string"
      -        },
      -        "available": {
      -          "description": "Purchasable now; null when the page does not say.",
      -          "examples": [
      -            true
      -          ],
      -          "type": [
      -            "boolean",
      -            "null"
      -          ]
      -        },
      -        "currency": {
      -          "description": "ISO 4217 code; null when not stated.",
      -          "examples": [
      -            "USD"
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "name": {
      -          "description": "The option as the page names it.",
      -          "examples": [
      -            "Natural Black / 10"
      -          ],
      -          "type": "string"
      -        },
      -        "price": {
      -          "description": "Price of this option; null when not stated.",
      -          "examples": [
      -            110
      -          ],
      -          "type": [
      -            "number",
      -            "null"
      -          ]
      -        },
      -        "sku": {
      -          "description": "SKU when the page states one.",
      -          "examples": [
      -            "WR3MNCW100"
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "url": {
      -          "description": "Option-specific URL when the page gives one.",
      -          "examples": [
      -            "https://example.com/products/wool-runner?variant=10"
      -          ],
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "name",
      -        "available",
      -        "availability",
      -        "price",
      -        "currency"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "options_count": {
      -    "description": "How many options the page lists.",
      -    "examples": [
      -      7
      -    ],
      -    "type": "integer"
      -  },
      -  "price": {
      -    "description": "Price of the matched option, else the product's; null when not stated.",
      -    "examples": [
      -      110
      -    ],
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "quantity": {
      -    "description": "The quantity asked for.",
      -    "examples": [
      -      2
      -    ],
      -    "type": [
      -      "integer",
      -      "null"
      -    ]
      -  },
      -  "quantity_ok": {
      -    "description": "Whether that quantity can be ordered; null when the page does not say.",
      -    "examples": [
      -      true
      -    ],
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "ship_to": {
      -    "description": "The country asked for.",
      -    "examples": [
      -      "US"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "ship_to_ok": {
      -    "description": "Whether the page says it delivers there; null when it does not say.",
      -    "examples": [
      -      true
      -    ],
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "shipping": {
      -    "description": "What the page states about shipping or delivery; null unless stated.",
      -    "examples": [
      -      "Free shipping on orders over $75"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "source": {
      -    "description": "Which layer answered: the page's JSON-LD, the Shopify product JSON, Open Graph tags, the model over the rendered page, or nothing usable.",
      -    "enum": [
      -      "jsonld",
      -      "shopify",
      -      "opengraph",
      -      "llm",
      -      "none"
      -    ],
      -    "examples": [
      -      "jsonld"
      -    ],
      -    "type": "string"
      -  },
      -  "title": {
      -    "description": "Product or listing name from the page.",
      -    "examples": [
      -      "Wool Runner"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "url": {
      -    "description": "The page checked.",
      -    "examples": [
      -      "https://example.com/products/wool-runner"
      -    ],
      -    "type": "string"
      -  },
      -  "variant": {
      -    "description": "The variant asked for, as given.",
      -    "examples": [
      -      "size 10"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  }
      -}
    • removedOutput schema / properties / result / required
      Removed value: -[
      -  "url",
      -  "available",
      -  "availability",
      -  "price",
      -  "currency",
      -  "options",
      -  "options_count",
      -  "matched_option",
      -  "quantity_ok",
      -  "ship_to_ok",
      -  "eligibility_notes",
      -  "evidence",
      -  "source",
      -  "javascript_rendered",
      -  "confidence",
      -  "checked_at"
      -]
    • removedOutput schema / properties / status / description
      Removed value: -"Present only on a delivered result."
    • removedOutput schema / properties / worker / description
      Removed value: -"Catalog name of the worker that ran."
    • removedOutput schema / properties / worker / examples
      Removed value: -[
      -  "market.quote"
      -]
    • removedOutput schema / title
      Removed value: -"commerce.availability response"
  2. Changed1 schema field changed
    • addedOutput schema / properties / attribution
      Added value: +{
      +  "description": "Present only when the result's text was machine-translated: the credit to show with it.",
      +  "items": {
      +    "description": "A credit.",
      +    "properties": {
      +      "text": {
      +        "description": "Credit.",
      +        "examples": [
      +          "Translated by Google"
      +        ],
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Link.",
      +        "examples": [
      +          "https://translate.google.com"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "text",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description goes beyond them with genuinely useful operational facts: the $0.50 per-call cost, the extraction sources ('schema.org, Open Graph, Shopify JSON; a browser only when needed'), and the freshness signal (a checked_at stamp plus evidence). It does not mention latency, failure modes, or rate limits, so it is not a 5.

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 purpose and cost are front-loaded and each clause carries content, but the trailing 'Returns: available, availability, price, currency, options[], matched_option, quantity_ok, ship_to_ok, shipping, eligibility_notes[], evidence[], source, confidence, checked_at' enumerates output fields that are already defined by the tool's output schema. That enumeration is wasted tokens in a single dense paragraph.

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 the description does not owe the agent a return-value contract, and annotations plus a 100%-covered schema carry the parameter detail. The description supplies the remaining essentials (sources read, browser fallback, per-call cost, freshness stamp), which is sufficient for a read-only, single-URL query. Missing only explicit sibling routing.

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 the baseline is 3 and the schema already carries the syntax (ISO alpha-2 for ship_to, BCP-47 for language). The description adds some meaning for variant ('which option matches the variant you name') but its input summary omits the language parameter entirely, so it does not fully compensate or exceed the schema.

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 clause states a specific verb and resource ('Product availability and price check: is it in stock and buyable right now') and enumerates the facets (price, options, variant match, ship-to). It is clearly not a shipping-quote tool and not a generic page fetcher, so an agent can place it. It stops short of naming the confused siblings (hubvibe_commerce_shipping, hubvibe_extract_page, hubvibe_fetch_raw), so it earns a 4 rather than a 5.

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?

Usage is implied by the framing ('can this be bought or booked right now') and by the mention of reading product/booking pages, so an agent can infer the trigger. There is no explicit when-not, no prerequisite statement, and no comparison against the overlapping siblings (commerce_shipping, extract_page). Minimum-viable guidance only.

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.