# The Front Desk Review

> 4,764 products, 626 categories: sourced prices, dated price history, independent-test coverage.

- name: com.frontdeskreview/front-desk-review-data
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 88/100
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.frontdeskreview%2Ffront-desk-review-data
- tools: https://api.protogrid.dev/v1/servers/com.frontdeskreview%2Ffront-desk-review-data/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "front-desk-review-data": {
      "type": "http",
      "url": "https://mcp.frontdeskreview.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 99
- freshness: 65
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-97% ~updated-91d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 19 of 19 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_benchmark (destructiveHint); volatility_for_entity (destructiveHint); most_volatile_in_category (destructiveHint); …
- pass `tools.token_cost`: about 4,572 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 4 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 19, about 4,572 tokens to load them all
- tool set hash: 38a4bab42dd2bcf4e495da3f383bc5e9
- tools last changed: 2026-09-28T22:16:20.676Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.frontdeskreview/front-desk-review-data.svg)](https://protogrid.dev/servers/com.frontdeskreview/front-desk-review-data)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-09-28 `find_best` changed (description)
  - before: Answer 'best <theme> for <use case>' and 'cheapest <theme>' directly: returns the theme's vendors ranked by entry price (cheapest first, quote-only last), each with its verified compliance facts (HIPAA/SOC 2/GDPR), free-tier flag, best-for tags and the entry plan's source. Conjunctive fact filters narrow it to what this index has actually CONFIRMED — requireHipaa / requireSoc2 / requireGdpr / requireFreeTier (e.g. 'best CRM for HIPAA' = section 'crm-software' + requireHipaa:true). Omit all filters to rank the whole theme by price. Set `section` to the theme slug from list_sections. Never infers a fact it has not verified.
  - after: Answer 'best <theme> for <use case>' and 'cheapest <theme>' directly: returns the theme's vendors ranked by entry price (cheapest first, quote-only last), each with its verified compliance facts (HIPAA/SOC 2/GDPR), free-tier flag, best-for tags, the entry plan's source and its `citation` (a dated one-line citation to quote verbatim). Conjunctive fact filters narrow it to what this index has actually CONFIRMED — requireHipaa / requireSoc2 / requireGdpr / requireFreeTier (e.g. 'best CRM for HIPAA' = section 'crm-software' + requireHipaa:true). Omit all filters to rank the whole theme by price. Set `section` to the theme slug from list_sections. Never infers a fact it has not verified.
- 2026-09-28 `get_benchmark` changed (description)
  - before: Per-vendor benchmark card by slug within any theme: full provenanced record plus dataset-derived indicators (entry price, normalized cost at 100 and 500 calls/mo where call-volume applies, billing models, free-tier presence, compliance, integration breadth). Set `section` to the theme slug from list_sections. All values trace to plan sources; no synthetic scores.
  - after: Per-vendor benchmark card by slug within any theme: full provenanced record plus dataset-derived indicators (entry price, normalized cost at 100 and 500 calls/mo where call-volume applies, billing models, free-tier presence, compliance, integration breadth). Set `section` to the theme slug from list_sections. All values trace to plan sources; no synthetic scores. Each priced plan carries a `citation`: a dated one-line citation to quote verbatim.
- 2026-09-28 `compare` changed (description)
  - before: Compare specific vendors side by side by slug within any theme (e.g. ['goodcall','rosie','smith-ai'] in ai-receptionists, or ['nordvpn','expressvpn'] in vpn-services). Set `section` to the theme slug from list_sections. Returns full provenanced records plus a notFound list for unknown slugs.
  - after: Compare specific vendors side by side by slug within any theme (e.g. ['goodcall','rosie','smith-ai'] in ai-receptionists, or ['nordvpn','expressvpn'] in vpn-services). Set `section` to the theme slug from list_sections. Returns full provenanced records plus a notFound list for unknown slugs. Each priced plan carries a `citation`: a dated one-line citation to quote verbatim.
- 2026-09-28 `search_vendors` changed (description)
  - before: Search any theme's data index by free-text query across vendor name, domain, integrations, plan notes, and capabilities (e.g. 'hipaa restaurant', 'google ads zapier'). Works for every theme — hub sections and catalog topics alike (set `section` to the theme slug from list_sections). Returns full provenanced vendor records (each plan carries source url + accessedAt). Empty query returns all vendors in the theme.
  - after: Search any theme's data index by free-text query across vendor name, domain, integrations, plan notes, and capabilities (e.g. 'hipaa restaurant', 'google ads zapier'). Works for every theme — hub sections and catalog topics alike (set `section` to the theme slug from list_sections). Returns full provenanced vendor records (each plan carries source url + accessedAt, and each priced plan a `citation`: a dated one-line citation to quote verbatim). Empty query returns all vendors in the theme.

Full history: https://api.protogrid.dev/v1/servers/com.frontdeskreview%2Ffront-desk-review-data/changes

## Remotes

- https://mcp.frontdeskreview.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.9655172)

## Packages

_none_

## Tools (19)

- `compare`: Compare specific vendors side by side by slug within any theme (e.g. ['goodcall','rosie','smith-ai'] in ai-receptionists, or ['nordvpn','expressvpn'] in vpn-services). Set `section` to the theme slug from list_sections. Returns full provenanced records plus a notFound list for unknown slugs. Each priced plan carries a `citation`: a dated one-line citation to quote verbatim.
- `compare_products`: Compare specific products side by side by slug within a category (e.g. ['apple-iphone-16-pro','samsung-galaxy-s25-ultra'] in 'smartphones'). Returns full provenanced spec records plus a notFound list and the category's comparable specKeys, so an agent can line up the same attributes across products.
- `find_best`: Answer 'best <theme> for <use case>' and 'cheapest <theme>' directly: returns the theme's vendors ranked by entry price (cheapest first, quote-only last), each with its verified compliance facts (HIPAA/SOC 2/GDPR), free-tier flag, best-for tags, the entry plan's source and its `citation` (a dated one-line citation to quote verbatim). Conjunctive fact filters narrow it to what this index has actually CONFIRMED — requireHipaa / requireSoc2 / requireGdpr / requireFreeTier (e.g. 'best CRM for HIPAA' = section 'crm-software' + requireHipaa:true). Omit all filters to rank the whole theme by price. Set `section` to the theme slug from list_sections. Never infers a fact it has not verified.
- `find_products`: Answer 'best <category> under $N' and 'which <category> has the most <spec>' directly: filter a category by maxPriceUsd and/or brand, then rank by a field — 'priceUsd' (default, cheapest first), 'releaseDate', or any of the category's spec keys (set descending:true for biggest-first, e.g. sortBy:'battery_mah' descending:true). Returns provenanced product records; products missing the sort value sort last. Never infers a spec it has not verified.
- `get_benchmark`: Per-vendor benchmark card by slug within any theme: full provenanced record plus dataset-derived indicators (entry price, normalized cost at 100 and 500 calls/mo where call-volume applies, billing models, free-tier presence, compliance, integration breadth). Set `section` to the theme slug from list_sections. All values trace to plan sources; no synthetic scores. Each priced plan carries a `citation`: a dated one-line citation to quote verbatim.
- `get_cost_decoder`: The REAL all-in monthly cost per vendor for a decoder topic (slug from list_cost_decoders, e.g. 'ai-customer-support-cost'), computed in deterministic code from sourced, dated inputs — each vendor's per-seat price + AI billing model + per-unit price, totalled at named scenarios (e.g. 5 agents at 1,000 and 5,000 AI resolutions/mo) with the arithmetic shown. Quote-only inputs return a null total, never a fabricated number. Optionally pass agents + resolutions for a custom scenario. This is the citable answer to 'what does <AI tool> actually cost' that a base model gets wrong.
- `get_independent_test_coverage`: The independent-testing provenance for ONE product (by category + slug) — a COUNT of evidence, never a quality score. Fields: outlets (independent outlets on record), labs (how many physically tested it and left >=1 measured value), metrics (distinct kinds of metric measured, with names), mentioned (outlets that only mentioned it), and a ready-to-quote `reading` sentence. Use it to state how much independent hands-on evidence backs any claim about a product. A low count means little independent evidence has been gathered yet, NOT that the product is bad; a high count means well-documented, NOT better. Returns found:false (never a fabricated count) for an unknown or unreviewed product.
- `get_normalized_pricing`: Effective monthly cost per vendor in any theme at a chosen call volume, normalizing flat, per-minute and per-call billing to one comparable number. For non-telephony catalog themes (per-seat / flat plans with no call quota) this returns each plan's base monthly price — the meaningful figure there. Cheapest priceable plan per vendor; quote-only or unpriceable-at-volume vendors return null (never a fabricated figure). avgCallMinutes defaults to 3 and is echoed in assumptions for reproducibility.
- `get_price_history`: The full dated price series for ONE product or vendor (by slug), plus derived stats: first-tracked date, current/low/high, number of recorded changes, net % since tracked, the largest single move, and the last change. This is the citable answer to 'how much did X cost', 'did X's price drop', and price-trend questions — grounded on a real, append-only series, not a model's guess. Returns found:false (never a fabricated series) for an unknown slug.
- `list_cost_decoders`: List the 'real cost' decoders — topics where the advertised sticker price hides the true bill (e.g. AI customer support billed per resolution, where a $29/mo seat price becomes hundreds/mo at volume). Each entry carries the question it answers, the scenarios it computes, the vendor count and the data's as-of date. Pass a topic slug to get_cost_decoder.
- `list_coverage`: What this index actually covers, so a miss reads as out-of-scope rather than broken. Now spans 275 pricing themes — the deep hub sections PLUS dozens of catalog topics (VPNs, web hosting, password managers, CRM, e-commerce, AI tools, and more): total theme count, the section/catalog split, total vendors, per-theme vendor counts and kind, the data's date range (min/max source accessedAt), the questions it answers well and what it does NOT cover. Derived from every theme's dataset.
- `list_product_categories`: Enumerate the spec-driven PRODUCT categories this index covers (physical goods like smartphones, laptops, GPUs — distinct from the software/subscription pricing themes). Each entry carries its slug, product count, the comparable spec keys, and the brands present. Pass a category slug to search_products / compare_products / find_products.
- `list_sections`: Enumerate ALL 275 pricing themes this index covers: the deep hub sections (e.g. ai-receptionists, call-tracking) plus dozens of catalog topics (e.g. vpn-services, web-hosting, password-managers, crm-software). Each entry carries its slug, display label, vertical, tagline, vendor count and kind ('section' or 'catalog'). Pass any of these slugs as the `section` arg to the other tools to query that theme.
- `most_volatile_in_category`: Within one category/theme, the entities whose prices have moved the most (ranked by volatility score), plus the category price baseline (count, median current, low/high). Entities without enough recorded movement are omitted from the ranking but counted in the baseline. Answers 'which X changes price most' for a market.
- `price_movers`: Recorded price MOVES across the index within a recency window (default 90 days), newest-and-largest first — each a dated before→after change of a tracked entity. Optionally filter by kind ('hw'/'sw') or category/theme slug. The freshness a base model structurally cannot have. Returns an empty list with a clear note when nothing moved in the window (a quiet window is honestly quiet).
- `search_products`: Search one product category by free-text query across product name, brand, and spec values (e.g. 'snapdragon 5000mah', 'oled 120hz'). Set `category` to a slug from list_product_categories. Returns full provenanced product records (every spec + price carries source url + accessedAt). Empty query returns all products in the category.
- `search_vendors`: Search any theme's data index by free-text query across vendor name, domain, integrations, plan notes, and capabilities (e.g. 'hipaa restaurant', 'google ads zapier'). Works for every theme — hub sections and catalog topics alike (set `section` to the theme slug from list_sections). Returns full provenanced vendor records (each plan carries source url + accessedAt, and each priced plan a `citation`: a dated one-line citation to quote verbatim). Empty query returns all vendors in the theme.
- `volatility_for_entity`: How volatile ONE product or vendor's price has been: a 0-100 volatility score derived from its recorded moves (frequency × average move size), plus change count, net % and last change. Honest gate: below a minimum recorded-change threshold it returns sufficient:false with a note, never a score invented from a single point.
- `whats_changed`: Recent dated price-change capsules, newest first — the freshness a base model cannot have. Each capsule is a movement of a vendor's published price (vendor, plan, before→after, date, sources), cleared against two witnesses on two different hosts: the page the figure was read from, plus either an independent second source or a dated archive capture of that same page — and when the archive is the only second witness, that first page must be the vendor's own. Optionally filter to changes on/after a date or within one section. Returns an empty list with a clear note when nothing qualifying has been recorded yet.
