
The Front Desk Review
4,764 products, 626 categories: sourced prices, dated price history, independent-test coverage.
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
4,764 products, 626 categories: sourced prices, dated price history, independent-test coverage.
How to connect
How to connect The Front Desk Review to Claude
The server address to paste into Claude settings:
https://mcp.frontdeskreview.com/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect The Front Desk Review to ChatGPT
The server address to paste into ChatGPT settings:
https://mcp.frontdeskreview.com/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect The Front Desk Review to Cursor
The server address to paste into Cursor settings:
https://mcp.frontdeskreview.com/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (19)
Raw names from tools/list. Only developers need these.
| 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. |
| 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). Empty query returns all vendors in the theme. |
| 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. |
| 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_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. |
| 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 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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). |
| 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. |
| 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. |
| 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. |
| 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. |
| 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_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. |
| 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. |
| 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. |