Skip to main content
Glama

Product Page to JSON

universal_product_url_to_json
Read-only

Convert a product detail URL into structured JSON containing price, stock, variants, ratings, and shipping evidence without a browser; missing facts return null.

Instructions

Returns structured public evidence and explicit unknowns. Product page to JSON: price, stock, variants, ratings and shipping evidence from JSON-LD, Microdata and OpenGraph, without a browser. Missing facts are null. $0.002 per result. Use for one product detail URL; use agentic_shelf_schema_comparator for a cross-store comparison or muse_agentic_store_readiness_auditor for a store-wide discovery audit.

Input Schema

NameRequiredDescriptionDefault
contextNoOptional. A few words on why you are calling this tool. Recorded without your identity to improve the tools; leave out personal data.
product_urlYesPublic HTTP(S) product detail URL to extract structured product evidence from; use a product page rather than a store homepage.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.0.0
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Optional. A few words on why you are calling this tool. Recorded without your identity to improve the tools; leave out personal data.",
      +  "type": "string"
      +}
    • addedInput schema / properties / product_url / description
      Added value: +"Public HTTP(S) product detail URL to extract structured product evidence from; use a product page rather than a store homepage."
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "description": "Only status=ok is charged. Diagnostic results may omit result fields; unknown facts are null.",
      +    "properties": {
      +      "agentic_checkout_supported": {
      +        "properties": {
      +          "paypal": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "shop_pay": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "stripe_link": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "ucp": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "ucp",
      +          "stripe_link",
      +          "shop_pay",
      +          "paypal"
      +        ],
      +        "type": "object"
      +      },
      +      "aggregate_rating": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "brand": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "checkout_hints": {
      +        "properties": {
      +          "paypal": {
      +            "type": "boolean"
      +          },
      +          "shop_pay": {
      +            "type": "boolean"
      +          },
      +          "stripe_link": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "stripe_link",
      +          "shop_pay",
      +          "paypal"
      +        ],
      +        "type": "object"
      +      },
      +      "currency": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "domain": {
      +        "type": "string"
      +      },
      +      "error_reason": {
      +        "type": "string"
      +      },
      +      "extraction_source": {
      +        "type": "string"
      +      },
      +      "in_stock": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "limitations": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "price": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "return_policy": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "review_count": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "shipping_summary": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "status": {
      +        "enum": [
      +          "ok",
      +          "no_data",
      +          "unreachable"
      +        ],
      +        "type": "string"
      +      },
      +      "structured_fields": {
      +        "properties": {
      +          "aggregateRating": {
      +            "type": "boolean"
      +          },
      +          "availability": {
      +            "type": "boolean"
      +          },
      +          "hasMerchantReturnPolicy": {
      +            "type": "boolean"
      +          },
      +          "offers": {
      +            "type": "boolean"
      +          },
      +          "price": {
      +            "type": "boolean"
      +          },
      +          "product_json_ld": {
      +            "type": "boolean"
      +          },
      +          "shippingDetails": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "product_json_ld",
      +          "offers",
      +          "price",
      +          "availability",
      +          "shippingDetails",
      +          "hasMerchantReturnPolicy",
      +          "aggregateRating"
      +        ],
      +        "type": "object"
      +      },
      +      "title": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "url": {
      +        "type": "string"
      +      },
      +      "variants": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "domain",
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "code": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "status": {
      +        "maximum": 599,
      +        "minimum": 400,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "code"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / description
      Removed value: -"Only status=ok is charged. Diagnostic results may omit result fields; unknown facts are null."
    • removedOutput schema / properties
      Removed value: -{
      -  "agentic_checkout_supported": {
      -    "properties": {
      -      "paypal": {
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "shop_pay": {
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "stripe_link": {
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "ucp": {
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "ucp",
      -      "stripe_link",
      -      "shop_pay",
      -      "paypal"
      -    ],
      -    "type": "object"
      -  },
      -  "aggregate_rating": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "brand": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "checkout_hints": {
      -    "properties": {
      -      "paypal": {
      -        "type": "boolean"
      -      },
      -      "shop_pay": {
      -        "type": "boolean"
      -      },
      -      "stripe_link": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "stripe_link",
      -      "shop_pay",
      -      "paypal"
      -    ],
      -    "type": "object"
      -  },
      -  "currency": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "domain": {
      -    "type": "string"
      -  },
      -  "error_reason": {
      -    "type": "string"
      -  },
      -  "extraction_source": {
      -    "type": "string"
      -  },
      -  "in_stock": {
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "limitations": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "price": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "return_policy": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "review_count": {
      -    "type": [
      -      "number",
      -      "null"
      -    ]
      -  },
      -  "shipping_summary": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "status": {
      -    "enum": [
      -      "ok",
      -      "no_data",
      -      "unreachable"
      -    ],
      -    "type": "string"
      -  },
      -  "structured_fields": {
      -    "properties": {
      -      "aggregateRating": {
      -        "type": "boolean"
      -      },
      -      "availability": {
      -        "type": "boolean"
      -      },
      -      "hasMerchantReturnPolicy": {
      -        "type": "boolean"
      -      },
      -      "offers": {
      -        "type": "boolean"
      -      },
      -      "price": {
      -        "type": "boolean"
      -      },
      -      "product_json_ld": {
      -        "type": "boolean"
      -      },
      -      "shippingDetails": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "product_json_ld",
      -      "offers",
      -      "price",
      -      "availability",
      -      "shippingDetails",
      -      "hasMerchantReturnPolicy",
      -      "aggregateRating"
      -    ],
      -    "type": "object"
      -  },
      -  "title": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "url": {
      -    "type": "string"
      -  },
      -  "variants": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "domain",
      -  "status"
      -]
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, it discloses behavior that matters for planning: no browser is used, missing facts are returned as null, and each result costs $0.002. The null-vs-omitted contract and per-call price are exactly the kind of operational context annotations cannot express.

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?

Information is front-loaded and every clause carries substance (fields, sources, null contract, price, alternatives). The opening 'Returns structured public evidence and explicit unknowns' is somewhat abstract preamble before the concrete restatement, a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-URL extraction tool with full schema coverage, annotations, and an output schema, the description supplies everything else an agent needs: data sources, null semantics, cost, no-browser constraint, and routing to alternatives.

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 coverage is 100%, so both parameters are already fully documented in the input schema, including the product-page-vs-homepage hint. The description reinforces 'one product detail URL' but adds no format or syntax detail beyond the schema, so baseline 3 applies.

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?

States a specific verb and resource (product page URL -> structured JSON) and enumerates the extracted fields (price, stock, variants, ratings, shipping) plus the source formats (JSON-LD, Microdata, OpenGraph). It explicitly names the two sibling tools it is not, so an agent can disambiguate without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear positive condition ('one product detail URL') and two explicit alternatives with their selecting conditions (cross-store comparison -> agentic_shelf_schema_comparator; store-wide audit -> muse_agentic_store_readiness_auditor). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.