ScentVerdict
UK fragrance catalogue with verdicts, similarity scores, scent profiles and drydowns.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"fragrances": {
"url": "https://scentverdict.com/mcp"
}
}
}リモートエンドポイント
https://scentverdict.com/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢get_scent_profile(slug)
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.
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"description": "The fragrance slug. Use search_fragrances if you do not have one.",
"type": "string"
}
},
"required": [
"slug"
]
}出力スキーマ
{
"type": "object",
"properties": {
"name": {
"description": "Fragrance name.",
"type": [
"string",
"null"
]
},
"slug": {
"description": "Stable identifier.",
"type": [
"string",
"null"
]
},
"phases": {
"description": "Notes grouped by phase: top, heart, base.",
"type": "array",
"items": {
"type": "object",
"properties": {
"phase": {
"description": "Phase name: top, heart, base, or unspecified.",
"type": "string"
},
"notes": {
"description": "Notes in this phase, heaviest first.",
"type": "array",
"items": {
"type": "object",
"properties": {
"note": {
"description": "Note name.",
"type": "string"
},
"slug": {
"description": "Note slug.",
"type": "string"
},
"family": {
"description": "Olfactory family. Null when unclassified.",
"type": [
"string",
"null"
]
},
"substantivityHours": {
"description": "Expected hours on skin. Null when unknown.",
"type": [
"number",
"null"
]
},
"volatilityClass": {
"description": "Intrinsic volatility class. Null when unknown.",
"type": [
"string",
"null"
]
}
},
"required": [
"note",
"slug",
"family",
"substantivityHours",
"volatilityClass"
]
}
}
},
"required": [
"phase",
"notes"
]
}
},
"longestLastingNoteHours": {
"description": "Hours the longest-lasting note persists. Null when unknown.",
"type": [
"number",
"null"
]
},
"url": {
"description": "Canonical page URL, carrying the scent wheel and drydown timeline.",
"type": [
"string",
"null"
]
},
"notFound": {
"description": "Set when the fragrance is not in the catalogue.",
"type": [
"object",
"null"
],
"properties": {
"notFound": {
"description": "Always true. The requested fragrance is not in the catalogue.",
"type": "boolean"
},
"query": {
"description": "What was asked for.",
"type": "string"
},
"suggestions": {
"description": "Close catalogue entries the user may have meant. May be empty. Never treat these as the answer without confirming.",
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt or Edp. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"url": {
"description": "Canonical page URL.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"concentration",
"yearLaunched",
"url"
]
}
}
},
"required": [
"notFound",
"query",
"suggestions"
]
},
"error": {
"description": "Set when the profile could not be read.",
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"slug",
"phases",
"longestLastingNoteHours",
"url",
"notFound",
"error"
]
}🟢search_fragrances(query, limit)
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.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"description": "Name or partial name to look up. Minimum 2 characters.",
"type": "string"
},
"limit": {
"description": "Maximum results. Default 8, maximum 20.",
"type": "integer",
"default": 8
}
},
"required": [
"query"
]
}出力スキーマ
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt or Edp. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"url": {
"description": "Canonical page URL.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"concentration",
"yearLaunched",
"url"
]
}
}
},
"required": [
"result"
]
}🟢find_similar_fragrances(anchorSlug, direction, limit)
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. Use recommend_fragrances instead when the user names no fragrance to anchor on.
入力スキーマ
{
"type": "object",
"properties": {
"anchorSlug": {
"description": "Slug of the fragrance to anchor on. Use search_fragrances first if you do not have one.",
"type": "string"
},
"direction": {
"description": "How to steer results away from the anchor. Defaults to the closest overall match.",
"type": "string",
"enum": [
"Similar",
"Cheaper",
"Fresher",
"LongerLasting",
"MoreIntense",
"LessSweet"
],
"default": "Similar"
},
"limit": {
"description": "Maximum results. Default 5, maximum 10.",
"type": "integer",
"default": 5
}
},
"required": [
"anchorSlug"
]
}出力スキーマ
{
"type": "object",
"properties": {
"anchorSlug": {
"description": "The fragrance the results were derived from.",
"type": "string"
},
"direction": {
"description": "How results were steered away from the anchor.",
"type": "string"
},
"results": {
"description": "Ranked matches, closest first. May be empty.",
"type": "array",
"items": {
"type": "object",
"properties": {
"fragrance": {
"description": "The matched fragrance.",
"type": "object",
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"brandSlug": {
"description": "Brand slug.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt, Edp or Parfum. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"verdictBadge": {
"description": "Editorial classification: Favourite, Statement or Acquired. Null when not yet classified.",
"type": [
"string",
"null"
]
},
"verdict": {
"description": "The full ScentVerdict editorial verdict. Null when this row came from a source that carries no verdict.",
"type": [
"string",
"null"
]
},
"keyNotes": {
"description": "The most characteristic notes. May be empty.",
"type": "array",
"items": {
"type": "string"
}
},
"priceFromGbp": {
"description": "Lowest UK price we hold for a full-size bottle, in GBP. Excludes samples and decants. Null when we hold no full-size price.",
"type": [
"number",
"null"
]
},
"priceSizeMl": {
"description": "Bottle size in millilitres that PriceFromGbp applies to. 0 means the retailer did not state a size.",
"type": [
"number",
"null"
]
},
"pricePerMlGbp": {
"description": "PriceFromGbp divided by PriceSizeMl. USE THIS to compare value between fragrances, never the bottle price - a small bottle can look cheap while costing far more per millilitre. Null when the size is unknown.",
"type": [
"number",
"null"
]
},
"imageUrl": {
"description": "Bottle image URL. Null when we hold no image.",
"type": [
"string",
"null"
]
},
"scentArtUrl": {
"description": "ScentArt visual URL, generated from this fragrance's own composition. Null when not yet rendered.",
"type": [
"string",
"null"
]
},
"url": {
"description": "Canonical page URL, carrying the interactive scent wheel, drydown timeline and full descriptor profile.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"brandSlug",
"concentration",
"yearLaunched",
"verdictBadge",
"verdict",
"keyNotes",
"priceFromGbp",
"priceSizeMl",
"pricePerMlGbp",
"imageUrl",
"scentArtUrl",
"url"
]
},
"similarityScore": {
"description": "Similarity score out of 100. Null when the source carries no score.",
"type": [
"integer",
"null"
]
},
"whySimilar": {
"description": "What the two have in common. Null when we hold no written comparison.",
"type": [
"string",
"null"
]
},
"keyDifference": {
"description": "How the two differ. Null when we hold no written comparison.",
"type": [
"string",
"null"
]
},
"sharedNotes": {
"description": "Notes present in both. May be empty.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"fragrance",
"similarityScore",
"whySimilar",
"keyDifference",
"sharedNotes"
]
}
},
"reason": {
"description": "Why the result set is empty. Null when results were found.",
"type": [
"string",
"null"
]
},
"notFound": {
"description": "Set when the anchor fragrance is not in the catalogue.",
"type": [
"object",
"null"
],
"properties": {
"notFound": {
"description": "Always true. The requested fragrance is not in the catalogue.",
"type": "boolean"
},
"query": {
"description": "What was asked for.",
"type": "string"
},
"suggestions": {
"description": "Close catalogue entries the user may have meant. May be empty. Never treat these as the answer without confirming.",
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt or Edp. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"url": {
"description": "Canonical page URL.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"concentration",
"yearLaunched",
"url"
]
}
}
},
"required": [
"notFound",
"query",
"suggestions"
],
"default": null
}
},
"required": [
"anchorSlug",
"direction",
"results",
"reason"
]
}🟢compare_fragrances(slugA, slugB)
Compare exactly two fragrances side by side using ScentVerdict's own note data: which notes they share, which differ, and both verdicts. 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.
入力スキーマ
{
"type": "object",
"properties": {
"slugA": {
"description": "Slug of the first fragrance.",
"type": "string"
},
"slugB": {
"description": "Slug of the second fragrance.",
"type": "string"
}
},
"required": [
"slugA",
"slugB"
]
}出力スキーマ
{
"type": "object",
"properties": {
"a": {
"description": "The first fragrance.",
"type": [
"object",
"null"
],
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"brandSlug": {
"description": "Brand slug.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt, Edp or Parfum. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"verdictBadge": {
"description": "Editorial classification: Favourite, Statement or Acquired. Null when not yet classified.",
"type": [
"string",
"null"
]
},
"verdict": {
"description": "The full ScentVerdict editorial verdict. Null when this row came from a source that carries no verdict.",
"type": [
"string",
"null"
]
},
"keyNotes": {
"description": "The most characteristic notes. May be empty.",
"type": "array",
"items": {
"type": "string"
}
},
"priceFromGbp": {
"description": "Lowest UK price we hold for a full-size bottle, in GBP. Excludes samples and decants. Null when we hold no full-size price.",
"type": [
"number",
"null"
]
},
"priceSizeMl": {
"description": "Bottle size in millilitres that PriceFromGbp applies to. 0 means the retailer did not state a size.",
"type": [
"number",
"null"
]
},
"pricePerMlGbp": {
"description": "PriceFromGbp divided by PriceSizeMl. USE THIS to compare value between fragrances, never the bottle price - a small bottle can look cheap while costing far more per millilitre. Null when the size is unknown.",
"type": [
"number",
"null"
]
},
"imageUrl": {
"description": "Bottle image URL. Null when we hold no image.",
"type": [
"string",
"null"
]
},
"scentArtUrl": {
"description": "ScentArt visual URL, generated from this fragrance's own composition. Null when not yet rendered.",
"type": [
"string",
"null"
]
},
"url": {
"description": "Canonical page URL, carrying the interactive scent wheel, drydown timeline and full descriptor profile.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"brandSlug",
"concentration",
"yearLaunched",
"verdictBadge",
"verdict",
"keyNotes",
"priceFromGbp",
"priceSizeMl",
"pricePerMlGbp",
"imageUrl",
"scentArtUrl",
"url"
]
},
"b": {
"description": "The second fragrance.",
"type": [
"object",
"null"
],
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"brandSlug": {
"description": "Brand slug.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt, Edp or Parfum. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"verdictBadge": {
"description": "Editorial classification: Favourite, Statement or Acquired. Null when not yet classified.",
"type": [
"string",
"null"
]
},
"verdict": {
"description": "The full ScentVerdict editorial verdict. Null when this row came from a source that carries no verdict.",
"type": [
"string",
"null"
]
},
"keyNotes": {
"description": "The most characteristic notes. May be empty.",
"$ref": "#/properties/a/properties/keyNotes",
"items": {}
},
"priceFromGbp": {
"description": "Lowest UK price we hold for a full-size bottle, in GBP. Excludes samples and decants. Null when we hold no full-size price.",
"type": [
"number",
"null"
]
},
"priceSizeMl": {
"description": "Bottle size in millilitres that PriceFromGbp applies to. 0 means the retailer did not state a size.",
"type": [
"number",
"null"
]
},
"pricePerMlGbp": {
"description": "PriceFromGbp divided by PriceSizeMl. USE THIS to compare value between fragrances, never the bottle price - a small bottle can look cheap while costing far more per millilitre. Null when the size is unknown.",
"type": [
"number",
"null"
]
},
"imageUrl": {
"description": "Bottle image URL. Null when we hold no image.",
"type": [
"string",
"null"
]
},
"scentArtUrl": {
"description": "ScentArt visual URL, generated from this fragrance's own composition. Null when not yet rendered.",
"type": [
"string",
"null"
]
},
"url": {
"description": "Canonical page URL, carrying the interactive scent wheel, drydown timeline and full descriptor profile.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"brandSlug",
"concentration",
"yearLaunched",
"verdictBadge",
"verdict",
"keyNotes",
"priceFromGbp",
"priceSizeMl",
"pricePerMlGbp",
"imageUrl",
"scentArtUrl",
"url"
]
},
"sharedNotes": {
"description": "Notes present in both.",
"type": "array",
"items": {
"type": "string"
}
},
"onlyInA": {
"description": "Notes only in the first.",
"type": "array",
"items": {
"type": "string"
}
},
"onlyInB": {
"description": "Notes only in the second.",
"type": "array",
"items": {
"type": "string"
}
},
"comparisonUrl": {
"description": "Canonical URL of the comparison page.",
"type": [
"string",
"null"
]
},
"notFound": {
"description": "Set when either fragrance is not in the catalogue.",
"type": [
"object",
"null"
],
"properties": {
"notFound": {
"description": "Always true. The requested fragrance is not in the catalogue.",
"type": "boolean"
},
"query": {
"description": "What was asked for.",
"type": "string"
},
"suggestions": {
"description": "Close catalogue entries the user may have meant. May be empty. Never treat these as the answer without confirming.",
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt or Edp. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"url": {
"description": "Canonical page URL.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"concentration",
"yearLaunched",
"url"
]
}
}
},
"required": [
"notFound",
"query",
"suggestions"
]
},
"error": {
"description": "Set when the comparison could not be completed.",
"type": [
"string",
"null"
]
}
},
"required": [
"a",
"b",
"sharedNotes",
"onlyInA",
"onlyInB",
"comparisonUrl",
"notFound",
"error"
]
}🟢recommend_fragrances(season, occasion, budgetMaxGbp, genderPresentation, intensity, ...)
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 UK bottle prices we hold, so the constraints are filtered rather than approximated. Each priced row carries its price, 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.
入力スキーマ
{
"type": "object",
"properties": {
"season": {
"description": "Season the fragrance is for.",
"type": [
"string",
"null"
],
"enum": [
"Spring",
"Summer",
"Autumn",
"Winter",
null
],
"default": null
},
"occasion": {
"description": "Occasion the fragrance is for.",
"type": [
"string",
"null"
],
"enum": [
"Office",
"Date",
"Casual",
"Formal",
"Sport",
null
],
"default": null
},
"budgetMaxGbp": {
"description": "Maximum price in GBP for a full-size bottle.",
"type": [
"number",
"null"
],
"default": null
},
"genderPresentation": {
"description": "Who the fragrance presents as.",
"type": [
"string",
"null"
],
"enum": [
"Masculine",
"Feminine",
"Unisex",
null
],
"default": null
},
"intensity": {
"description": "How strong the fragrance should be.",
"type": [
"string",
"null"
],
"enum": [
"Sheer",
"Light",
"Moderate",
"Strong",
"Potent",
null
],
"default": null
},
"longevityMin": {
"description": "Minimum staying power.",
"type": [
"string",
"null"
],
"enum": [
"Fleeting",
"Short",
"Moderate",
"Long",
"Beast",
null
],
"default": null
},
"noteLoved": {
"description": "A single note the user likes, for example vanilla.",
"type": [
"string",
"null"
],
"default": null
},
"limit": {
"description": "Maximum results. Default 5, maximum 10.",
"type": "integer",
"default": 5
}
}
}出力スキーマ
{
"type": "object",
"properties": {
"results": {
"description": "Matching fragrances. May be empty when the constraints are too narrow.",
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"brandSlug": {
"description": "Brand slug.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt, Edp or Parfum. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"verdictBadge": {
"description": "Editorial classification: Favourite, Statement or Acquired. Null when not yet classified.",
"type": [
"string",
"null"
]
},
"verdict": {
"description": "The full ScentVerdict editorial verdict. Null when this row came from a source that carries no verdict.",
"type": [
"string",
"null"
]
},
"keyNotes": {
"description": "The most characteristic notes. May be empty.",
"type": "array",
"items": {
"type": "string"
}
},
"priceFromGbp": {
"description": "Lowest UK price we hold for a full-size bottle, in GBP. Excludes samples and decants. Null when we hold no full-size price.",
"type": [
"number",
"null"
]
},
"priceSizeMl": {
"description": "Bottle size in millilitres that PriceFromGbp applies to. 0 means the retailer did not state a size.",
"type": [
"number",
"null"
]
},
"pricePerMlGbp": {
"description": "PriceFromGbp divided by PriceSizeMl. USE THIS to compare value between fragrances, never the bottle price - a small bottle can look cheap while costing far more per millilitre. Null when the size is unknown.",
"type": [
"number",
"null"
]
},
"imageUrl": {
"description": "Bottle image URL. Null when we hold no image.",
"type": [
"string",
"null"
]
},
"scentArtUrl": {
"description": "ScentArt visual URL, generated from this fragrance's own composition. Null when not yet rendered.",
"type": [
"string",
"null"
]
},
"url": {
"description": "Canonical page URL, carrying the interactive scent wheel, drydown timeline and full descriptor profile.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"brandSlug",
"concentration",
"yearLaunched",
"verdictBadge",
"verdict",
"keyNotes",
"priceFromGbp",
"priceSizeMl",
"pricePerMlGbp",
"imageUrl",
"scentArtUrl",
"url"
]
}
},
"caveat": {
"description": "Caveat about how the constraints were applied. Null when there is nothing to qualify.",
"type": [
"string",
"null"
]
}
},
"required": [
"results",
"caveat"
]
}🟢get_fragrance(slug)
Look up one fragrance in ScentVerdict's catalogue: its notes, ScentVerdict's own verdict, concentration, launch year, and the lowest current UK price for a full-size bottle. 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.
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"description": "The fragrance slug, for example bleu-de-chanel. Use search_fragrances if you do not have one.",
"type": "string"
}
},
"required": [
"slug"
]
}出力スキーマ
{
"type": "object",
"properties": {
"fragrance": {
"description": "The fragrance. Null when not found or on error.",
"type": [
"object",
"null"
],
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"brandSlug": {
"description": "Brand slug.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt, Edp or Parfum. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"verdictBadge": {
"description": "Editorial classification: Favourite, Statement or Acquired. Null when not yet classified.",
"type": [
"string",
"null"
]
},
"verdict": {
"description": "The full ScentVerdict editorial verdict. Null when this row came from a source that carries no verdict.",
"type": [
"string",
"null"
]
},
"keyNotes": {
"description": "The most characteristic notes. May be empty.",
"type": "array",
"items": {
"type": "string"
}
},
"priceFromGbp": {
"description": "Lowest UK price we hold for a full-size bottle, in GBP. Excludes samples and decants. Null when we hold no full-size price.",
"type": [
"number",
"null"
]
},
"priceSizeMl": {
"description": "Bottle size in millilitres that PriceFromGbp applies to. 0 means the retailer did not state a size.",
"type": [
"number",
"null"
]
},
"pricePerMlGbp": {
"description": "PriceFromGbp divided by PriceSizeMl. USE THIS to compare value between fragrances, never the bottle price - a small bottle can look cheap while costing far more per millilitre. Null when the size is unknown.",
"type": [
"number",
"null"
]
},
"imageUrl": {
"description": "Bottle image URL. Null when we hold no image.",
"type": [
"string",
"null"
]
},
"scentArtUrl": {
"description": "ScentArt visual URL, generated from this fragrance's own composition. Null when not yet rendered.",
"type": [
"string",
"null"
]
},
"url": {
"description": "Canonical page URL, carrying the interactive scent wheel, drydown timeline and full descriptor profile.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"brandSlug",
"concentration",
"yearLaunched",
"verdictBadge",
"verdict",
"keyNotes",
"priceFromGbp",
"priceSizeMl",
"pricePerMlGbp",
"imageUrl",
"scentArtUrl",
"url"
]
},
"notFound": {
"description": "Set when the fragrance is not in the catalogue. Carries suggestions.",
"type": [
"object",
"null"
],
"properties": {
"notFound": {
"description": "Always true. The requested fragrance is not in the catalogue.",
"type": "boolean"
},
"query": {
"description": "What was asked for.",
"type": "string"
},
"suggestions": {
"description": "Close catalogue entries the user may have meant. May be empty. Never treat these as the answer without confirming.",
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"description": "Stable identifier. Pass this to other tools.",
"type": "string"
},
"name": {
"description": "Fragrance name without the brand.",
"type": "string"
},
"brand": {
"description": "Brand name.",
"type": "string"
},
"concentration": {
"description": "Concentration, for example Edt or Edp. Null when unknown.",
"type": [
"string",
"null"
]
},
"yearLaunched": {
"description": "Year first launched. Null when unknown.",
"type": [
"integer",
"null"
]
},
"url": {
"description": "Canonical page URL.",
"type": "string"
}
},
"required": [
"slug",
"name",
"brand",
"concentration",
"yearLaunched",
"url"
]
}
}
},
"required": [
"notFound",
"query",
"suggestions"
]
},
"error": {
"description": "Set when the lookup could not be completed. Explain this rather than guessing.",
"type": [
"string",
"null"
]
}
},
"required": [
"fragrance",
"notFound",
"error"
]
}推奨プロンプト
search_fragrancessearch_fragrancesget_scent_profileget_scent_profilesearch_fragrancesget_scent_profileコミュニティ
エビデンス