# ScentVerdict (remote · scentverdict.com)

UK fragrance catalogue with verdicts, similarity scores, scent profiles and drydowns.

- Trust score: 78/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-04

## Components

- remote · `scentverdict.com`: 78/100 (this document), [markdown](https://verifymcp.io/servers/com-scentverdict-fragrances/scentverdict.md), [page](https://verifymcp.io/servers/com-scentverdict-fragrances/scentverdict)

## Channel facts

- Endpoint: `https://scentverdict.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-04.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1671 tokens (~278/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 43/100
  - Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the ScentVerdict MCP server?

ScentVerdict is a hosted endpoint at https://scentverdict.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-scentverdict-fragrances 'https://scentverdict.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-scentverdict-fragrances": {
      "url": "https://scentverdict.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-scentverdict-fragrances": {
      "type": "http",
      "url": "https://scentverdict.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-scentverdict-fragrances]
url = "https://scentverdict.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-scentverdict-fragrances": {
      "type": "remote",
      "url": "https://scentverdict.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-scentverdict-fragrances --url 'https://scentverdict.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-scentverdict-fragrances:
    url: "https://scentverdict.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-scentverdict-fragrances": {
      "Transport": "http",
      "Url": "https://scentverdict.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-scentverdict-fragrances -t streamable-http -u 'https://scentverdict.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-scentverdict-fragrances": {
      "type": "http",
      "url": "https://scentverdict.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-04 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-03 (score 77, −1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “compare_fragrances” rewrote its description, which is the text the model reads
- [security] Tool “find_similar_fragrances” rewrote its description, which is the text the model reads
- [security] Tool “get_fragrance” rewrote its description, which is the text the model reads
- [security] Tool “recommend_fragrances” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 198 → 278
- [functional] Server version: 1.0.0 → 2.0.0
- [cosmetic] “compare_fragrances” added an optional parameter “country”
- [cosmetic] “find_similar_fragrances” added an optional parameter “country”
- [cosmetic] “get_fragrance” added an optional parameter “country”
- [cosmetic] “recommend_fragrances” added an optional parameter “budgetMax”
- [cosmetic] “recommend_fragrances” added an optional parameter “country”
- [cosmetic] “recommend_fragrances” dropped the optional parameter “budgetMaxGbp”

### 2026-10-02 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-30 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-28 (score 76, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-26 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-25 (score 74, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-24 (score 74, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “compare_fragrances” rewrote its description, which is the text the model reads
- [security] Tool “find_similar_fragrances” rewrote its description, which is the text the model reads
- [security] Tool “get_fragrance” rewrote its description, which is the text the model reads
- [functional improvement] Schema quality: 224 → 198

## MCP tools (6)

### `get_scent_profile` (~136 tokens)

Scent Profile and Drydown

Get how a fragrance develops over the wear: opening, heart and base phases, the notes in each, and how many hours each note persists on skin. Use this when the user asks how something evolves, how long it lasts, how it changes through the day, or what the drydown is like. The per-note hours are values held by ScentVerdict against each note rather than a general impression of the fragrance, and they are estimates. Use get_fragrance instead for the verdict, price and general description.

Input parameters:

- `slug` (string, required): The fragrance slug. Use search_fragrances if you do not have one.

Output parameters:

- `error` (string|null): Set when the profile could not be read.
- `longestLastingNoteHours` (number|null): Hours the longest-lasting note persists. Null when unknown.
- `name` (string|null): Fragrance name.
- `notFound` (object|null): Set when the fragrance is not in the catalogue.
- `phases` (array): Notes grouped by phase: top, heart, base.
- `slug` (string|null): Stable identifier.
- `url` (string|null): Canonical page URL, carrying the scent wheel and drydown timeline.

### `search_fragrances` (~157 tokens)

Search Fragrances by Name

Resolve a fragrance name to catalogue entries. Call this FIRST whenever a name is partial, misspelled, or could mean more than one product, then pass the returned slug to another tool. Many fragrances share a name across concentrations and launch years, and flankers hide behind qualifiers, so guessing the variant silently produces the wrong answer for the rest of the conversation. Results carry concentration and launch year precisely so you can tell them apart, and you should offer the user the choice when several match. Use get_fragrance instead when you already hold an exact slug.

Input parameters:

- `limit` (integer): Maximum results. Default 8, maximum 20.
- `query` (string, required): Name or partial name to look up. Minimum 2 characters.

### `find_similar_fragrances` (~306 tokens)

Find Similar Fragrances

Find fragrances similar to one the user already knows, optionally steered in a direction such as cheaper, fresher, longer lasting or less sweet. Use this whenever the user names a fragrance and wants something like it: a cheaper alternative, a budget version, something that smells similar, or a gift for someone whose current fragrance they know ('he wears X, what else would suit him'). Each match carries a similarity score computed by ScentVerdict for that specific pair. The cheaper direction lists pairings ScentVerdict has curated first, then similar fragrances priced below the anchor where we hold its price. Each match carries its bottle price for the user's country, in the shop's own currency. Use recommend_fragrances instead when the user names no fragrance to anchor on.

Input parameters:

- `anchorSlug` (string, required): Slug of the fragrance to anchor on. Use search_fragrances first if you do not have one.
- `country` (string|null): The user's country as an ISO 3166-1 alpha-2 code, for example US, DE or GB. Prices are for this country, in the shop's own currency. Pass it whenever you know where the user is. When omitted, the cli…
- `direction` (string): How to steer results away from the anchor. Defaults to the closest overall match.
- `limit` (integer): Maximum results. Default 5, maximum 10.

Output parameters:

- `anchorSlug` (string): The fragrance the results were derived from.
- `direction` (string): How results were steered away from the anchor.
- `market` (object|null): The country the prices in this result are for, its currency, and how it was chosen.
- `notFound` (object|null): Set when the anchor fragrance is not in the catalogue.
- `reason` (string|null): Why the result set is empty. Null when results were found.
- `results` (array): Ranked matches, closest first. May be empty.

### `compare_fragrances` (~193 tokens)

Compare Two Fragrances

Compare exactly two fragrances side by side using ScentVerdict's own note data: which notes they share, which differ, both verdicts, and both prices for the user's country. Use this whenever the user is choosing between two named fragrances, or asks which of two is better, or how two differ. Use find_similar_fragrances instead when they want alternatives to one fragrance rather than a head to head.

Input parameters:

- `country` (string|null): The user's country as an ISO 3166-1 alpha-2 code, for example US, DE or GB. Prices are for this country, in the shop's own currency. Pass it whenever you know where the user is. When omitted, the cli…
- `slugA` (string, required): Slug of the first fragrance.
- `slugB` (string, required): Slug of the second fragrance.

Output parameters:

- `a` (object|null): The first fragrance.
- `b` (object|null): The second fragrance.
- `comparisonUrl` (string|null): Canonical URL of the comparison page.
- `error` (string|null): Set when the comparison could not be completed.
- `market` (object|null): The country the prices in this result are for, its currency, and how it was chosen.
- `notFound` (object|null): Set when either fragrance is not in the catalogue.
- `onlyInA` (array): Notes only in the first.
- `onlyInB` (array): Notes only in the second.
- `sharedNotes` (array): Notes present in both.

### `recommend_fragrances` (~384 tokens)

Recommend Fragrances

Recommend fragrances matching what the user describes: season, occasion, budget, strength, staying power and notes they like. Use this when the user wants a suggestion but names no fragrance to work from - for example something for winter, for the office, or under a budget. Season, occasion and intensity are scored numerically per fragrance in ScentVerdict, and the budget is applied against current bottle prices for the user's country, so the constraints are filtered rather than approximated. Each priced row carries its price in the shop's own currency, and the bottle size and price per millilitre wherever the retailer published a size. Pass as many of the constraints as the user gave; all are optional. Use find_similar_fragrances instead when they name a fragrance to anchor on.

Input parameters:

- `budgetMax` (number|null): Maximum price for a full-size bottle, in the currency of the user's country (USD for US, EUR for DE, GBP for GB). Only prices in that currency are filtered.
- `country` (string|null): The user's country as an ISO 3166-1 alpha-2 code, for example US, DE or GB. Prices are for this country, in the shop's own currency. Pass it whenever you know where the user is. When omitted, the cli…
- `genderPresentation` (string|null): Who the fragrance presents as.
- `intensity` (string|null): How strong the fragrance should be.
- `limit` (integer): Maximum results. Default 5, maximum 10.
- `longevityMin` (string|null): Minimum staying power.
- `noteLoved` (string|null): A single note the user likes, for example vanilla.
- `occasion` (string|null): Occasion the fragrance is for.
- `season` (string|null): Season the fragrance is for.

Output parameters:

- `caveat` (string|null): Caveat about how the constraints were applied. Null when there is nothing to qualify.
- `market` (object|null): The country the prices in this result are for, its currency, and how it was chosen.
- `results` (array): Matching fragrances. May be empty when the constraints are too narrow.

### `get_fragrance` (~229 tokens)

Look Up a Fragrance

Look up one fragrance in ScentVerdict's catalogue: its notes, ScentVerdict's own verdict, concentration, launch year, and the lowest current price for a full-size bottle for the user's country, in the shop's own currency. Use this whenever the user names a fragrance and asks what it is, what it smells like, what is in it, what it costs, or whether it is any good. Use search_fragrances first if the name is partial or could mean several variants. Use get_scent_profile instead when the question is about how it develops over the wear.

Input parameters:

- `country` (string|null): The user's country as an ISO 3166-1 alpha-2 code, for example US, DE or GB. Prices are for this country, in the shop's own currency. Pass it whenever you know where the user is. When omitted, the cli…
- `slug` (string, required): The fragrance slug, for example bleu-de-chanel. Use search_fragrances if you do not have one.

Output parameters:

- `error` (string|null): Set when the lookup could not be completed. Explain this rather than guessing.
- `fragrance` (object|null): The fragrance. Null when not found or on error.
- `market` (object|null): The country the prices in this result are for, its currency, and how it was chosen.
- `notFound` (object|null): Set when the fragrance is not in the catalogue. Carries suggestions.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-scentverdict-fragrances/scentverdict#diagnostics

## Score history

- 2026-10-04: 78
- 2026-10-03: 77
- 2026-10-02: 78
- 2026-10-01: 77
- 2026-09-30: 77
- 2026-09-29: 76
- 2026-09-28: 76
- 2026-09-27: 75
- 2026-09-26: 75
- 2026-09-25: 74
- 2026-09-24: 74
- 2026-09-23: 73
- 2026-09-22: 73
- 2026-09-21: 72

## Common questions

### What is the ScentVerdict MCP server?

ScentVerdict is an MCP server listed in the public MCP registry as com.scentverdict/fragrances. UK fragrance catalogue with verdicts, similarity scores, scent profiles and drydowns. This page covers its hosted endpoint (https://scentverdict.com/mcp).

### Is the ScentVerdict MCP server safe to use?

ScentVerdict scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ScentVerdict MCP server expose?

ScentVerdict exposes 6 tools: get_scent_profile, search_fragrances, find_similar_fragrances, compare_fragrances, recommend_fragrances, get_fragrance. Their descriptions and schemas cost roughly 1,405 tokens of context every time the server is loaded.

### Does the ScentVerdict MCP server require authentication?

No. We connected to ScentVerdict without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the ScentVerdict MCP server still maintained?

ScentVerdict is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://scentverdict.com/mcp
- Website: https://scentverdict.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-scentverdict-fragrances/scentverdict.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-scentverdict-fragrances/scentverdict.json
- HTML version of this page: https://verifymcp.io/servers/com-scentverdict-fragrances/scentverdict
