# Scento Perfume API (MCP server) (remote · www.scento.com)

Free perfume & fragrance API and MCP server: notes, families, similar scents, 1,400+ perfumes.

- Trust score: 73/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- remote · `www.scento.com`: 73/100 (this document), [markdown](https://verifymcp.io/servers/com-scento-perfume-api/www.md), [page](https://verifymcp.io/servers/com-scento-perfume-api/www)
- npm · `scento-perfume-api`: 39/100, [markdown](https://verifymcp.io/servers/com-scento-perfume-api/scento-perfume-api.md), [page](https://verifymcp.io/servers/com-scento-perfume-api/scento-perfume-api)
- pypi · `scento-perfume-api`: 39/100, [markdown](https://verifymcp.io/servers/com-scento-perfume-api/scento-perfume-api-2.md), [page](https://verifymcp.io/servers/com-scento-perfume-api/scento-perfume-api-2)

## Channel facts

- Endpoint: `https://www.scento.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-23.

- **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**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3542 tokens (~295/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 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 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Scento Perfume API (MCP server) server?

Scento Perfume API (MCP server) is a hosted endpoint at https://www.scento.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-scento-perfume-api 'https://www.scento.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-scento-perfume-api": {
      "url": "https://www.scento.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-scento-perfume-api": {
      "type": "http",
      "url": "https://www.scento.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-scento-perfume-api]
url = "https://www.scento.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-scento-perfume-api": {
      "type": "remote",
      "url": "https://www.scento.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-scento-perfume-api --url 'https://www.scento.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-scento-perfume-api:
    url: "https://www.scento.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-scento-perfume-api": {
      "Transport": "http",
      "Url": "https://www.scento.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-scento-perfume-api -t streamable-http -u 'https://www.scento.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-scento-perfume-api": {
      "type": "http",
      "url": "https://www.scento.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-23 (score 73, +1)

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

### 2026-10-22 (score 72, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-21 (score 72)

First indexed and scored.

## MCP tools (12)

### `perfume-search` (~307 tokens)

Search perfumes, houses and notes

Use this when the user asks to find a perfume, fragrance, cologne or scent by name, house, note or mood, or when a name is uncertain (synonyms: perfume, fragrance, cologne, eau de parfum, scent, brand, notes, smells like). Returns matching perfumes, houses and raw materials with house, Scento family and a scento.com link in the user's language, ten per page. Call this first when a name is ambiguous. Don't use for a perfume's full notes (use perfume-portrait), similar scents (scent-neighbours) or articles (journal-search).

Input parameters:

- `continuation` (string): The "continuation" value from a previous answer, passed back unchanged to get the next part of the list.
- `kind` (string): Limit the results to one kind: "perfume", "house" or "material". Example: "house" to resolve a brand name. Default "any".
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `q` (string, required): What to look for: a perfume, house or material name, or a mood word. Examples: "Baccarat Rouge 540", "Le Labo", "vetiver", "smoky vanilla".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `perfume-portrait` (~257 tokens)

Get a perfume's notes and profile

Use this when the user asks what a specific perfume, fragrance or cologne smells like, what its notes or pyramid (top, heart, base) are, its family, perfumer, year or concentration (eau de parfum, eau de toilette), or when to wear it (synonyms: notes of, what's in it, how does it smell). Returns the verified note pyramid, Scento family and subfamily, character, seasons and hours, signature materials and the scento.com page in the user's language. Don't use to find similar perfumes (use scent-neighbours), compare perfumes (perfume-contrast) or search by mood (perfume-search).

Input parameters:

- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `perfume` (string, required): One perfume, by name as the user writes it, optionally with its house, or its slug. Examples: "Oud Wood", "Tom Ford Oud Wood", "Creed Aventus", "santal-33-le-labo".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `scent-neighbours` (~308 tokens)

Find similar perfumes

Use this when the user asks for perfumes similar to, like or in the same style as a given perfume, fragrance or cologne, or what else to try if they love it (synonyms: similar to, smells like, more like, if I like X). Returns the perfumes that share the most notes and structure with it, with the shared materials named, one line on how each differs and scento.com links in the user's language. Don't use for one perfume's own notes (perfume-portrait), a side-by-side of named perfumes (perfume-contrast) or a whole collection (wardrobe-composer).

Input parameters:

- `continuation` (string): The "continuation" value from a previous answer, passed back unchanged to get the next part of the list.
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `perfume` (string, required): The perfume the user already knows or loves, by name (with its house if needed) or slug. Examples: "Aventus", "Layton Parfums de Marly", "Santal 33".
- `same_house` (boolean): Set true to stay within the perfume's own house, for example when asked for "other Creed scents like Aventus". Default false.

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `perfume-contrast` (~232 tokens)

Compare perfumes side by side

Use this when the user asks to compare, contrast or choose between two to four named perfumes, fragrances or colognes (synonyms: versus, vs, difference between, which one). Returns the perfumes side by side on house, Scento family, top, heart and base notes, shared materials, character, seasons, hours, year and concentration, with scento.com links in the user's language. Don't use to find new perfumes (scent-neighbours or perfume-search) or to explain a single perfume (perfume-portrait).

Input parameters:

- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `perfumes` (array, required): Two to four perfumes to compare, by name (with house if needed) or slug. Examples: ["Mojave Ghost", "Santal 33"] or ["Oud Wood", "Layton", "Grand Soir"].

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `note-portrait` (~230 tokens)

Explain a note or ingredient

Use this when the user asks what a note or raw material smells like or is (for example vetiver, oud, vanilla, iris, ambroxan, bergamot), whether it is natural or synthetic, or what it pairs with (synonyms: what does X smell like, ingredient, note). Returns how it smells, its family, natural or synthetic, pairings and perfumes that show it, with the scento.com page in the user's language. Don't use to find perfumes containing notes (use material-match) or to define a perfumery term such as sillage (perfumery-lexicon).

Input parameters:

- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `material` (string, required): One note or raw material, by common name. Examples: "vetiver", "orris", "ambroxan", "pink pepper", "oud".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `material-match` (~314 tokens)

Find perfumes by note

Use this when the user wants perfumes, fragrances or colognes that contain specific notes or raw materials, optionally in the top, heart or base (synonyms: with notes of, built on, smells of, containing; for example vanilla and tobacco in the base). Returns the perfumes that have every material given, with house, where each sits in the pyramid and scento.com links in the user's language. Don't use to explain one material (note-portrait), to find perfumes like a named perfume (scent-neighbours) or for a mood or occasion (occasion-edit).

Input parameters:

- `continuation` (string): The "continuation" value from a previous answer, passed back unchanged to get the next part of the list.
- `family` (string): Optional Scento family to stay within, for example “Wood & Root”.
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `materials` (array, required): One to four notes or raw materials that must all be present. Examples: ["vanilla", "tobacco"] or ["oud"].
- `tier` (string): Where in the pyramid the materials must sit: "top", "heart" or "base". Example: "base" for a vanilla-and-tobacco drydown. Default "any".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `house-portrait` (~220 tokens)

Profile a perfume house

Use this when the user asks about a perfume house, brand or maison (for example Creed, Le Labo, Amouage): where it is from, when it was founded, its style and its signature perfumes. Returns country, founding year, style, signature perfumes with their families and the scento.com house page in the user's language. Don't use for one perfume (use perfume-portrait) or to list perfumes with a given note (material-match). If the house name is uncertain, call perfume-search with kind "house" first.

Input parameters:

- `house` (string, required): One perfume house or brand, by name. Examples: "Maison Francis Kurkdjian", "Le Labo", "Amouage", "Parfums de Marly".
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `family-map` (~227 tokens)

Explore fragrance families

Use this when the user asks how fragrances are grouped or what a scent family is (for example woody, floral, amber, fresh, citrus), or wants the exemplar perfumes of one family (synonyms: scent families, fragrance categories, olfactive families). Returns Scento's own family system: the whole tree, or one family with its definition, subfamilies, exemplar perfumes and neighbouring families, with the scento.com guide. Don't use for one perfume's family (perfume-portrait), a perfumery term (perfumery-lexicon) or an occasion (occasion-edit).

Input parameters:

- `family` (string): Optional family name or id. Examples: "Amber & Resin", "Wood & Root" or "white-bloom". Leave empty for the whole map.
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `occasion-edit` (~372 tokens)

Pick perfumes for an occasion

Use this when the user asks which perfume, fragrance or cologne to wear for one occasion, season or climate: wedding, office, date night, night out, weekend, everyday, gym or sport (workout), summer days, cold weather, first impressions, long-lasting or under-the-radar. Returns a short edit of perfumes with a line on why each fits and a scento.com link for each, in the user's language. The occasion is a fixed list, so pick the nearest value; omit gender_lean unless the user states one. For several occasions call it once per occasion. Don't use for a collection built around perfumes the user already loves (wardrobe-composer) or for similar scents (scent-neighbours).

Input parameters:

- `gender_lean` (string): Omit unless the user states one ("cologne" or "perfume" alone is not a request). Lean read from the materials by convention: "feminine", "masculine" or "shared". Example: "masculine" when the user as…
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `occasion` (string, required): The occasion, season or climate. Examples: "wedding" for a wedding guest, "office" for work, "weekend" for relaxed days, "gym" for sport, "date-night" for an evening out for two, "summer-days" for he…

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `wardrobe-composer` (~279 tokens)

Build a fragrance wardrobe

Use this when the user wants a small fragrance wardrobe or collection (three to five perfumes for different moments) built around perfumes or notes they already love, or asks what to add next (synonyms: signature scents, collection, rotation, what else should I own). Returns roles such as daytime, evening and warm weather, each with a perfume, its house, why it fits and a scento.com link in the user's language. Don't use for a single occasion (occasion-edit) or the neighbours of one perfume (scent-neighbours).

Input parameters:

- `avoid` (array): Perfumes, notes or families to leave out, up to six. Examples: ["oud"] or ["Sauvage", "Velvet Sweet"].
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `loves` (array, required): Perfumes or notes the person already loves, one to six. Examples: ["Aventus", "iris"] or ["Santal 33"].
- `size` (integer): How many perfumes the wardrobe holds, 3 to 5. Example: 4. Default 3.

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `perfumery-lexicon` (~225 tokens)

Explain a perfumery term

Use this when the user asks what a perfume or fragrance term means: sillage, projection, longevity, drydown, top, heart and base notes, accord, chypre, fougère, gourmand, oud, layering, eau de parfum versus eau de toilette (EDP vs EDT), concentration, flanker or niche versus designer. Returns a plain-language meaning, example perfumes and related terms, with the matching scento.com guide in the user's language. Don't use for a specific note (use note-portrait) or a specific perfume (perfume-portrait).

Input parameters:

- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `term` (string, required): The term to explain, as the user wrote it. Examples: "sillage", "drydown", "chypre", "EDP vs EDT".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

### `journal-search` (~247 tokens)

Search the Scento journal

Use this when the user wants articles, guides or background reading on a perfume, fragrance, cologne, house, note or topic (for example layering, vetiver, how to make a scent last). Returns matching Scento journal articles with title, one-line summary and scento.com link in the user's language. Use it to give the reader something to read on. Don't use for a perfume's notes (perfume-portrait), a house profile (house-portrait) or a term's meaning (perfumery-lexicon).

Input parameters:

- `continuation` (string): The "continuation" value from a previous answer, passed back unchanged to get the next part of the list.
- `lang` (string): Language of the scento.com links and labels; answers stay in English. Use the language the user writes in, for example "de" (German), "fr" (French), "es" (Spanish) or "it" (Italian). Default "en".
- `q` (string, required): A perfume, house, note or topic to find articles on. Examples: "vetiver", "layering", "Creed Aventus", "make a scent last".

Output parameters:

- `cite` (string)
- `continuation` (string|null)
- `detail` (object)
- `folio` (string)
- `further_reading` (array)
- `lede` (string)
- `scento_page` (object)

## Diagnostics

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

## Score history

- 2026-10-23: 73
- 2026-10-22: 72
- 2026-10-21: 72

## Common questions

### What is the Scento Perfume API (MCP server) server?

Scento Perfume API (MCP server) is listed in the public MCP registry as com.scento/perfume-api. Free perfume & fragrance API and MCP server: notes, families, similar scents, 1,400+ perfumes. This page covers its hosted endpoint (https://www.scento.com/mcp).

### Is the Scento Perfume API (MCP server) server safe to use?

Scento Perfume API (MCP server) scores 73 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 Scento Perfume API (MCP server) server expose?

Scento Perfume API (MCP server) exposes 12 tools: perfume-search, perfume-portrait, scent-neighbours, perfume-contrast, note-portrait, and 7 more. Their descriptions and schemas cost roughly 3,218 tokens of context every time the server is loaded.

### Does the Scento Perfume API (MCP server) server require authentication?

No. We connected to Scento Perfume API (MCP server) without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Scento Perfume API (MCP server) server still maintained?

Scento Perfume API (MCP server) is still listed as active in the MCP registry. We last reached this channel on 23 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://www.scento.com/mcp
- Repository: https://github.com/Scento-com/perfume-mcp-server
- Website: https://www.scento.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/com-scento-perfume-api/www.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-scento-perfume-api/www.json
- HTML version of this page: https://verifymcp.io/servers/com-scento-perfume-api/www
