# Fragrance & Perfume MCP (Noteboxd)

> Fragrance & perfume MCP: search fragrances, notes, accords, brands, perfumers, reviews & charts.

- name: com.noteboxd/mcp
- version: 0.1.4
- connection class: R0 (autonomous)
- trust: 94/100
- quality: 86/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.noteboxd%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.noteboxd%2Fmcp/tools

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

## Connection (mcpServers)

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


## Trust

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

## Quality 86/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### 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: 100 (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`: 27 of 27 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 4,912 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

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

### dependencies: 67 (weight 15)

- pass `deps.known_vulns`: no known advisory in 98 resolved packages
- fail `deps.mcp_sdk_version`: @modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or later
- pass `deps.resolvable`: @noteboxd/mcp@0.1.4 resolved: 98 packages

- tools: 27, about 4,912 tokens to load them all
- tool set hash: 1c300452416ce7b3dbeee32db1dde4dc
- tools last changed: 2026-10-17T19:51:05.486Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.noteboxd/mcp.svg)](https://protogrid.dev/servers/com.noteboxd/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `user_taste_compare` changed (inputSchema)
- 2026-10-17 `user_taste_summary` changed (inputSchema)
- 2026-10-17 `user_taste_public` changed (inputSchema)
- 2026-10-17 `user_get_wearing_history` changed (inputSchema)
- 2026-10-17 `user_get_reviews` changed (inputSchema)
- 2026-10-17 `user_get_collections` changed (inputSchema)
- 2026-10-17 `user_get_wishlist` changed (inputSchema)
- 2026-10-17 `user_get_cabinet` changed (inputSchema)
- 2026-10-17 `fragrance_review_digest` changed (inputSchema)
- 2026-10-17 `fragrance_compare` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/com.noteboxd%2Fmcp/changes

## Dependencies

- npm @noteboxd/mcp@0.1.4: resolved, 97 dependencies, MCP SDK @modelcontextprotocol/sdk 1.30.1
  - GHSA-6qxp-vccf-f47h (high) in `` @modelcontextprotocol/sdk@1.30.1 ``, direct, fixed in `` 1.31.0 ``, advisory summary: "MCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server" https://osv.dev/vulnerability/GHSA-6qxp-vccf-f47h

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

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

## Packages

- npm @noteboxd/mcp@0.1.4 secrets: NOTEBOXD_API_KEY

## Tools (27)

- `ai_collection`: Generate a curated fragrance collection from a natural-language prompt (e.g. 'office-safe designer scents under $100', 'niche oud masterpieces'). Returns 5–25 grounded picks with rationale. Requires Pro.

See also: `ai_recommend` for personalized picks · `fragrance_search` for manual filtering.
- `ai_recommend`: Get personalized fragrance recommendations based on your taste profile. Optional natural-language prompt to guide results (e.g. 'something fresh for summer'). Requires Pro.

See also: `ai_wear_today` for what to wear right now · `user_get_cabinet` for your collection.
- `ai_wear_today`: What should I wear today? Picks from your owned cabinet (CURRENT status only) based on optional prompt/weather. Returns nothing if your cabinet is empty. Requires Pro.

See also: `ai_recommend` for discovery beyond your cabinet · `user_get_cabinet` for your full collection.
- `brand_get`: Get a brand profile (name, country, founded, description) and its top fragrances. Use the brand slug, e.g. 'maison-francis-kurkdjian'.

See also: `fragrance_search` with the `brand` filter to get the full paginated catalogue for this brand · `perfumer_get` if the brand has a known house perfumer.
- `chart_get`: Get a specific chart leaderboard by slug (e.g. 'top-rated', 'trending', 'top-rated-brand-chanel'). Returns ranked fragrances with scores and movement.

See also: `charts_list` to see all available charts · `fragrance_get` for the full profile of any fragrance on the chart.
- `charts_list`: List all available Noteboxd chart rankings (e.g. top-rated, trending, top by brand). Returns chart names and summary stats.

See also: `chart_get` with a chart slug to see the full leaderboard · `trending` for a quick snapshot of what's hot.
- `fragrance_compare`: Compare two fragrances head-to-head — shared vs. distinct notes/accords/families, community and critic scores, audience, and an AI-written synthesis (shared character, differences, who each suits). Public, cached 7 days per pair.

See also: `fragrance_get` for full profiles · `fragrance_similar` for alternatives.
- `fragrance_get`: Get the full profile for a single fragrance by UUID or slug (e.g. 'tom-ford/oud-wood'). Returns notes pyramid, accords, FOTW classification, perfumer, community score, and more.

See also: `fragrance_similar` for fragrances with similar accord profiles · `fragrance_get_reviews` for community reviews · `fragrance_get_wearing_stats` for when people wear it.
- `fragrance_get_reviews`: Get paginated community reviews for a fragrance. Sort by helpfulness, recency, or score.

See also: `fragrance_get` for the fragrance's full profile · `fragrance_get_wearing_stats` for aggregate wearing data.
- `fragrance_get_wearing_stats`: Aggregate wearing statistics for a fragrance — when people wear it, in what seasons, and mood tags. Free tier sees total check-ins only; Pro sees full breakdowns.

See also: `fragrance_get` for full profile · `fragrance_similar` for alternatives with similar profiles.
- `fragrance_review_digest`: Get a concise AI-generated digest summarizing a fragrance's community reviews — key themes, consensus, and standout opinions. Public, cached per fragrance.

See also: `fragrance_get_reviews` for individual reviews · `fragrance_get` for full profile.
- `fragrance_search`: Search and filter the Noteboxd fragrance encyclopedia. Requires a query or at least one filter — the full catalogue cannot be listed.

Tip: The `q` parameter searches fragrance names OR brand names independently. For best results with a known brand, use the `brand` slug filter instead of including the brand name in `q`.

Examples:
- "Find woody fragrances above 8/10 from the 2010s" → note='woody' + minScore=8 + decade='2010s'
- "Creed fragrances" → brand='creed'
- "Bleu de Chanel" → q='Bleu' + brand='chanel'

See also: `fragrance_get` for a single fragrance's full profile · `search` for universal cross-entity lookup (brands, notes, perfumers, collections in one call).
- `fragrance_similar`: Find fragrances with similar accord profiles to a given fragrance. Returns ranked alternatives based on shared accords and character.

See also: `fragrance_get` for the source fragrance's full profile · `fragrance_search` with note/accord filters for manual exploration.
- `noteboxd_open`: Open the Noteboxd app UI in ChatGPT. Call with no arguments to show the home screen (trending fragrances), with `query` to run a fragrance search inside the app, or with `fragrance` (slug or UUID) to show a fragrance profile. The app renders the returned result; keep the chat reply to one short line.
- `note_explore`: Get a note's profile (family, description, origin, extraction method) and top fragrances featuring it, sorted by community score. Use the note slug, e.g. 'oud', 'bergamot', 'iris'.

See also: `notes_list` to browse all notes by family/popularity · `fragrance_search` with the `note` filter to find fragrances featuring this note.
- `notes_list`: Browse fragrance notes — filter by family (e.g. 'woody', 'floral', 'citrus') and sort by popularity or name. Returns note names, families, colours, and fragrance counts.

See also: `note_explore` for a single note's full profile and top fragrances · `fragrance_search` with the `note` filter to find fragrances featuring a specific note.
- `perfumer_get`: Get a perfumer's profile (bio, country, house affiliation) and their top fragrances by community score.

See also: `fragrance_search` to find more fragrances by this perfumer · `brand_get` if you want the brand they work for.
- `search`: Universal search across all Noteboxd entities — fragrances, brands, notes, perfumers, and collections — in a single call. Best for quick lookups and vague queries.

Examples:
- "Jacques Polge" → returns the perfumer
- "oud" → returns the note, plus top oud fragrances
- "Bleu" → returns Bleu de Chanel, Bleu de Dior, etc.

See also: `fragrance_search` for advanced fragrance-only filtering (by note, decade, score, concentration) · `trending` for what's popular right now.
- `trending`: What's trending on Noteboxd right now — top search queries, highest-rated fragrances, and most popular notes. No parameters needed.

See also: `charts_list` for full ranking leaderboards · `fragrance_search` to explore specific categories.
- `user_get_cabinet`: Get your fragrance cabinet — fragrances you own, have tried, or finished. Requires a Pro account.

See also: `fragrance_get` for full details on any fragrance in your cabinet · `fragrance_similar` to find alternatives to your favourites · `user_get_wishlist` for fragrances you want to try.
- `user_get_collections`: Get your collections (fragrance lists). Optionally pass a collectionId to see its items. Requires a Pro account.

See also: `fragrance_get` for full details on any fragrance in a collection.
- `user_get_reviews`: Get reviews you've written, or reviews you found helpful. Requires a Pro account.

See also: `fragrance_get_reviews` for community reviews on a specific fragrance.
- `user_get_wearing_history`: Get your wearing check-in history over time. Requires a Pro account.

See also: `fragrance_get_wearing_stats` for aggregate community wearing data on a specific fragrance.
- `user_get_wishlist`: Get your fragrance wishlist. Requires a Pro account.

See also: `fragrance_get` for full details on any wishlist fragrance · `user_get_cabinet` for fragrances you already own.
- `user_taste_compare`: Compare your taste with another user — compatibility score, shared and divergent notes/accords/families, and an optional AI overview. Requires Pro for the overview.

See also: `user_taste_public` for a user's top preferences · `user_taste_summary` for your own summary.
- `user_taste_public`: Get a user's public taste profile — their top notes, accords, and families derived from their collection and reviews. No LLM call, deterministic.

See also: `user_taste_compare` for compatibility between two users.
- `user_taste_summary`: Get your AI-generated taste profile summary — a natural-language description of your fragrance preferences based on your cabinet, reviews, and likes. Requires Pro.

See also: `user_taste_public` for the deterministic breakdown · `user_taste_compare` for compatibility.
