Fragrance & Perfume MCP (Noteboxd)
by noteboxd.com · remote · local (npm) · no sign-in to list tools · v0.1.4 · published by com.noteboxd
Fragrance & perfume MCP: search fragrances, notes, accords, brands, perfumers, reviews & charts.
27 tools: 4 change things and 23 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads23Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http noteboxd https://mcp.noteboxd.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnnoteboxd_open
The server marks "noteboxd_open" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "noteboxd_open" says "open": a word for a change.
- Warnai_collection
The server marks "ai_collection" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
27 tools
Changes things 4Claude Code: ask
ai_collectionGenerate a curated fragrance collection from a natural-language prompt (e.g.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "ai_collection" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
ai_wear_todayWhat should I wear today?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
noteboxd_openOpen the Noteboxd app UI in ChatGPT.1 finding
Why it is in this group
- The name "noteboxd_open" says "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "noteboxd_open" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "noteboxd_open" says "open": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
trendingWhat's trending on Noteboxd right now — top search queries, highest-rated fragrances, and most popular notes.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 23Claude Code: allow
ai_recommendGet personalized fragrance recommendations based on your taste profile.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
brand_getGet a brand profile (name, country, founded, description) and its top fragrances.No findings
Why it is in this group
- The name "brand_get" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
chart_getGet a specific chart leaderboard by slug (e.g.No findings
Why it is in this group
- The name "chart_get" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
charts_listList all available Noteboxd chart rankings (e.g.No findings
Why it is in this group
- The name "charts_list" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fragrance_compareCompare two fragrances head-to-head — shared vs.No findings
Why it is in this group
- The name "fragrance_compare" says "compare": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fragrance_getGet the full profile for a single fragrance by UUID or slug (e.g.No findings
Why it is in this group
- The name "fragrance_get" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fragrance_get_reviewsGet paginated community reviews for a fragrance.No findings
Why it is in this group
- The name "fragrance_get_reviews" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fragrance_get_wearing_statsCommunity wearing counts for a fragrance.No findings
Why it is in this group
- The name "fragrance_get_wearing_stats" says "get": a word for reading.
Description, as the server wrote it Community wearing counts for a fragrance. Free tier sees the last 30 days; Pro also sees today and the last 7 days. See also: `fragrance_get` for full profile · `fragrance_similar` for alternatives with similar profiles.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fragrance_review_digestGet a concise AI-generated digest summarizing a fragrance's community reviews — key themes, consensus, and standout opinions.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fragrance_searchSearch and filter the Noteboxd fragrance encyclopedia.No findings
Why it is in this group
- The name "fragrance_search" says "search": a word for reading.
Description, as the server wrote it 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" → accord='woody' + minScore=8 - "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).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
fragrance_similarFind fragrances with similar accord profiles to a given fragrance.No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
note_exploreGet a note's profile (family, description, origin, extraction method) and top fragrances featuring it, sorted by community score.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
notes_listBrowse fragrance notes — filter by family (e.g.No findings
Why it is in this group
- The name "notes_list" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
perfumer_getGet a perfumer's profile (bio, country, house affiliation) and their top fragrances by community score.No findings
Why it is in this group
- The name "perfumer_get" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
searchUniversal search across all Noteboxd entities — fragrances, brands, notes, perfumers, and collections — in a single call.No findings
Why it is in this group
- The name "search" says "search": a word for reading.
Description, as the server wrote it 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, score, concentration) · `trending` for what's popular right now.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_get_cabinetGet your fragrance cabinet — fragrances you own, have tried, or finished.No findings
Why it is in this group
- The name "user_get_cabinet" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_get_collectionsGet your collections (fragrance lists).No findings
Why it is in this group
- The name "user_get_collections" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_get_reviewsGet reviews you've written, or reviews you found helpful.No findings
Why it is in this group
- The name "user_get_reviews" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_get_wearing_historyGet your wearing check-in history over time.No findings
Why it is in this group
- The name "user_get_wearing_history" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_get_wishlistGet your fragrance wishlist.No findings
Why it is in this group
- The name "user_get_wishlist" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_taste_compareCompare your taste with another user — compatibility score, shared and divergent notes/accords/families, and an optional AI overview.No findings
Why it is in this group
- The name "user_taste_compare" says "compare": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_taste_publicGet a user's public taste profile — their top notes, accords, and families derived from their collection and reviews.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
user_taste_summaryGet your AI-generated taste profile summary — a natural-language description of your fragrance preferences based on your cabinet, reviews, and likes.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.4. Values in angle brackets are yours to fill in.
claude mcp add --transport http noteboxd https://mcp.noteboxd.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__noteboxd__search",
"mcp__noteboxd__fragrance_similar",
"mcp__noteboxd__charts_list",
"mcp__noteboxd__chart_get",
"mcp__noteboxd__notes_list",
"mcp__noteboxd__ai_recommend",
"mcp__noteboxd__fragrance_search",
"mcp__noteboxd__fragrance_get",
"mcp__noteboxd__fragrance_get_reviews",
"mcp__noteboxd__fragrance_get_wearing_stats",
"mcp__noteboxd__brand_get",
"mcp__noteboxd__perfumer_get",
"mcp__noteboxd__note_explore",
"mcp__noteboxd__fragrance_compare",
"mcp__noteboxd__fragrance_review_digest",
"mcp__noteboxd__user_get_cabinet",
"mcp__noteboxd__user_get_wishlist",
"mcp__noteboxd__user_get_collections",
"mcp__noteboxd__user_get_reviews",
"mcp__noteboxd__user_get_wearing_history",
"mcp__noteboxd__user_taste_public",
"mcp__noteboxd__user_taste_summary",
"mcp__noteboxd__user_taste_compare"
],
"ask": [
"mcp__noteboxd__noteboxd_open",
"mcp__noteboxd__trending",
"mcp__noteboxd__ai_wear_today",
"mcp__noteboxd__ai_collection"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as noteboxd. Review it before you use it.