stierproducts tier lists
Server Details
S-to-F tier lists for 208 product categories. Every placement cited, with barcodes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- stierproducts/mcp
- GitHub Stars
- 0
- Server Listing
- com.stierproducts/tier-lists
Available Tools
6 toolscompare_productsCompare productsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slugs | Yes | Product slugs to compare. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| license | Yes | |
| category | Yes | |
| products | Yes | |
| source_url | Yes | |
| attribution | Yes | |
| monetization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds beyond that by disclosing that the tool will refuse (not answer misleadingly) if products lack a shared category, which is a behavioral trait not captured in annotations. A 4 is appropriate as it adds meaningful context without covering all possible edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the core action, and the second provides a crucial constraint. Zero wasted words, front-loaded with purpose, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, 100% schema coverage, no nested objects, clear annotations, and an output schema), the description is complete. It covers the purpose, constraints, and refusal behavior, leaving no significant gaps for an agent to misinterpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'slugs' parameter is described as 'Product slugs to compare'), so the baseline is 3. The description adds minimal extra meaning beyond the schema, only implying that slugs must be from a shared category. The description does not elaborate on format or validation, but the schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compare') and resource ('two to five products side by side'), clearly distinguishing it from siblings like 'get_product' (single product) and 'search_products' (search). It also explicitly states a constraint: they must share a category, preventing confusion with cross-category queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (compare 2-5 products) and when not to use it ('a mixed request is refused'), providing clear exclusion criteria. It also references sibling behavior implicitly by noting that comparing across boards is meaningless, helping the agent avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productGet one productARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Product slug, e.g. "bambu-lab-x2d". | |
| citation_limit | No | How many citations to return, most notable first. The sentiment and speaker breakdowns always count every source regardless of this. | |
| citation_offset | No | Skip this many citations. Use it to page through the rest. |
Output Schema
| Name | Required | Description |
|---|---|---|
| license | Yes | |
| product | Yes | |
| category | Yes | |
| citations | Yes | |
| sentiment | No | |
| source_url | Yes | |
| attribution | Yes | |
| speaker_mix | No | |
| monetization | Yes | |
| citations_shown | Yes | |
| citations_total | Yes | |
| citations_offset | Yes | |
| citations_remaining | Yes | |
| citations_confirmed_live | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true and destructiveHint: false, which align with the description of a retrieval tool. The description adds value by detailing the depth of data returned (e.g., sentiment breakdowns, verbatim quotes) and mention of citation pagination via offset. This goes beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense paragraph that front-loads the purpose and cascades into details. Every sentence adds value, but the length is slightly verbose with a very long list of included fields, which could be more terse. Still efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description does not need to detail return types. It covers the key inputs and the richness of the output, with pagination hints. The only gap is the lack of mention about required permissions or data freshness, but with readOnlyHint set, it's acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage: slug is required, citation_limit and citation_offset have defaults and bounds. The description does not add significant meaning beyond what the schema offers, but it does hint at how citation_limit affects the breakdown ('always count every source regardless of this'), which is a minor addition. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it retrieves 'one product' with extensive details like placement, verdict, pros and cons, GTIN barcodes, announcement date, breakdown of source sentiment, and full citations. This clearly distinguishes it from siblings like search_products (which would find products) or compare_products (which would compare).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description ends with 'Use this when a claim needs backing up,' providing a specific use case. However, it does not explicitly state when not to use it or mention alternatives among siblings, such as using get_tier_list for a simpler overview. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tier_listGet a category tier listARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Optional. Return only this tier. | |
| category | Yes | Category slug, e.g. "3d-printers". |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| license | Yes | |
| summary | Yes | |
| category | Yes | |
| products | Yes | |
| source_url | Yes | |
| attribution | Yes | |
| monetization | Yes | |
| tier_meanings | Yes | |
| products_ranked | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context: it returns a comprehensive set of fields including optional announcement dates and lists specific data points, which helps the agent understand the output richness without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences. The first defines the output scope and content; the second establishes hierarchy with a sibling tool. Every word earns its place, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with a clear output schema, the description fully explains what is returned, how it fits among siblings, and when to use it. No gaps in guidance or behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema descriptions already explain the parameters (category slug, optional tier filter). The description does not add significant new semantic information beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'the full S-to-F tier list for one category' with specific fields, and distinguishes itself as 'the primary tool' that answers 'what is the best X' completely, differentiating it from siblings like get_product and search_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'This is the primary tool' and advises 'Call get_product for the quotes behind a placement,' providing a clear alternative. It implies when to use this tool (for a full tier list), though it does not explicitly mention when to use compare_products or other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList product categoriesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Optional filter matched against the category name and description. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| license | Yes | |
| categories | Yes | |
| source_url | Yes | |
| attribution | Yes | |
| monetization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds value by disclosing the sort order ('newest research first'), which is not in annotations and helps set correct expectations for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence front-loads the primary functionality and sort behavior, the second sentence provides critical usage guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are documented. With two simple parameters, no nested objects, and clear annotations, the description covers behavior (list, filter, sort) and usage context (prerequisite slug discovery) completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only query has a description), so the baseline is 3. The description does not add additional parameter details beyond what the schema provides, but the non-parameter context (sort order, usage guidance) compensates marginally.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists categories with published tier lists, newest first. It differentiates itself from siblings by establishing that this tool provides valid category slugs, which are prerequisites for other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs the agent to 'call this first' when the exact slug is unknown, and explains why slugs cannot be guessed reliably. This provides decisive when-to-use guidance and eliminates ambiguity with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch ranked productsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Product or brand name, e.g. "Bambu Lab X2D". |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| license | Yes | |
| matches | Yes | |
| products | Yes | |
| source_url | Yes | |
| attribution | Yes | |
| monetization | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the agent knows this is a safe, non-destructive, closed-world read operation. The description adds value by revealing that the search is across every board, and that the output is ranked. However, it does not describe pagination behavior, ordering details, or what happens if the query matches many products. For a search tool, this is adequate but not highly transparent beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that conveys purpose, scope, return values, and tool chaining. No word is wasted. It is front-loaded and highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low parameter count (2), high schema coverage for the required parameter, clear annotations (read-only, non-destructive, closed-world), and the existence of an output schema, the description is complete. It explains the search scope (all boards), the returned fields, and how the output connects to sibling tools. The agent has sufficient information to use and chain this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (2/4 properties described—only 'query' has a schema description). The description adds value by explaining that 'name or brand' are the searchable fields, which is more specific than the schema's generic 'Product or brand name' and reinforces the query's scope. It does not add detail about the 'limit' parameter, but the schema already provides a default and bounds. The description compensates for the partial schema coverage by clarifying search semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('Find') and resource ('ranked products'), and distinguishes the tool by noting it searches by name or brand across every board. It explicitly states what it returns (slug, category, tier) and hints at its role as a prerequisite for 'get_product' and 'get_tier_list', differentiating it from siblings like 'get_product' or 'what_to_avoid'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains when to use this tool: to find products by name or brand across all boards. It tells the agent that the returned values are what 'get_product' and 'get_tier_list' need next, effectively providing a chaining pattern and an implicit alternative (those tools are for after you have the identifiers). This is explicit usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
what_to_avoidWhat to avoid in a categoryARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category slug, e.g. "3d-printers". |
Output Schema
| Name | Required | Description |
|---|---|---|
| license | Yes | |
| category | Yes | |
| products | Yes | |
| source_url | Yes | |
| attribution | Yes | |
| monetization | Yes | |
| flagged_count | Yes | |
| bottom_tier_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: it explains the tool identifies 'bottom tiers' and 'traps' placed by research, clarifying the selection criteria. Annotations already indicate readOnlyHint=true, so no side effects are expected. No contradictions. The description enriches the safety profile with specific data provenance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The first sentence defines the data content, the second tells the agent exactly when to call the tool. Front-loaded with the most critical information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema (not shown but present), the description adequately explains what the tool returns (bottom tiers, traps) and the intended queries. It does not discuss ordering or pagination, but given the output schema likely handles that, this is sufficient. The description is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the single parameter 'category' well-described as a slug. The description does not add new parameter-level details (like format constraints beyond the slug example) but clarifies the role of the parameter in the context of avoidance. Baseline of 3 is appropriate since the schema already fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as returning products in bottom tiers and 'traps' that buyers should avoid. It uses specific verbs ('placed', 'deliberately entered', 'should not buy') and distinguishes from siblings like get_tier_list which would cover all tiers. The resource is the 'what to avoid' list for a category, which is a distinct concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states use cases: answering 'what should I not buy' and checking if a considered product was flagged. It implies when to use (for avoidance questions) but does not explicitly state when not to use or name alternatives among siblings (e.g., get_tier_list for all tiers). This is clear enough for an agent to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
- First observed
compare_products - First observed
get_product - First observed
get_tier_list - First observed
list_categories - First observed
search_products - First observed
what_to_avoid
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Consensus rankings for 75,000+ products across 2,600+ niches.
4,764 products, 626 categories: sourced prices, dated price history, independent-test coverage.
Software entry prices for 16 categories, with ratings and true 3-year cost. CC BY 4.0
Agent-native product catalog: 300M+ products, 150,000+ stores, deliver_to ranking.
Related MCP Servers
- AlicenseAqualityAmaintenanceProduct evaluation MCP server for US packaged food. Health scores, ingredient safety, regulatory flags, recall history, corporate ownership.21MIT
- AlicenseAqualityBmaintenanceCross-channel CPG pricing intelligence — Amazon category benchmarks (percentile rank, trend, tier breakdown) for multi-channel brands selling on Amazon plus retail/DTC/wholesale. Six tools across 800+ tracked products in Grocery, Health & Beauty, Household, and Pet Supplies.6MIT
- FlicenseNot gradedqualityCmaintenanceWhat ChatGPT, Claude, Gemini & Grok agree is the best product, tool, or service for any "best X for Y" need — continuously re-polled rankings with a dated verdict and a public poll audit trail. Excludes medical, financial, and legal advice.-
- AlicenseAqualityCmaintenanceSearch URDB's product integrity database — integrity scores, enshittification events, warranty cuts, and material downgrades across consumer products. Sourced and evidence-backed.4702MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct operation: discovery (list_categories, search_products), comprehensive ranking (get_tier_list), deep dive (get_product), comparison (compare_products), and cautionary (what_to_avoid). No two tools serve the same purpose, and descriptions clarify boundaries.
Most tools follow a consistent verb_noun pattern (compare_products, get_product, get_tier_list, list_categories, search_products), but what_to_avoid breaks the pattern. The deviation is minor and the name is still clear.
Six tools is well-scoped for a tier-list research server, covering discovery, lookup, comparison, and filtering without bloat. Each tool earns its place.
The surface fully covers the read-only domain: category discovery, full tier lists, individual product details, search, comparison, and avoidance recommendations. No obvious gaps or dead ends.