Store Price Tracker
What this MCP does
Tracks online store products, prices, availability, price changes, historical snapshots, and cross-store price differences.
Tools
Input schema
{'type': 'object', 'required': ['stores'], 'properties': {'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Most products listed per section (default 10)'}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'Only products whose title, brand, type or handle contains this text, such as "hoodie"'}, 'stores': {'type': 'array', 'items': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'maxItems': 5, 'minItems': 1, 'description': 'Web addresses of online stores, such as "allbirds.com" or "https://www.gymshark.com". At most 5.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['stores'], 'properties': {'stores': {'type': 'array', 'items': {'type': 'object', 'required': ['query', 'status'], 'properties': {'host': {'type': 'string'}, 'query': {'type': 'string'}, 'store': {'type': 'object', 'properties': {'changes': {'type': 'object', 'properties': {'new': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url', 'available'], 'properties': {'url': {'type': 'string'}, 'type': {'type': ['string', 'null']}, 'price': {'type': ['object', 'null'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}}, 'title': {'type': 'string'}, 'vendor': {'type': ['string', 'null']}, 'variants': {'type': 'array', 'items': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'title': {'type': 'string'}, 'available': {'type': 'boolean'}}}}, 'available': {'type': 'boolean'}, 'compareAt': {'type': ['number', 'null']}, 'variantCount': {'type': 'integer'}}}}, 'removed': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url', 'available'], 'properties': {'url': {'type': 'string'}, 'type': {'type': ['string', 'null']}, 'price': {'type': ['object', 'null'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}}, 'title': {'type': 'string'}, 'vendor': {'type': ['string', 'null']}, 'variants': {'type': 'array', 'items': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'title': {'type': 'string'}, 'available': {'type': 'boolean'}}}}, 'available': {'type': 'boolean'}, 'compareAt': {'type': ['number', 'null']}, 'variantCount': {'type': 'integer'}}}}, 'priceChanges': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'properties': {'to': {'type': ['number', 'null']}, 'from': {'type': ['number', 'null']}, 'variant': {'type': 'string'}, 'compareAtTo': {'type': ['number', 'null']}, 'compareAtFrom': {'type': ['number', 'null']}}}}}}}, 'availabilityChanges': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string'}, 'variants': {'type': 'array', 'items': {'type': 'object', 'properties': {'to': {'type': ['boolean', 'null']}, 'from': {'type': ['boolean', 'null']}, 'variant': {'type': 'string'}}}}}}}}}, 'partial': {'type': 'boolean'}, 'tracked': {'type': 'boolean'}, 'currency': {'type': ['string', 'null']}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url', 'available'], 'properties': {'url': {'type': 'string'}, 'type': {'type': ['string', 'null']}, 'price': {'type': ['object', 'null'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}}, 'title': {'type': 'string'}, 'vendor': {'type': ['string', 'null']}, 'variants': {'type': 'array', 'items': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'title': {'type': 'string'}, 'available': {'type': 'boolean'}}}}, 'available': {'type': 'boolean'}, 'compareAt': {'type': ['number', 'null']}, 'variantCount': {'type': 'integer'}}}}, 'previousDay': {'type': ['string', 'null']}, 'snapshotDay': {'type': 'string'}, 'changeCounts': {'type': 'object', 'properties': {'new': {'type': 'integer'}, 'removed': {'type': 'integer'}, 'priceChanges': {'type': 'integer'}, 'availabilityChanges': {'type': 'integer'}}}, 'productCount': {'type': 'integer'}, 'matchingProducts': {'type': 'integer'}}}, 'status': {'enum': ['ok', 'stale', 'invalid', 'unavailable'], 'type': 'string'}, 'message': {'type': 'string'}}}}}}
Input schema
{'type': 'object', 'required': ['source_store', 'target_store'], 'properties': {'query': {'type': 'string', 'maxLength': 200, 'description': 'Optional text filter for product title, brand, or category, such as "runner" or "sneaker".'}, 'fx_rate': {'type': 'number', 'minimum': 0, 'description': 'Optional manual exchange rate override (source store currency to target currency). When omitted, fetched from ECB reference rates.'}, 'match_by': {'enum': ['title', 'sku', 'handle'], 'type': 'string', 'default': 'title', 'description': 'Product attribute to match on: "title" (normalized title), "sku", or "handle" (default "title").'}, 'min_gap_pct': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Minimum percentage price gap required to include a matched product (e.g. 15 for 15% spread). Default 0.'}, 'source_store': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Web address of the benchmark store, such as "mysneakerstore.com" or "https://store-a.myshopify.com".'}, 'target_store': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Web address of the comparison store, such as "allbirds.com" or "https://boutique-b.com".'}, 'duty_allowance': {'type': 'number', 'minimum': 0, 'description': 'Optional flat customs duty allowance per item in target currency to deduct for net landed margin evaluation. When omitted and include_landed_duty is true, defaults to EU flat duty (€3 converted to target currency).'}, 'target_currency': {'type': 'string', 'maxLength': 3, 'minLength': 3, 'description': 'Optional 3-letter ISO currency code to normalize prices into, such as "USD", "EUR", "GBP" or "JPY". Defaults to target store currency.'}, 'shipping_allowance': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Optional estimated flat shipping allowance per item in target currency to deduct for net landed margin evaluation. Default 0.'}, 'include_landed_duty': {'type': 'boolean', 'default': False, 'description': 'Whether to include estimated EU low-value consignment duty under Council Regulation (EU) 2026/382 for margin estimation.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'source_store', 'target_store', 'matches', 'summary', 'disclaimer'], 'properties': {'status': {'enum': ['ok', 'partial', 'no_matches', 'unavailable'], 'type': 'string'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'source_price', 'target_price', 'price_gap', 'price_gap_pct', 'source_in_stock', 'target_in_stock', 'source_url', 'target_url'], 'properties': {'rate': {'type': 'number'}, 'title': {'type': 'string'}, 'price_gap': {'type': 'number'}, 'rate_date': {'type': 'string'}, 'landed_gap': {'type': 'number'}, 'source_url': {'type': 'string'}, 'target_url': {'type': 'string'}, 'rate_source': {'type': 'string'}, 'source_price': {'type': 'number'}, 'target_price': {'type': 'number'}, 'price_gap_pct': {'type': 'number'}, 'source_currency': {'type': 'string'}, 'source_in_stock': {'type': 'boolean'}, 'target_currency': {'type': 'string'}, 'target_in_stock': {'type': 'boolean'}, 'source_price_local': {'type': 'number'}, 'duty_adjusted_margin': {'type': ['number', 'null']}, 'source_price_converted': {'type': 'number'}}}}, 'message': {'type': 'string'}, 'summary': {'type': 'object', 'required': ['matches_found'], 'properties': {'currency': {'type': 'string'}, 'avg_gap_pct': {'type': 'number'}, 'max_gap_pct': {'type': 'number'}, 'matches_found': {'type': 'integer'}, 'cheaper_at_source': {'type': 'integer'}, 'cheaper_at_target': {'type': 'integer'}, 'total_source_products': {'type': 'integer'}, 'total_target_products': {'type': 'integer'}}}, 'disclaimer': {'type': 'string'}, 'source_store': {'type': 'object', 'required': ['host'], 'properties': {'host': {'type': 'string'}, 'currency': {'type': ['string', 'null']}, 'snapshot_date': {'type': ['string', 'null']}}}, 'target_store': {'type': 'object', 'required': ['host'], 'properties': {'host': {'type': 'string'}, 'currency': {'type': ['string', 'null']}, 'snapshot_date': {'type': ['string', 'null']}}}, 'fx_conversion': {'type': ['object', 'null'], 'properties': {'rate': {'type': 'number'}, 'provider': {'type': 'string'}, 'rate_date': {'type': 'string'}, 'base_currency': {'type': 'string'}, 'quote_currency': {'type': 'string'}}}}}
Input schema
{'type': 'object', 'required': ['ticket'], 'properties': {'ticket': {'type': 'string', 'pattern': '^fb_[0-9a-f]{32}$', 'description': 'The ticket id that submit_feedback returned.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['ticket', 'status'], 'properties': {'note': {'type': 'string'}, 'reply': {'type': ['string', 'null']}, 'status': {'enum': ['pending', 'answered'], 'type': 'string'}, 'ticket': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['store', 'product'], 'properties': {'store': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Web address of the online store, such as "allbirds.com"'}, 'product': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'A product link, its handle, or its title (or part of it)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['query', 'product', 'status'], 'properties': {'host': {'type': 'string'}, 'query': {'type': 'string'}, 'status': {'enum': ['ok', 'ambiguous', 'not_found', 'invalid', 'unavailable'], 'type': 'string'}, 'history': {'type': 'object', 'properties': {'product': {'type': 'object', 'required': ['title', 'url', 'available'], 'properties': {'url': {'type': 'string'}, 'type': {'type': ['string', 'null']}, 'price': {'type': ['object', 'null'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}}, 'title': {'type': 'string'}, 'vendor': {'type': ['string', 'null']}, 'variants': {'type': 'array', 'items': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'title': {'type': 'string'}, 'available': {'type': 'boolean'}}}}, 'available': {'type': 'boolean'}, 'compareAt': {'type': ['number', 'null']}, 'variantCount': {'type': 'integer'}}}, 'variants': {'type': 'array', 'items': {'type': 'object', 'properties': {'points': {'type': 'array', 'items': {'type': 'object', 'required': ['day'], 'properties': {'day': {'type': 'string'}, 'price': {'type': ['number', 'null']}, 'removed': {'type': 'boolean'}, 'available': {'type': ['boolean', 'null']}, 'compareAt': {'type': ['number', 'null']}}}}, 'current': {'type': ['object', 'null'], 'properties': {'price': {'type': 'number'}, 'available': {'type': 'boolean'}}}, 'variant': {'type': 'string'}}}}, 'firstSeen': {'type': 'string'}, 'removedOn': {'type': ['string', 'null']}}}, 'message': {'type': 'string'}, 'product': {'type': 'string'}, 'candidates': {'type': 'array', 'items': {'type': 'string'}}, 'snapshotDay': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'task': {'type': 'string', 'description': 'Alias for query: task phrase to search.'}, 'query': {'type': 'string', 'description': "Optional task keyword or phrase to search tools (e.g. 'recruiter', 'linkedin', 'feedback', 'broken links', 'jobs'). Omit to list all tools."}, 'keyword': {'type': 'string', 'description': 'Alias for query: keyword to search.'}}, 'additionalProperties': True}
Input schema
{'type': 'object', 'required': ['kind', 'message'], 'properties': {'kind': {'enum': ['need_tool', 'need_data', 'bug', 'other'], 'type': 'string', 'description': 'need_tool: a tool you want. need_data: data a tool lacks. bug: something broke. other: anything else about the tools.'}, 'tool': {'type': 'string', 'pattern': '^[A-Za-z0-9_.:-]{1,64}$', 'description': 'Optional: the name of the tool this is about, for example find_tariff_codes.'}, 'message': {'type': 'string', 'maxLength': 1000, 'minLength': 10, 'description': 'What you need or what broke, in plain words, at most 1000 characters. Links, email addresses and phone numbers are removed. Never include secrets or personal details.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['ticket', 'status'], 'properties': {'note': {'type': 'string'}, 'reply': {'type': ['string', 'null']}, 'status': {'enum': ['pending', 'answered'], 'type': 'string'}, 'ticket': {'type': 'string'}}}
Recent tool changes
Similar MCP servers
AgentLot Marketplace
Enables agents and users to discover, bid on, purchase, deliver, and settle paid digital services and compute work.
apex-x1
Provides X1 and Arc token screening, liquidity and exit-risk checks, wallet and bridge data, non-custodial token operations, comm…
SpellBook Finance
Provides Magic: The Gathering and other trading-card market prices, buylist offers, arbitrage analysis, sealed-product EV, seller…
Vendooly
Manages Amazon Seller Central and Amazon Ads data, including product ads, campaigns, keywords, targeting, budgets, and catalog co…
API Direct
Searches and retrieves data from social networks, news and Google services, while also providing Amazon product, seller, ranking,…
Digital Manager Guru
Provides Digital Manager Guru checkout, customer, transaction, subscription, affiliate, coupon, blocklist, and digital-product sa…
Pagar.me
Connects to Pagar.me to manage customers, cards, orders, charges, invoices, payment captures, confirmations, retries, refunds, an…
amazon-product-research-mcp
Researches Amazon products, brands, sellers, buy-box activity, sourcing profitability, category competition, and supplier opportu…