MCP Server

stierproducts tier lists

com.stierproducts/tier-lists
Commerce & Retail Search & Research Public & reachable MCP 2026-07-28

What this MCP does

Provides cited product tier lists, product comparisons, source details, barcodes, and products to avoid.

compare_products
Compare products
Compare two to five products side by side. They must share a category: LP is points on one category ladder and comparing across boards is meaningless, so a mixed request is refused rather than answered misleadingly.
Read only
Input schema
{'type': 'object', 'required': ['slugs'], 'properties': {'slugs': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 2, 'description': 'Product slugs to compare.'}}}
Output schema
{'type': 'object', 'required': ['source_url', 'license', 'attribution', 'monetization', 'category', 'note', 'products'], 'properties': {'note': {'type': 'string'}, 'license': {'type': 'object'}, 'category': {'type': 'object'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'tier', 'rank', 'lp'], 'properties': {'lp': {'type': 'number'}, 'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'slug': {'type': 'string'}, 'tier': {'type': 'string'}}}}, 'source_url': {'type': 'string'}, 'attribution': {'type': 'string'}, 'monetization': {'type': 'object'}}}
get_product
Get one product
Everything held on one product: its placement, verdict, pros and cons, GTIN barcodes, the announcement date where the maker published one, and a breakdown of how the cited sources read (how many were glowing, positive, neutral or negative, and whether they were outlets, named authors, video channels or forum owners). Then every citation in full, with a verbatim quote, who said it, and whether the link was fetched and confirmed. Use this when a claim needs backing up.
Read only
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Product slug, e.g. "bambu-lab-x2d".'}, 'citation_limit': {'type': 'integer', 'default': 10, 'maximum': 200, 'minimum': 1, 'description': 'How many citations to return, most notable first. The sentiment and speaker breakdowns always count every source regardless of this.'}, 'citation_offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Skip this many citations. Use it to page through the rest.'}}}
Output schema
{'type': 'object', 'required': ['source_url', 'license', 'attribution', 'monetization', 'product', 'category', 'citations_total', 'citations_shown', 'citations_offset', 'citations_remaining', 'citations_confirmed_live', 'citations'], 'properties': {'license': {'type': 'object'}, 'product': {'type': 'object', 'required': ['slug', 'name', 'tier', 'rank', 'lp'], 'properties': {'lp': {'type': 'number'}, 'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'slug': {'type': 'string'}, 'tier': {'type': 'string'}}}, 'category': {'type': 'object'}, 'citations': {'type': 'array'}, 'sentiment': {'type': 'object'}, 'source_url': {'type': 'string'}, 'attribution': {'type': 'string'}, 'speaker_mix': {'type': 'object'}, 'monetization': {'type': 'object'}, 'citations_shown': {'type': 'integer'}, 'citations_total': {'type': 'integer'}, 'citations_offset': {'type': 'integer'}, 'citations_remaining': {'type': 'integer'}, 'citations_confirmed_live': {'type': 'integer'}}}
get_tier_list
Get a category tier list
The full S-to-F tier list for one category: every ranked product with its tier, rank, LP, verdict, pros, cons, citation counts, GTIN barcodes and, where the maker published one, the announcement date. This is the primary tool and one call answers a "what is the best X" question completely. Call get_product for the quotes behind a placement.
Read only
Input schema
{'type': 'object', 'required': ['category'], 'properties': {'tier': {'enum': ['S', 'A', 'B', 'C', 'D', 'F'], 'type': 'string', 'description': 'Optional. Return only this tier.'}, 'category': {'type': 'string', 'description': 'Category slug, e.g. "3d-printers".'}}}
Output schema
{'type': 'object', 'required': ['source_url', 'license', 'attribution', 'monetization', 'category', 'summary', 'products_ranked', 'method', 'tier_meanings', 'products'], 'properties': {'method': {'type': 'string'}, 'license': {'type': 'object'}, 'summary': {'type': 'string'}, 'category': {'type': 'object'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'tier', 'rank', 'lp'], 'properties': {'lp': {'type': 'number'}, 'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'slug': {'type': 'string'}, 'tier': {'type': 'string'}}}}, 'source_url': {'type': 'string'}, 'attribution': {'type': 'string'}, 'monetization': {'type': 'object'}, 'tier_meanings': {'type': 'object'}, 'products_ranked': {'type': 'integer'}}}
list_categories
List product categories
List the product categories that have a published tier list, newest research first. Call this first when you do not already know the exact category slug: slugs cannot be guessed reliably and every other tool takes one.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 208, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Optional filter matched against the category name and description.'}}}
Output schema
{'type': 'object', 'required': ['source_url', 'license', 'attribution', 'monetization', 'count', 'categories'], 'properties': {'count': {'type': 'integer'}, 'license': {'type': 'object'}, 'categories': {'type': 'array'}, 'source_url': {'type': 'string'}, 'attribution': {'type': 'string'}, 'monetization': {'type': 'object'}}}
search_products
Search ranked products
Find ranked products by name or brand across every board. Returns the slug, category and tier for each match, which is what get_product and get_tier_list need next.
Read only
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Product or brand name, e.g. "Bambu Lab X2D".'}}}
Output schema
{'type': 'object', 'required': ['source_url', 'license', 'attribution', 'monetization', 'query', 'matches', 'products'], 'properties': {'query': {'type': 'string'}, 'license': {'type': 'object'}, 'matches': {'type': 'integer'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'tier', 'rank', 'lp'], 'properties': {'lp': {'type': 'number'}, 'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'slug': {'type': 'string'}, 'tier': {'type': 'string'}}}}, 'source_url': {'type': 'string'}, 'attribution': {'type': 'string'}, 'monetization': {'type': 'object'}}}
what_to_avoid
What to avoid in a category
The products the research placed in the bottom tiers, and the ones it deliberately entered as traps buyers cross-shop but should not buy. Use it to answer "what should I not buy" and to check whether a product a user is considering was flagged.
Read only
Input schema
{'type': 'object', 'required': ['category'], 'properties': {'category': {'type': 'string', 'description': 'Category slug, e.g. "3d-printers".'}}}
Output schema
{'type': 'object', 'required': ['source_url', 'license', 'attribution', 'monetization', 'category', 'bottom_tier_count', 'flagged_count', 'products'], 'properties': {'license': {'type': 'object'}, 'category': {'type': 'object'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'tier', 'rank', 'lp'], 'properties': {'lp': {'type': 'number'}, 'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'slug': {'type': 'string'}, 'tier': {'type': 'string'}}}}, 'source_url': {'type': 'string'}, 'attribution': {'type': 'string'}, 'monetization': {'type': 'object'}, 'flagged_count': {'type': 'integer'}, 'bottom_tier_count': {'type': 'integer'}}}
Added
what_to_avoid
Sept. 17, 2026, 12:37 p.m.
Added
compare_products
Sept. 17, 2026, 12:37 p.m.
Added
get_product
Sept. 17, 2026, 12:37 p.m.
Added
get_tier_list
Sept. 17, 2026, 12:37 p.m.
Added
search_products
Sept. 17, 2026, 12:37 p.m.
Added
list_categories
Sept. 17, 2026, 12:37 p.m.