MCP Server

shopgraph

io.github.laundromatic/shopgraph
Commerce & Retail Data & Analytics Public & reachable MCP 2025-11-25

What this MCP does

Extracts structured product information from URLs or HTML and scores product data completeness and agent-readiness.

enrich_basic
Extract basic product attributes from a URL (name, price, brand, availability). Faster and cheaper than enrich_product. 50 free calls/month — no payment needed. Paid: $0.01 per call after free tier. Each field carries verification metadata in _shopgraph: provenance (field_method — which source/tier produced it: schema_org, llm, or hybrid), freshness (field_freshness — recency + volatility_class, for volatile fields like price & availability), and abstain (a field is null when ShopGraph cannot verify it on the page). Rely on provenance, freshness, and the abstain signal to decide what to trust.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Product page URL to extract data from'}, 'format': {'enum': ['default', 'ucp'], 'type': 'string', 'default': 'default', 'description': 'Output format. "ucp" returns UCP line_item format. Default: "default".'}, 'force_refresh': {'type': 'boolean', 'description': 'Bypass cache entirely. Always triggers live extraction. Costs 3x credits.'}, 'include_score': {'type': 'boolean', 'description': 'Include agent-readiness score in response.'}, 'payment_method_id': {'type': 'string', 'description': 'Stripe payment method ID for MPP payment'}, 'minimum_confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "Auto-refresh if any cached field's DECAYED confidence falls below this threshold. Costs 2x credits when refresh triggers, 0.25x on cache hit."}, 'strict_confidence_threshold': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Fields below this confidence will be nulled with explanation. Default: off.'}}, 'additionalProperties': False}
enrich_html
Extract product data from raw HTML you already have (no HTTP fetch needed). Ideal when using Bright Data, Firecrawl, or any scraping API — pipe the HTML through ShopGraph for structured product data. Uses schema.org + LLM fallback. Costs $0.02 per call (cached results are free). Each field carries verification metadata in _shopgraph: provenance (field_method — which source/tier produced it: schema_org, llm, or hybrid), freshness (field_freshness — recency + volatility_class, for volatile fields like price & availability), and abstain (a field is null when ShopGraph cannot verify it on the page). Rely on provenance, freshness, and the abstain signal to decide what to trust.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['html', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Original URL of the page (used for context and caching)'}, 'html': {'type': 'string', 'description': 'Raw HTML content of the product page'}, 'format': {'enum': ['default', 'ucp'], 'type': 'string', 'default': 'default', 'description': 'Output format. "ucp" returns UCP line_item format. Default: "default".'}, 'force_refresh': {'type': 'boolean', 'description': 'Bypass cache entirely. Always triggers live extraction. Costs 3x credits.'}, 'include_score': {'type': 'boolean', 'description': 'Include agent-readiness score in response.'}, 'payment_method_id': {'type': 'string', 'description': 'Stripe payment method ID for MPP payment'}, 'minimum_confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "Auto-refresh if any cached field's DECAYED confidence falls below this threshold."}, 'strict_confidence_threshold': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Fields below this confidence will be nulled with explanation. Default: off.'}}, 'additionalProperties': False}
enrich_product
Extract comprehensive product data from a URL including name, price, brand, images, availability, and more. Uses schema.org structured data when available, with LLM fallback. Costs $0.02 per call (cached results are free). Each field carries verification metadata in _shopgraph: provenance (field_method — which source/tier produced it: schema_org, llm, or hybrid), freshness (field_freshness — recency + volatility_class, for volatile fields like price & availability), and abstain (a field is null when ShopGraph cannot verify it on the page). Rely on provenance, freshness, and the abstain signal to decide what to trust.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Product page URL to extract data from'}, 'format': {'enum': ['default', 'ucp'], 'type': 'string', 'default': 'default', 'description': 'Output format. "ucp" returns UCP line_item format. Default: "default".'}, 'force_refresh': {'type': 'boolean', 'description': 'Bypass cache entirely. Always triggers live extraction. Costs 3x credits.'}, 'include_score': {'type': 'boolean', 'description': 'Include agent-readiness score in response.'}, 'payment_method_id': {'type': 'string', 'description': 'Stripe payment method ID for MPP payment'}, 'minimum_confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "Auto-refresh if any cached field's DECAYED confidence falls below this threshold. Costs 2x credits when refresh triggers, 0.25x on cache hit."}, 'strict_confidence_threshold': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Fields below this confidence will be nulled with explanation. Default: off.'}}, 'additionalProperties': False}
score_product
Extract product data and return agent-readiness score (0-100). Scores structured data completeness, semantic richness, UCP compatibility, pricing clarity, and inventory signals. Full scoring breakdown included.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Product page URL to extract and score'}, 'format': {'enum': ['default', 'ucp'], 'type': 'string', 'default': 'default', 'description': 'Output format. "ucp" returns UCP line_item format. Default: "default".'}, 'payment_method_id': {'type': 'string', 'description': 'Stripe payment method ID for MPP payment'}, 'strict_confidence_threshold': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Fields below this confidence will be nulled with explanation. Default: off.'}}, 'additionalProperties': False}
Added
score_product
Sept. 17, 2026, 12:43 p.m.
Added
enrich_html
Sept. 17, 2026, 12:43 p.m.
Added
enrich_basic
Sept. 17, 2026, 12:43 p.m.
Added
enrich_product
Sept. 17, 2026, 12:43 p.m.