Skip to main content
Glama

10ML Perfume Finder

Server Details

Free perfume MCP server and fragrance API: 5,400+ perfumes, note pyramids, accords, similar scents.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Server Listing
10ML Perfume Finder

TDQS

A4.6/5.0

Scored across 15 tools

Disambiguation5/5

Every tool targets a distinct intent and each description explicitly states what it is NOT for and which sibling tool to use instead (e.g. search_perfumes vs find_similar_perfumes vs find_perfume_alternatives). Adjacent tools like recommend_perfumes, pick_for_occasion and find_gift are clearly delineated by their stated inputs (taste vs fixed moment vs recipient).

Naming Consistency4/5

Most names follow a verb_noun pattern (find_similar_perfumes, get_perfume, explain_note, recommend_perfumes). The single 'perfumes_by_note' breaks the pattern, and the find_/search_ verb split adds slight inconsistency but remains readable and predictable overall.

Tool Count5/5

15 tools sits at the top of the ideal range and each one covers a genuine, non-redundant capability of a fragrance discovery/education domain. Nothing feels padded or trivial.

Completeness5/5

The surface covers the full lifecycle: search, single-perfume lookup, comparison, similarity, editorial dupes, note/term education, house browsing, guides, gifting, occasion picks, taste-based recommendations and layering. No obvious dead ends for the stated discovery purpose.

Available Tools

15 tools
compare_perfumesCompare perfumesA
Read-onlyIdempotent
Inspect

Compare 2 to 4 perfumes side by side: notes they share, notes only one has, accords, family, audience, launch year, longevity and projection, plus plain-language differences ('A is fresher, B is sweeter and lasts longer') and how close they are overall. Use when someone is choosing between named perfumes or asks how two differ ('Sauvage vs Bleu', 'Delina or Layton'). Not for finding perfumes like one (use find_similar_perfumes) and not for one perfume's details (use get_perfume).

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
perfumesYes2 to 4 perfumes, each a name with optional house or an id. Example: ["Dior Sauvage","Tom Ford Ombre Leather"]
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceYes
messageNo
perfumesYes
closenessYes
unresolvedNo
differencesYes
shared_notesYes
unique_notesYes
shared_accordsYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered; the description adds the comparison scope (side-by-side dimensions) and the style of output ('plain-language differences', overall closeness), which is useful behavioral context. It stops short of noting output size or the effect of response_format beyond what the schema states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first clause, then examples, then exclusions. Each sentence carries distinct information with no filler or repeated schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description still supplies everything else an agent needs: comparison scope, trigger conditions, and disambiguation from the nearest siblings. Nothing required to select or call the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the perfumes array (2-4 items, name with optional house or id), locale enum, and response_format are all fully documented in the schema. The description's only parameter-relevant statement is the 2-to-4 range, which duplicates maxItems/minItems, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (compare) and resource (2-4 perfumes) and enumerates exactly what dimensions are compared: shared/unique notes, accords, family, audience, year, longevity, projection, plus natural-language verdicts. It names two sibling tools it is not (find_similar_perfumes, get_perfume), so an agent can route without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions with example phrasings ('Sauvage vs Bleu', 'Delina or Layton') and explicit exclusions with the correct alternatives for each. Nothing is left to inference for an agent deciding between compare_perfumes, find_similar_perfumes, and get_perfume.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_noteExplain a noteA
Read-onlyIdempotent
Inspect

Explain a fragrance note: what it smells like, its family and mood, where it comes from, which notes it pairs with, similar notes, famous perfumes where it leads and a link to the 10ML note page or guide when one exists. Covers about 285 notes in many spellings and languages. Use for 'what does ambroxan smell like', 'what is oud', 'what goes with bergamot'. Not for listing every perfume with the note (use perfumes_by_note) and not for general terms like EDP or sillage (use explain_perfume_term).

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesThe note. Examples: "ambroxan", "oud", "iris", "orris", "Bergamotte"
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
foundYes
linksNo
sourceYes
messageNo
suggestionsNo
famous_perfumesNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the returned content structure and the breadth/limitation of the knowledge base (roughly 285 notes, multiple spellings and languages, link only when one exists), which tells the agent what it can and cannot expect from a lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the return contents, then examples, then exclusions, so the most decision-relevant information comes first. The content enumeration is long but each clause maps to a distinct returned field, so little is wasted; only slight trimming is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not explain return values, yet it still summarizes them, and annotations cover the safety profile. Combined with explicit alternatives and trigger examples, an agent has everything needed to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with enum values and defaults documented for locale and response_format, so the schema does the heavy lifting. The description adds only marginal parameter context, implying the link target depends on locale; it does not clarify note spelling tolerance or detailed-vs-concise trade-offs beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Explain a fragrance note') and then enumerates exactly what the explanation covers: smell, family, mood, origin, pairings, similar notes, leading perfumes, and a page link. It also states coverage scope (about 285 notes in many spellings and languages), so an agent knows the tool's reach without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit trigger queries ('what does ambroxan smell like', 'what is oud', 'what goes with bergamot') and two named exclusions with the correct alternative for each: perfumes_by_note for listing perfumes with the note, and explain_perfume_term for general terms like EDP or sillage. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_perfume_termExplain a perfume termA
Read-onlyIdempotent
Inspect

Explain perfume vocabulary and fragrance families: concentrations (EDC, EDT, EDP, extrait, elixir), sillage, projection, longevity, dry down, accord, top/heart/base notes, flanker, maceration, layering, niche vs designer, plus the 23 fragrance families (chypre, fougere, gourmand, oriental / amber...) with their key notes and example perfumes. Use for 'what is the difference between EDT and EDP', 'what is a chypre', 'what does sillage mean'. Leave term empty to list everything covered. Not for individual notes (use explain_note).

ParametersJSON Schema
NameRequiredDescriptionDefault
termNoA term or family. Examples: "EDP", "sillage", "chypre", "dry down", "fougere". Omit to list all terms.
limitNoHow many results per page (1-60, default 12).
cursorNonext_cursor from the previous page; omit for the first page.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
sourceYes
matchesYes
messageNo
availableNo
next_cursorNo
suggestionsNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: the full scope of what is covered, and that omitting the term returns the entire term list rather than erroring. It does not discuss paging or result shape, but the output schema carries that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then coverage, then trigger examples, then the exclusion. The parenthetical term inventory is long but earns its place by telling the agent exactly which lookups will succeed rather than fail. Slightly dense for a single sentence chain, but no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the schema documents all four parameters. The description supplies everything else an agent needs: coverage boundaries, empty-term behavior, and the sibling to use for similar-but-out-of-scope requests.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's parameter-relevant statements ('leave term empty to list everything covered') largely duplicate the schema's 'Omit to list all terms', and its term examples mirror the schema's examples, adding little beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb (explain) and an enumerated resource scope: concentrations, sillage, projection, longevity, dry down, accord, note structure, flanker, maceration, layering, niche vs designer, plus 23 families. It explicitly distinguishes itself from the sibling explain_note, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives literal phrasing for triggering queries ('what is the difference between EDT and EDP', 'what is a chypre', 'what does sillage mean'), states the empty-term behavior for browsing the full catalog, and names the exclusion case with the correct alternative (individual notes -> explain_note).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_giftFind a perfume giftA
Read-onlyIdempotent
Inspect

Perfume gift ideas from who the gift is for: recipient (him, her or anyone), relationship, age range, perfumes or notes they already love, style, occasion and how adventurous to be. Each pick comes with the reason it suits them. Use for 'gift for a woman who loves Delina', 'something safe for my dad' or 'a bold present for a friend'. Not for personal taste recommendations (use recommend_perfumes) and not for classics lists (use search_perfumes with iconic true).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results per page (1-12, default 5).
lovesNoPerfumes they already wear or love, e.g. ["Delina"]
styleNo
cursorNonext_cursor from the previous page; omit for the first page.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
boldnessNosafe: crowd-pleasing classics; adventurous: distinctive niche pickssafe
occasionNoWhen they would wear it most, e.g. "office"
age_rangeNoAge range of the recipient
recipientYesWho the gift is for: him (men and unisex), her (women and unisex) or anyone (unisex-friendly)
liked_notesNoNotes they like, e.g. ["vanilla","rose"]
relationshipNoExample: "partner", "dad", "colleague", "friend"
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipYes
picksYes
totalYes
sourceYes
messageNo
unresolvedNo
next_cursorNo

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: each result arrives with the reason it suits the recipient, which tells the agent what the payload contains beyond raw matches. It does not discuss result volume or how paging interacts with the limit, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what the tool returns, followed by trigger examples and then exclusions. No filler and nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter tool with an output schema and rich annotations, the description supplies exactly the missing layer: purpose, usage triggers, sibling routing, and the shape of the returned reasoning. Nothing an agent needs in order to choose and call this tool correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 92%, so per-parameter documentation is largely handled by the schema and a baseline of 3 applies. The description nonetheless adds real semantic value by mapping a natural-language gift request onto the facet set (recipient, relationship, age range, loved perfumes/notes, style, occasion, boldness), showing how a vague human request decomposes into these inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (perfume gift ideas) and immediately scopes it by the gift-recipient framing rather than personal taste. It explicitly names the siblings it is not (recommend_perfumes, search_perfumes with iconic true), so an agent can distinguish it without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger examples ('gift for a woman who loves Delina', 'something safe for my dad', 'a bold present for a friend') plus explicit exclusions that route to recommend_perfumes for personal taste and search_perfumes for classics lists. Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_perfume_alternativesFind perfume alternativesA
Read-onlyIdempotent
Inspect

The editors' alternatives (dupes) to a famous perfume from other houses: for each, why it is close and how close (very close, similar vibe, same spirit), plus the 10ML guide that compares them. Covers about 100 iconic originals such as Creed Aventus, Baccarat Rouge 540, Delina, Sauvage, Black Opium or Santal 33. For other perfumes in the index the closest options from different houses are computed from notes and accords. Use for 'dupe of X', 'alternative to X', 'smells like X but from another house'. Not for general similarity inside the index (use find_similar_perfumes) and not for free-text discovery (use search_perfumes).

ParametersJSON Schema
NameRequiredDescriptionDefault
houseNoHouse of the original when the name is ambiguous, e.g. "Parfums de Marly"
limitNoHow many results per page (1-10, default 6).
cursorNonext_cursor from the previous page; omit for the first page.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
perfumeYesThe famous perfume to find alternatives for. Examples: "Creed Aventus", "Baccarat Rouge 540", "Delina"
closenessNoOnly alternatives at this closeness

Output Schema

ParametersJSON Schema
NameRequiredDescription
guideNo
linksYes
totalYes
sourceYes
messageNo
originalYes
next_cursorNo
alternativesYes
other_matchesNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description adds substantive non-obvious behavior: roughly 100 iconic originals are editorially curated while other perfumes get computed note/accord-based alternatives, and each result includes a reason plus a closeness rating. It does not mention rate limits or empty-result behavior, keeping it out of 5 territory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and the 'why/how close' payload, then coverage scope, then routing rules. Dense but every sentence carries information; the long enumeration of example originals is slightly list-heavy but helps matching.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present for return values and annotations covering the safety profile, the description supplies the remaining pieces an agent needs: what the tool returns conceptually (reason + closeness + guide), the curated-vs-computed coverage boundary, and sibling routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining the closeness tiers (very close, similar vibe, same spirit) as the qualitative distance measure and by framing 'house' as the disambiguator for the original. This is modest but real added value over the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (editorial dupe alternatives for a famous perfume from other houses) and explicitly contrasts itself with find_similar_perfumes and search_perfumes. An agent can distinguish it from all 14 siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger phrases ('dupe of X', 'alternative to X', 'smells like X but from another house') and explicit exclusions with the named alternative tool for each. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_similar_perfumesFind similar perfumesA
Read-onlyIdempotent
Inspect

Find perfumes that smell like one the person already likes, ranked by shared notes, accords and style, each saying exactly what it shares and how close it is (very close, similar vibe, same spirit). Works from a perfume in the index (name and house, or id) OR from free notes/accords for any other perfume. Steer the result: fresher, sweeter, darker, lighter, longer_lasting or more_projection. Use for 'something like Baccarat Rouge 540', 'like Sauvage but fresher' or 'a perfume with notes of saffron and cedar'. Not for editorial dupes of a famous perfume from other houses (use find_perfume_alternatives) and not for free-text discovery (use search_perfumes).

ParametersJSON Schema
NameRequiredDescriptionDefault
houseNoHouse of the perfume when the name alone is ambiguous, e.g. "Maison Francis Kurkdjian"
limitNoHow many results per page (1-15, default 8).
notesNoKnown notes of the starting perfume, for perfumes outside the index. Example: ["jasmine","saffron","ambergris","cedar"]
steerNoMove away from the starting point in one direction: fresher, sweeter, darker, lighter, longer_lasting (needs a perfume in the index) or more_projection (same).
cursorNonext_cursor from the previous page; omit for the first page.
genderNoOnly return perfumes for this audience (men and women include unisex)
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
accordsNoKnown accords of the starting perfume. Example: ["amber","woody","sweet"]
perfumeNoA perfume by name, optionally with its house, e.g. "Baccarat Rouge 540", "Dior Sauvage", "Delina". Or pass an id from another tool.
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise
other_houses_onlyNoTrue to leave out perfumes from the same house as the starting perfume

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
sourceYes
targetYes
messageNo
resultsYes
next_cursorNo
unrecognised_notesNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds real behavioral context beyond that: the ranking logic, the three closeness tiers, and the fact that steer moves the result in one direction. It does not discuss pagination or result-count/empty-result behavior, so a 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then usage modes, then steering, then exclusions — a logical order with no filler sentences. It is on the long side for a single paragraph, but given 11 parameters and non-obvious dual-mode semantics the length is largely justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return details need not be documented, and annotations cover the safety profile. Combined with 100% schema coverage, the description supplies everything else an agent needs: purpose, dual input modes, steering direction, and sibling disambiguation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 and the schema already documents every parameter. The description goes slightly beyond it by tying the inputs together into two operating modes (an indexed perfume via name/house/id versus free notes/accords for anything else), which the schema does not spell out as a combined usage pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Find perfumes that smell like one the person already likes') plus the ranking basis (shared notes, accords, style) and the output shape (each result says what it shares and how close). It explicitly declares what it is not, naming siblings find_perfume_alternatives and search_perfumes, so an agent can separate it from those without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger phrasings ('something like Baccarat Rouge 540', 'like Sauvage but fresher') and explicit exclusions with the correct alternative for each case (editorial dupes -> find_perfume_alternatives, free-text discovery -> search_perfumes). Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_houseGet perfume houseA
Read-onlyIdempotent
Inspect

Profile of a perfume house: country, founded year, style (designer, niche, Middle Eastern, indie), what it is known for, its signature perfumes in the index and a link to explore it at 10ML. Understands nicknames (YSL, MFK, PDM, Paco Rabanne). Use for 'tell me about Creed', 'what is Amouage known for' or 'best Dior perfumes'. Not for browsing all houses (use list_houses) and not for one perfume (use get_perfume).

ParametersJSON Schema
NameRequiredDescriptionDefault
houseYesThe house. Examples: "Creed", "YSL", "Maison Francis Kurkdjian", "Parfums de Marly"
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundYes
houseNo
linksNo
sourceYes
messageNo
suggestionsNo
signature_perfumesNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnlyHint, idempotentHint, non-destructive), so the bar is lower. The description adds a genuine behavioral trait not in the annotations: nickname resolution (YSL, MFK, PDM, Paco Rabanne). Return contents are largely covered by the output schema, so this is a solid but not maximal contribution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences ordered purpose, capabilities, then usage/exclusions. The capability list is dense but every clause maps to a real return field, and the routing instructions are front-loaded enough to act on immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not explain return values, and annotations cover the safety profile. What remains for an agent to decide correctly — what the tool is, when to use it, and which siblings to route to instead — is fully present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter (house, locale, response_format) is already documented in the schema with examples and enum meanings. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource (perfume house profile) and enumerates exactly what it returns (country, founded year, style, signature perfumes, link), then names the two siblings it is not (list_houses, get_perfume). An agent can distinguish it from all 14 siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete trigger phrases ('tell me about Creed', 'what is Amouage known for') and explicit exclusions with the correct alternative for each ('Not for browsing all houses (use list_houses) and not for one perfume (use get_perfume)'). This is textbook when-to-use / when-not-to-use routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_perfumeGet perfume profileA
Read-onlyIdempotent
Inspect

The full Fragrance Index profile of one perfume: house, launch year, audience, family, accords, note pyramid (top, heart and base notes), best seasons and occasions, longevity, projection and perfumers (full profiles), the editors' character description, five similar perfumes, editorial alternatives from other houses when they exist, related 10ML guides and links. Use when you know which perfume is meant and need facts about it ('tell me about Aventus', 'what notes are in Delina', 'what does Baccarat Rouge 540 smell like'). Not for browsing (use search_perfumes), not for comparing two or more (use compare_perfumes). Unknown names return the closest matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
houseNoHouse, when the name alone is ambiguous. Example: "Creed"
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
perfumeYesA perfume by name, optionally with its house, e.g. "Baccarat Rouge 540", "Dior Sauvage", "Delina". An id from another tool also works, e.g. "creed-aventus".
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
exactYes
foundYes
guidesNo
sourceYes
messageNo
perfumeNo
similarNo
house_infoNo
suggestionsNo
alternativesNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely useful behavior beyond that: unknown names return the closest matches, and editorial alternatives only appear 'when they exist'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose followed by the field inventory, usage triggers, and exclusions in a compact block. The field enumeration is dense but each item earns its place by telling the agent what it can expect; it could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, yet the description still summarizes the payload. Combined with full schema coverage and explicit routing guidance, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (perfume, house, locale, response_format) are already documented in the schema with examples and defaults. The description adds no parameter-level syntax or format detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('The full Fragrance Index profile of one perfume') and then enumerates the exact payload (house, launch year, note pyramid, similar perfumes, editors' description), so an agent knows precisely what it returns. It is clearly distinguishable from siblings like search_perfumes and compare_perfumes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use triggers with concrete utterances ('tell me about Aventus', 'what notes are in Delina') and explicit when-not-to-use routing to search_perfumes for browsing and compare_perfumes for comparisons. It even documents the failure mode for unknown names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_housesList perfume housesA
Read-onlyIdempotent
Inspect

Browse the perfume houses in the 10ML Fragrance Index with country, type (designer, niche, middle-eastern, indie, celebrity), perfumes profiled and what each is known for. Filter by type, country or a name fragment. Use when someone wants to explore brands, find niche or Middle Eastern houses, or see which houses are covered. Not for one house's full profile (use get_house) and not for perfumes (use search_perfumes).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOnly houses of this type
limitNoHow many results per page (1-50, default 20).
queryNoPart of a house name, e.g. "tom" or "maison"
cursorNonext_cursor from the previous page; omit for the first page.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
countryNoOnly houses from this country, e.g. "France", "Italy", "United Arab Emirates"

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
housesYes
sourceYes
messageNo
next_cursorNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds useful context beyond that by describing what the listing contains (country, type, perfumes profiled, what each house is known for) and the filter axes available.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and its contents, then usage, then exclusions — a logical order with no filler. It is slightly redundant in restating the enum values that the schema already lists, which keeps it just short of perfect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, yet the description still summarizes the payload fields. Combined with the routing exclusions and annotation coverage, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all six parameters are documented in the schema, so the baseline is 3. The description names the filter dimensions (type, country, name fragment) and echoes the type enum values, but adds no syntax, format or interaction detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Browse the perfume houses in the 10ML Fragrance Index') and enumerates the returned fields. It explicitly names the siblings it is not (get_house for a single profile, search_perfumes for perfumes), so an agent can separate it from neighbours without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use triggers ('explore brands', 'find niche or Middle Eastern houses', 'see which houses are covered') and explicit exclusions with named alternatives for both of them. Nothing about routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

perfumes_by_notePerfumes by noteA
Read-onlyIdempotent
Inspect

List the perfumes in the 10ML Fragrance Index built around a note (vanilla, oud, bergamot, tonka bean, rose, iris, leather, sandalwood...), most prominent first, optionally only where the note sits in the top, heart or base, or for an audience, season or occasion. Spelling variants and other languages work (agarwood finds oud, Vanille finds vanilla). Use for 'perfumes with oud', 'a vanilla scent for winter' or 'bergamot-forward colognes for men'. Not for explaining what a note smells like (use explain_note) and not for several notes at once (use search_perfumes with notes_include).

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesThe note. Examples: "oud", "vanilla", "pink pepper", "Vanille"
limitNoHow many results per page (1-20, default 8).
cursorNonext_cursor from the previous page; omit for the first page.
genderNoAudience the perfume is marketed to. men and women also include unisex perfumes.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
seasonNoSeason the perfume suits (fall is accepted in text queries as autumn).
occasionNoOccasion the perfume suits: daytime, office, casual, evening, date night or special occasion.
positionNoWhere the note sits in the pyramid: top, heart, base or anyany
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
totalYes
sourceYes
messageNo
resultsYes
next_cursorNo

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: results are ordered by note prominence, and spelling variants and other languages are normalized (agarwood→oud, Vanille→vanilla). It does not mention pagination behavior, though cursor is a parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then capabilities, then use cases, then exclusions. Every sentence earns its place; the parenthetical examples and disambiguation clauses all carry routing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described. The description covers purpose, ordering, note-matching semantics, filter dimensions, and sibling disambiguation for a 9-parameter tool. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description still adds meaning the schema lacks: it explains that note matching is fuzzy and multilingual, and it clarifies the position filter as top/heart/base placement. These are semantic additions, not restatements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list), resource (perfumes), and the organizing constraint (built around a single note), plus the ordering ('most prominent first'). It explicitly distinguishes itself from explain_note and search_perfumes, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger phrases ('perfumes with oud', 'a vanilla scent for winter', 'bergamot-forward colognes for men') and states two explicit exclusions with the sibling to use instead: explain_note for note definitions, search_perfumes with notes_include for multi-note queries. When-to-use and when-not are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pick_for_occasionPick perfumes for an occasionA
Read-onlyIdempotent
Inspect

Perfume picks for a moment: a season, an occasion (daytime, office, casual, evening, date night, special occasion), an audience and a style, each with the reason it fits. Use for 'a fresh summer office scent for men', 'date night perfume for her' or 'what to wear to a winter wedding'. Give at least one of season, occasion, gender or style. Not for taste-based matching (use recommend_perfumes), not for gifts (use find_gift) and not for classics (use search_perfumes with iconic true).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results per page (1-15, default 6).
styleNoStyles wanted, e.g. ["fresh","clean"] for summer office wear
cursorNonext_cursor from the previous page; omit for the first page.
genderNoAudience the perfume is marketed to. men and women also include unisex perfumes.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
seasonNoSeason the perfume suits (fall is accepted in text queries as autumn).
occasionNoOccasion the perfume suits: daytime, office, casual, evening, date night or special occasion.
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
picksYes
totalYes
guidesNo
sourceYes
filtersYes
messageNo
next_cursorNo

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent, closed-world read (readOnlyHint=true, idempotentHint=true, openWorldHint=false, destructiveHint=false), so the safety profile is covered. The description adds genuine value beyond that: results come 'each with the reason it fits', and it imposes an input constraint ('at least one of season, occasion, gender or style') that is not visible in the annotations. It stops short of describing pagination or result-shape behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, then examples, then exclusions. Every clause earns its place: the examples anchor the abstract categories, and the exclusion clause prevents the most likely misroutes. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers what remains: purpose, valid inputs, an input precondition, and explicit sibling routing. For an 8-parameter, zero-required tool this leaves nothing an agent needs unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with enums documented inline, so the baseline is 3 and the schema carries the field-level detail. The description still adds a cross-parameter constraint the schema cannot express - at least one of season, occasion, gender or style must be supplied - which meaningfully guides parameter filling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Perfume picks for a moment') and enumerates the dimensions that drive the pick (season, occasion, audience, style), each returned with its rationale. It also distinguishes itself from three named siblings, so an agent can separate it from recommend_perfumes, find_gift and search_perfumes without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete example queries ('a fresh summer office scent for men', 'date night perfume for her', 'what to wear to a winter wedding') plus the input precondition 'Give at least one of season, occasion, gender or style'. It explicitly names when NOT to use it and routes each case to the correct alternative (recommend_perfumes for taste, find_gift for gifts, search_perfumes with iconic true for classics).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_perfumesRecommend perfumesA
Read-onlyIdempotent
Inspect

Personal perfume recommendations from taste: perfumes they love or dislike, notes they like or avoid, plus gender, season, occasion, style and family. Every pick says why (shared notes with a loved perfume, a liked note, fits the season). Use when someone says what they enjoy or avoid and wants suggestions ('I love Delina and vanilla, nothing too sweet, for winter evenings'). Not for one-off filters without taste (use search_perfumes), not for a single occasion list (use pick_for_occasion) and not for gifts (use find_gift).

ParametersJSON Schema
NameRequiredDescriptionDefault
likesNoPerfumes they love, e.g. ["Parfums de Marly Delina","Dior Sauvage"]
limitNoHow many results per page (1-15, default 6).
styleNoStyles wanted, e.g. ["fresh","clean"]
cursorNonext_cursor from the previous page; omit for the first page.
familyNoA fragrance family or word like "woody" or "citrus"
genderNoAudience the perfume is marketed to. men and women also include unisex perfumes.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
seasonNoSeason the perfume suits (fall is accepted in text queries as autumn).
dislikesNoPerfumes they dislike; similar ones are pushed down
occasionNoOccasion the perfume suits: daytime, office, casual, evening, date night or special occasion.
liked_notesNoNotes they enjoy, e.g. ["vanilla","rose"]
avoided_notesNoNotes to exclude entirely, e.g. ["patchouli","oud"]
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
picksYes
tasteYes
totalYes
sourceYes
messageNo
unresolvedNo
next_cursorNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds real behavioral context beyond that: "Every pick says why (shared notes with a loved perfume, a liked note, fits the season)" tells the agent the output carries per-pick reasoning. It stops short of stating pagination/result-size behavior, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then input dimensions, then the reason output, then routing exclusions with an example. It is dense and every sentence carries information, though the parameter enumeration is long enough to be slightly heavier than needed given the schema already lists the same fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, read-only, zero-required-parameter tool with a full output schema, the description covers purpose, trigger, exclusions, output reasoning and the taste-to-parameter mapping. Return-value detail is legitimately left to the output schema, so nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 13 parameters (enums, limits, locale, cursor) are already documented in the schema. The description enumerates the taste dimensions but adds no format or syntax detail beyond what the schema supplies; the natural-language example implicitly maps to parameters but does not expand their semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (recommend) plus resource (perfumes) with an explicit basis: taste inputs like loved/disliked perfumes and liked/avoided notes. It also names the alternatives it is not (search_perfumes, pick_for_occasion, find_gift), so an agent can separate it from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ("Use when someone says what they enjoy or avoid and wants suggestions") with a concrete example utterance ("I love Delina and vanilla, nothing too sweet, for winter evenings"), and three explicit when-NOT conditions routing to search_perfumes, pick_for_occasion and find_gift. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_guidesSearch 10ML guidesA
Read-onlyIdempotent
Inspect

Find 10ML's perfume guides and articles to read or cite: how-tos (where to spray, finding a signature scent, making perfume last), notes explained, house guides, lists, and alternatives guides that compare famous perfumes with similar ones from other houses. Returns title, type and a link per locale. Use whenever you want a source to cite or a deeper read ('how to layer perfume', 'best oud perfumes', 'Creed Aventus dupes guide'). Not for facts about a perfume (use get_perfume) and not for note definitions (use explain_note).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNohow-to, list (rankings/comparisons), alternatives (dupes guides), note (a note explained), house (a house mapped)
limitNoHow many results per page (1-20, default 8).
queryNoWhat the guide is about. Examples: "how to make perfume last", "oud", "Creed Aventus dupes", "gift". Omit to browse.
cursorNonext_cursor from the previous page; omit for the first page.
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
guidesYes
sourceYes
messageNo
next_cursorNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely useful context beyond that: it discloses the return shape (title, type, link per locale) and the citing use case, and it notes the per-locale nature of results. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and what it returns, then usage, then exclusions — a logical order. The sentences are long and list-heavy, but nearly every clause (categories, example queries, sibling routing) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety, a 100%-covered schema, and the return values documented by an output schema, this description supplies exactly the missing layer: what the tool finds, when to reach for it, and which siblings to use instead.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with enum and range constraints already documented for type, limit, cursor and locale, so the baseline is 3. The description restates the guide categories that map to the type enum and adds only marginal meaning (alternatives guides compare famous perfumes across houses) beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find/search) and resource (10ML perfume guides and articles) and enumerates the guide sub-types it covers. It explicitly names the siblings it is not (get_perfume, explain_note), so an agent can separate it from the other read tools without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use triggers ('a source to cite', 'a deeper read') with concrete example queries, plus explicit when-not-to-use routing to get_perfume and explain_note. Nothing about selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_perfumesSearch perfumesA
Read-onlyIdempotent
Inspect

Search the 10ML Fragrance Index for perfumes by name, house, notes, accords, family, audience, season, occasion or style. Natural language works: 'fresh citrus summer scent for men' is understood. Set iconic to true for only the editors' iconic, era-defining classics ('must-know perfumes for her', 'iconic winter scents'). Use when someone describes what they want or names a perfume or house and you need matching perfumes. Not for the full profile of one known perfume (use get_perfume), not for 'something like X' (use find_similar_perfumes) and not for dupes or alternatives to a famous perfume (use find_perfume_alternatives). Returns ranked perfumes with house, year, family, accords, key notes, an editorial character line and 10ml.com links.

ParametersJSON Schema
NameRequiredDescriptionDefault
houseNoOnly perfumes from this house. Examples: "Dior", "Maison Francis Kurkdjian", "MFK", "YSL"
limitNoHow many results per page (1-20, default 8).
queryNoFree text: a perfume name, house, notes or mood. Examples: "fresh citrus summer for men", "Tom Ford tobacco", "vanilla gourmand for winter"
styleNoA style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody.
cursorNonext_cursor from the previous page; omit for the first page.
familyNoFragrance family: fougere, chypre, oriental-amber, gourmand, aquatic, aromatic, woody, floral, white-floral, fruity, citrus, green, leather, oud, musky, powdery, spicy, tobacco-boozy, smoky-incense, aldehydic-floral, mineral, fresh-spicy-woody, tea-zen. Also accepts words like "amber" or "citrus".
genderNoAudience the perfume is marketed to. men and women also include unisex perfumes.
iconicNotrue = only the editors' iconic, era-defining classics (works with every other filter, and without a query)
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
seasonNoSeason the perfume suits (fall is accepted in text queries as autumn).
accordsNoAccords that must be present. Examples: ["woody","sweet"], ["fresh","aquatic"]
occasionNoOccasion the perfume suits: daytime, office, casual, evening, date night or special occasion.
notes_excludeNoNone of these notes may be present. Example: ["patchouli"]
notes_includeNoEvery listed note must be present. Examples: ["oud","rose"], ["vanilla"]
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
sourceYes
filtersYes
messageNo
relaxedYes
resultsYes
next_cursorNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuine context beyond that: natural-language queries are understood, iconic=true composes with any filter and needs no query, and it discloses the ranked return shape (house, year, family, accords, key notes, editorial line, 10ml.com links). It stops short of pagination/ranking-algorithm detail, which keeps it at 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then usage, then exclusions, then return shape – a logical order with no filler. It is dense across four sentences, but every sentence carries routing or behavioral information, so only marginal trimming is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still summarizes the result contents, and it fully handles the hard part for a 15-parameter, 0-required search tool: deciding when this search is the right call versus its many siblings. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so 3 is the floor. The description goes beyond the schema by explaining that free-text queries accept natural language and that iconic works 'with every other filter, and without a query' – cross-parameter semantics the schema does not state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (search the 10ML Fragrance Index for perfumes) and enumerates the dimensions searched (name, house, notes, accords, family, audience, season, occasion, style). It explicitly distinguishes itself from get_perfume, find_similar_perfumes and find_perfume_alternatives, so an agent can select it without opening a sibling schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('use when someone describes what they want or names a perfume or house and you need matching perfumes') plus three named exclusions that route to specific alternatives. Both when-to-use and when-not-to-use are covered with the receiving tool named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_layeringSuggest perfume layeringA
Read-onlyIdempotent
Inspect

Perfume layering ideas: which notes or perfumes combine well, what the combination smells like, how to spray (order, amount) and when it suits. Works from two notes ('vanilla and citrus'), one note (what it layers with), one perfume (partners from the index) or two perfumes (does this pair work). Editorial pairings are marked 'editors'; others are marked 'suggested' and should be tested on skin. Use for 'how do I layer vanilla', 'can I layer Delina with something', 'does Sauvage layer with Aventus'. Not for choosing a single perfume (use recommend_perfumes).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results per page (1-10, default 5).
notesNoOne or two notes. Examples: ["vanilla","citrus"], ["oud"]
localeNoLanguage of the 10ml.com links and labels. Perfume, house and note names stay as they are.en
perfumesNoOne or two perfumes. Examples: ["Parfums de Marly Delina"], ["Dior Sauvage","Creed Aventus"]
response_formatNoconcise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection).concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
pairsYes
adviceYes
sourceYes
messageNo
verdictNo
partnersNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful non-structural behavior: results are labeled 'editors' for editorial pairings vs 'suggested' for unvetted combinations that 'should be tested on skin', which tells the agent how to weight and caveat output. It does not discuss pagination or result counts beyond the schema's limit field.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the core capability, followed by input modes, result labeling, example queries, and the exclusion. Every sentence serves a purpose, though the three inline example phrasings plus the input-mode enumeration make it denser than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and annotations cover the safety profile. The description still supplies the input-mode semantics and result-trust labeling an agent needs to call this correctly, leaving no obvious gap for a 5-parameter, zero-required tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the semantic consequence of each parameter choice — a single perfume yields 'partners from the index', two perfumes answer 'does this pair work' — which the schema's terse examples do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (perfume layering combinations) and states exactly what the tool returns: which notes/perfumes combine, what the combination smells like, spray order and amount, and when it suits. It also differentiates itself from the closest sibling by stating 'Not for choosing a single perfume (use recommend_perfumes).'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It enumerates the four supported input shapes (two notes, one note, one perfume, two perfumes) and what each produces, then gives three concrete example queries. It explicitly names the alternative tool for the out-of-scope case (recommend_perfumes), so both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 16 tool updates
    • Changedcompare_perfumes15 fields changed
      • removedOutput schema / properties / closeness / description
        Removed value: -"How alike the perfumes are overall (average over all pairs)"
      • removedOutput schema / properties / differences / description
        Removed value: -"Plain-language differences, most important first"
      • removedOutput schema / properties / perfumes / items / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / perfumes / items / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / perfumes / items / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / perfumes / items / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / perfumes / items / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / perfumes / items / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / perfumes / items / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / perfumes / items / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / perfumes / items / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / perfumes / items / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / perfumes / items / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / shared_notes / description
        Removed value: -"Notes present in every compared perfume"
      • removedOutput schema / properties / unique_notes / description
        Removed value: -"Per perfume id: notes the others do not have"
    • Changedexplain_note12 fields changed
      • removedOutput schema / properties / famous_perfumes / items / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / famous_perfumes / items / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / famous_perfumes / items / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / famous_perfumes / items / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / famous_perfumes / items / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / famous_perfumes / items / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / famous_perfumes / items / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / famous_perfumes / items / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / famous_perfumes / items / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / famous_perfumes / items / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / famous_perfumes / items / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
    • Changedexplain_perfume_term4 fields changed
      • removedOutput schema / properties / available / description
        Removed value: -"Every term and family covered (only when term is omitted)"
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedfind_gift14 fields changed
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / picks / items / properties / perfume / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedfind_perfume_alternatives8 fields changed
      • removedOutput schema / properties / alternatives / items / properties / id / description
        Removed value: -"Fragrance Index id when the alternative has its own profile"
      • removedOutput schema / properties / guide / description
        Removed value: -"The 10ML guide comparing this perfume with its alternatives"
      • removedOutput schema / properties / guide / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / other_matches / description
        Removed value: -"Other originals the query could also mean"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedfind_similar_perfumes15 fields changed
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / results / items / properties / perfume / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / results / items / properties / perfume / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / results / items / properties / perfume / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / results / items / properties / perfume / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / results / items / properties / perfume / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / results / items / properties / perfume / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / results / items / properties / perfume / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / results / items / properties / perfume / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / results / items / properties / perfume / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / results / items / properties / perfume / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / results / items / properties / perfume / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
      • removedOutput schema / properties / unrecognised_notes / description
        Removed value: -"Notes that are not in the index vocabulary and were ignored"
    • Changedget_house12 fields changed
      • removedOutput schema / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / signature_perfumes / items / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / signature_perfumes / items / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / signature_perfumes / items / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / signature_perfumes / items / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / signature_perfumes / items / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / signature_perfumes / items / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / signature_perfumes / items / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / signature_perfumes / items / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / signature_perfumes / items / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / signature_perfumes / items / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / signature_perfumes / items / properties / year / description
        Removed value: -"Launch year when known"
    • Changedget_perfume31 fields changed
      • addedOutput schema / $defs
        Added value: +{
        +  "d1": {
        +    "items": {
        +      "properties": {
        +        "title": {
        +          "type": "string"
        +        },
        +        "type": {
        +          "enum": [
        +            "try",
        +            "guide",
        +            "note"
        +          ],
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "title",
        +        "url"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  }
        +}
      • removedOutput schema / properties / exact / description
        Removed value: -"False when this is a closest-match guess"
      • addedOutput schema / properties / guides / $ref
        Added value: +"#/$defs/d1"
      • removedOutput schema / properties / guides / items
        Removed value: -{
        -  "properties": {
        -    "title": {
        -      "type": "string"
        -    },
        -    "type": {
        -      "enum": [
        -        "try",
        -        "guide",
        -        "note"
        -      ],
        -      "type": "string"
        -    },
        -    "url": {
        -      "description": "A 10ml.com link in the requested locale",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "type",
        -    "title",
        -    "url"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / guides / type
        Removed value: -"array"
      • removedOutput schema / properties / perfume / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / perfume / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / perfume / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / perfume / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / perfume / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • addedOutput schema / properties / perfume / properties / links / $ref
        Added value: +"#/$defs/d1"
      • removedOutput schema / properties / perfume / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / perfume / properties / links / items
        Removed value: -{
        -  "properties": {
        -    "title": {
        -      "type": "string"
        -    },
        -    "type": {
        -      "enum": [
        -        "try",
        -        "guide",
        -        "note"
        -      ],
        -      "type": "string"
        -    },
        -    "url": {
        -      "description": "A 10ml.com link in the requested locale",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "type",
        -    "title",
        -    "url"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / perfume / properties / links / type
        Removed value: -"array"
      • removedOutput schema / properties / perfume / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / perfume / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / perfume / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / perfume / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / suggestions / items / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / suggestions / items / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / suggestions / items / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / suggestions / items / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / suggestions / items / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • addedOutput schema / properties / suggestions / items / properties / links / $ref
        Added value: +"#/$defs/d1"
      • removedOutput schema / properties / suggestions / items / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / suggestions / items / properties / links / items
        Removed value: -{
        -  "properties": {
        -    "title": {
        -      "type": "string"
        -    },
        -    "type": {
        -      "enum": [
        -        "try",
        -        "guide",
        -        "note"
        -      ],
        -      "type": "string"
        -    },
        -    "url": {
        -      "description": "A 10ml.com link in the requested locale",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "type",
        -    "title",
        -    "url"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / suggestions / items / properties / links / type
        Removed value: -"array"
      • removedOutput schema / properties / suggestions / items / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / suggestions / items / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / suggestions / items / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / suggestions / items / properties / year / description
        Removed value: -"Launch year when known"
    • Removediconic_perfumes
    • Changedlist_houses3 fields changed
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedperfumes_by_note15 fields changed
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / note / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / results / items / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / results / items / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / results / items / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / results / items / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / results / items / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / results / items / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / results / items / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / results / items / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / results / items / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / results / items / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / results / items / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedpick_for_occasion15 fields changed
      • removedOutput schema / properties / guides / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / picks / items / properties / perfume / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedrecommend_perfumes14 fields changed
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / picks / items / properties / perfume / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / picks / items / properties / perfume / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedsearch_guides4 fields changed
      • removedOutput schema / properties / guides / items / properties / translated / description
        Removed value: -"False when the guide is only available in English (the url is then the English page)"
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedsearch_perfumes17 fields changed
      • addedInput schema / properties / iconic
        Added value: +{
        +  "description": "true = only the editors' iconic, era-defining classics (works with every other filter, and without a query)",
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / filters / description
        Removed value: -"The filters applied, including ones read from the query text"
      • removedOutput schema / properties / message / description
        Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
      • removedOutput schema / properties / next_cursor / description
        Removed value: -"Pass as cursor to get the next page; absent on the last page"
      • removedOutput schema / properties / relaxed / description
        Removed value: -"True when no perfume matched every word and the closest partial matches are shown"
      • removedOutput schema / properties / results / items / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / results / items / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / results / items / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / results / items / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / results / items / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / results / items / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / results / items / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / results / items / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / results / items / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / results / items / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / results / items / properties / year / description
        Removed value: -"Launch year when known"
      • removedOutput schema / properties / total / description
        Removed value: -"How many results matched in all"
    • Changedsuggest_layering11 fields changed
      • removedOutput schema / properties / partners / items / properties / perfume / properties / accords / description
        Removed value: -"Main accords, strongest first"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / character / description
        Removed value: -"One-sentence description by 10ML's fragrance editors"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / family / description
        Removed value: -"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / partners / items / properties / perfume / properties / id / description
        Removed value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / key_notes / description
        Removed value: -"The defining notes (empty when no pyramid is published)"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / links / description
        Removed value: -"1-3 relevant 10ml.com links"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / links / items / properties / url / description
        Removed value: -"A 10ml.com link in the requested locale"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / longevity / description
        Removed value: -"1 (short) to 5 (very long)"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / other_versions / description
        Removed value: -"Ids of other concentrations or flankers of the same perfume in the index"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / projection / description
        Removed value: -"1 (skin scent) to 5 (fills a room)"
      • removedOutput schema / properties / partners / items / properties / perfume / properties / year / description
        Removed value: -"Launch year when known"
  2. 12 tool updates
    • Changedcompare_perfumes2 fields changed
      • addedOutput schema / properties / perfumes / items / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / perfumes / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedexplain_note2 fields changed
      • addedOutput schema / properties / famous_perfumes / items / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / famous_perfumes / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedfind_gift2 fields changed
      • addedOutput schema / properties / picks / items / properties / perfume / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / picks / items / properties / perfume / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedfind_similar_perfumes2 fields changed
      • addedOutput schema / properties / results / items / properties / perfume / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / perfume / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedget_house2 fields changed
      • addedOutput schema / properties / signature_perfumes / items / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / signature_perfumes / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedget_perfume4 fields changed
      • addedOutput schema / properties / perfume / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / perfume / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
      • addedOutput schema / properties / suggestions / items / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / suggestions / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changediconic_perfumes2 fields changed
      • addedOutput schema / properties / results / items / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedperfumes_by_note2 fields changed
      • addedOutput schema / properties / results / items / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedpick_for_occasion2 fields changed
      • addedOutput schema / properties / picks / items / properties / perfume / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / picks / items / properties / perfume / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedrecommend_perfumes2 fields changed
      • addedOutput schema / properties / picks / items / properties / perfume / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / picks / items / properties / perfume / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedsearch_perfumes2 fields changed
      • addedOutput schema / properties / results / items / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
    • Changedsuggest_layering2 fields changed
      • addedOutput schema / properties / partners / items / properties / perfume / properties / profile
        Added value: +{
        +  "enum": [
        +    "full",
        +    "core"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / partners / items / properties / perfume / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "key_notes",
        -  "character",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links",
        +  "profile"
        +]
  3. 17 tool updates
    • Changedcompare_perfumes9 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / perfumes / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / perfumes / items / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / perfumes / items / properties / pyramid / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / unresolved / items / additionalProperties
        Removed value: -false
    • Changedexplain_note10 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / famous_perfumes / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / famous_perfumes / items / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / famous_perfumes / items / properties / pyramid / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / note / additionalProperties
        Removed value: -false
    • Changedexplain_perfume_term6 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / matches / items / additionalProperties
        Removed value: -false
    • Changedfind_gift10 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / properties / pyramid / additionalProperties
        Removed value: -false
    • Changedfind_perfume_alternatives9 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / alternatives / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / guide / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / original / additionalProperties
        Removed value: -false
    • Changedfind_similar_perfumes11 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / perfume / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / perfume / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / perfume / properties / pyramid / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / target / additionalProperties
        Removed value: -false
    • Changedget_house10 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / house / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / signature_perfumes / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / signature_perfumes / items / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / signature_perfumes / items / properties / pyramid / additionalProperties
        Removed value: -false
    • Changedget_perfume15 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / alternatives / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / guides / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / house_info / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / perfume / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / perfume / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / perfume / properties / pyramid / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / similar / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / suggestions / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / suggestions / items / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / suggestions / items / properties / pyramid / additionalProperties
        Removed value: -false
    • Changediconic_perfumes9 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / pyramid / additionalProperties
        Removed value: -false
    • Changedlist_houses6 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / houses / items / additionalProperties
        Removed value: -false
    • Changedperfumes_by_note11 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / note / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / note / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / pyramid / additionalProperties
        Removed value: -false
    • Changedpick_for_occasion11 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / guides / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / properties / pyramid / additionalProperties
        Removed value: -false
    • Changedrecommend_perfumes11 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / picks / items / properties / perfume / properties / pyramid / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / taste / additionalProperties
        Removed value: -false
    • Changedsearch_guides6 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / guides / items / additionalProperties
        Removed value: -false
    • Changedsearch_perfumes9 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / results / items / properties / pyramid / additionalProperties
        Removed value: -false
    • Changedsuggest_layering10 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / locale / description
        Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
      • changedInput schema / properties / response_format / description
        Previous value: -"concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection."New value: +"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."
      • removedOutput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedOutput schema / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / pairs / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / partners / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / partners / items / properties / perfume / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / partners / items / properties / perfume / properties / links / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / partners / items / properties / perfume / properties / pyramid / additionalProperties
        Removed value: -false
    • Removedtrending_perfumes
  4. 17 tool updates
    • Addedcompare_perfumes
    • Addedexplain_note
    • Addedexplain_perfume_term
    • Addedfind_gift
    • Addedfind_perfume_alternatives
    • Changedfind_similar_perfumes47 fields changed
      • addedInput schema / properties / accords
        Added value: +{
        +  "description": "Known accords of the starting perfume. Example: [\"amber\",\"woody\",\"sweet\"]",
        +  "items": {
        +    "maxLength": 40,
        +    "type": "string"
        +  },
        +  "maxItems": 6,
        +  "type": "array"
        +}
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
      • changedInput schema / properties / gender / description
        Previous value: -"Only return perfumes for this audience (men/women include unisex)"New value: +"Only return perfumes for this audience (men and women include unisex)"
      • changedInput schema / properties / house / description
        Previous value: -"House of the perfume, e.g. \"Maison Francis Kurkdjian\""New value: +"House of the perfume when the name alone is ambiguous, e.g. \"Maison Francis Kurkdjian\""
      • removedInput schema / properties / id
        Removed value: -{
        -  "description": "Fragrance Index id of the perfume to match",
        -  "maxLength": 120,
        -  "type": "string"
        -}
      • addedInput schema / properties / limit / default
        Added value: +8
      • changedInput schema / properties / limit / description
        Previous value: -"How many results to return (1-10, default 8)."New value: +"How many results per page (1-15, default 8)."
      • changedInput schema / properties / limit / maximum
        Previous value: -10New value: +15
      • addedInput schema / properties / locale
        Added value: +{
        +  "default": "en",
        +  "description": "Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated.",
        +  "enum": [
        +    "en",
        +    "de",
        +    "fr",
        +    "es",
        +    "it",
        +    "ro",
        +    "el",
        +    "hu",
        +    "cs",
        +    "pl"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "Name of the perfume, e.g. \"Baccarat Rouge 540\"",
        -  "maxLength": 120,
        -  "type": "string"
        -}
      • changedInput schema / properties / notes / description
        Previous value: -"Known notes of the perfume (use when it is not in the index), e.g. [\"jasmine\",\"saffron\",\"ambergris\",\"cedar\"]"New value: +"Known notes of the starting perfume, for perfumes outside the index. Example: [\"jasmine\",\"saffron\",\"ambergris\",\"cedar\"]"
      • changedInput schema / properties / notes / maxItems
        Previous value: -40New value: +30
      • addedInput schema / properties / other_houses_only
        Added value: +{
        +  "default": false,
        +  "description": "True to leave out perfumes from the same house as the starting perfume",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / perfume
        Added value: +{
        +  "description": "A perfume by name, optionally with its house, e.g. \"Baccarat Rouge 540\", \"Dior Sauvage\", \"Delina\". Or pass an id from another tool.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / steer
        Added value: +{
        +  "description": "Move away from the starting point in one direction: fresher, sweeter, darker, lighter, longer_lasting (needs a perfume in the index) or more_projection (same).",
        +  "enum": [
        +    "fresher",
        +    "sweeter",
        +    "darker",
        +    "lighter",
        +    "longer_lasting",
        +    "more_projection"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message / description
        Added value: +"Guidance when the result is empty, partial or needs a follow-up tool"
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "description": "Pass as cursor to get the next page; absent on the last page",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / accords
        Removed value: -{
        -  "description": "Main accords, strongest first",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / results / items / properties / character
        Removed value: -{
        -  "description": "One-sentence editorial description by 10ML's fragrance editors",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / closeness
        Added value: +{
        +  "enum": [
        +    "very close",
        +    "similar vibe",
        +    "same spirit"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / family
        Removed value: -{
        -  "description": "Fragrance family",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / gender
        Removed value: -{
        -  "enum": [
        -    "men",
        -    "women",
        -    "unisex"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / guideUrl
        Removed value: -{
        -  "description": "A 10ML guide about this perfume",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / house
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / houseUrl
        Removed value: -{
        -  "description": "The house page on 10ml.com",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / id
        Removed value: -{
        -  "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / keyNotes
        Removed value: -{
        -  "description": "The defining notes",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / results / items / properties / name
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / perfume
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "accords": {
        +      "description": "Main accords, strongest first",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "character": {
        +      "description": "One-sentence description by 10ML's fragrance editors",
        +      "type": "string"
        +    },
        +    "concentration": {
        +      "type": "string"
        +    },
        +    "family": {
        +      "description": "Fragrance family, e.g. \"amber floral\"",
        +      "type": "string"
        +    },
        +    "gender": {
        +      "enum": [
        +        "men",
        +        "women",
        +        "unisex"
        +      ],
        +      "type": "string"
        +    },
        +    "house": {
        +      "type": "string"
        +    },
        +    "id": {
        +      "description": "Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes",
        +      "type": "string"
        +    },
        +    "key_notes": {
        +      "description": "The defining notes (empty when no pyramid is published)",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "links": {
        +      "description": "1-3 relevant 10ml.com links",
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "title": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "enum": [
        +              "try",
        +              "guide",
        +              "note"
        +            ],
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "A 10ml.com link in the requested locale",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "longevity": {
        +      "description": "1 (short) to 5 (very long)",
        +      "type": "number"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "occasions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "other_versions": {
        +      "description": "Ids of other concentrations or flankers of the same perfume in the index",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "perfumers": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "projection": {
        +      "description": "1 (skin scent) to 5 (fills a room)",
        +      "type": "number"
        +    },
        +    "pyramid": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "base": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "heart": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "top": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "top",
        +        "heart",
        +        "base"
        +      ],
        +      "type": "object"
        +    },
        +    "seasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "styles": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "year": {
        +      "description": "Launch year when known",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "house",
        +    "gender",
        +    "family",
        +    "accords",
        +    "key_notes",
        +    "character",
        +    "links"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / properties / results / items / properties / sharedAccords
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / results / items / properties / sharedNotes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / results / items / properties / shared_accords
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / shared_notes
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / url
        Removed value: -{
        -  "description": "\"Try it at 10ML\": find this perfume on 10ml.com",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / why
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / year
        Removed value: -{
        -  "description": "Launch year",
        -  "type": "number"
        -}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "keyNotes",
        -  "character",
        -  "url",
        -  "sharedNotes",
        -  "sharedAccords"
        -]New value: +[
        +  "perfume",
        +  "closeness",
        +  "shared_notes",
        +  "shared_accords",
        +  "why"
        +]
      • addedOutput schema / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / target / properties / accords
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / target / properties / inIndex
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / target / properties / in_index
        Added value: +{
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / target / properties / url
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / target / required
        Previous value: -[
        -  "name",
        -  "house",
        -  "inIndex",
        -  "notes"
        -]New value: +[
        +  "name",
        +  "house",
        +  "in_index",
        +  "notes",
        +  "accords"
        +]
      • addedOutput schema / properties / total
        Added value: +{
        +  "description": "How many results matched in all",
        +  "type": "number"
        +}
      • addedOutput schema / properties / unrecognised_notes
        Added value: +{
        +  "description": "Notes that are not in the index vocabulary and were ignored",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "target",
        -  "results"
        -]New value: +[
        +  "total",
        +  "target",
        +  "results",
        +  "source"
        +]
    • Addedget_house
    • Changedget_perfume58 fields changed
      • changedInput schema / properties / house / description
        Previous value: -"Perfume house, e.g. \"Creed\""New value: +"House, when the name alone is ambiguous. Example: \"Creed\""
      • removedInput schema / properties / id
        Removed value: -{
        -  "description": "Fragrance Index id, e.g. \"creed-aventus\"",
        -  "maxLength": 120,
        -  "type": "string"
        -}
      • addedInput schema / properties / locale
        Added value: +{
        +  "default": "en",
        +  "description": "Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated.",
        +  "enum": [
        +    "en",
        +    "de",
        +    "fr",
        +    "es",
        +    "it",
        +    "ro",
        +    "el",
        +    "hu",
        +    "cs",
        +    "pl"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / name
        Removed value: -{
        -  "description": "Perfume name, e.g. \"Aventus\" (the house may be included, e.g. \"Creed Aventus\")",
        -  "maxLength": 120,
        -  "type": "string"
        -}
      • addedInput schema / properties / perfume
        Added value: +{
        +  "description": "A perfume by name, optionally with its house, e.g. \"Baccarat Rouge 540\", \"Dior Sauvage\", \"Delina\". An id from another tool also works, e.g. \"creed-aventus\".",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "perfume"
        +]
      • addedOutput schema / properties / alternatives
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "closeness": {
        +        "enum": [
        +          "very close",
        +          "similar vibe",
        +          "same spirit"
        +        ],
        +        "type": "string"
        +      },
        +      "house": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "why": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "closeness",
        +      "why"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / guides
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "enum": [
        +          "try",
        +          "guide",
        +          "note"
        +        ],
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "A 10ml.com link in the requested locale",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "title",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / house_info
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "country": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "style": {
        +      "type": "string"
        +    },
        +    "type": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "type",
        +    "style"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / perfume / properties / character / description
        Previous value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors"
      • addedOutput schema / properties / perfume / properties / concentration
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / perfume / properties / family / description
        Previous value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / perfume / properties / guideUrl
        Removed value: -{
        -  "description": "A 10ML guide about this perfume",
        -  "type": "string"
        -}
      • removedOutput schema / properties / perfume / properties / houseInfo
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "country": {
        -      "type": "string"
        -    },
        -    "description": {
        -      "type": "string"
        -    },
        -    "name": {
        -      "type": "string"
        -    },
        -    "style": {
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "name",
        -    "style",
        -    "description"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / perfume / properties / houseUrl
        Removed value: -{
        -  "description": "The house page on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / perfume / properties / id / description
        Previous value: -"Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes"New value: +"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / perfume / properties / keyNotes
        Removed value: -{
        -  "description": "The defining notes",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / perfume / properties / key_notes
        Added value: +{
        +  "description": "The defining notes (empty when no pyramid is published)",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / perfume / properties / links / description
        Added value: +"1-3 relevant 10ml.com links"
      • addedOutput schema / properties / perfume / properties / links / items / properties / type
        Added value: +{
        +  "enum": [
        +    "try",
        +    "guide",
        +    "note"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / perfume / properties / links / items / properties / url / description
        Added value: +"A 10ml.com link in the requested locale"
      • changedOutput schema / properties / perfume / properties / links / items / required
        Previous value: -[
        -  "title",
        -  "url"
        -]New value: +[
        +  "type",
        +  "title",
        +  "url"
        +]
      • addedOutput schema / properties / perfume / properties / longevity
        Added value: +{
        +  "description": "1 (short) to 5 (very long)",
        +  "type": "number"
        +}
      • removedOutput schema / properties / perfume / properties / notes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / perfume / properties / occasions / items / enum
        Removed value: -[
        -  "daytime",
        -  "office",
        -  "casual",
        -  "evening",
        -  "date night",
        -  "special occasion"
        -]
      • addedOutput schema / properties / perfume / properties / other_versions
        Added value: +{
        +  "description": "Ids of other concentrations or flankers of the same perfume in the index",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / perfume / properties / perfumers
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / perfume / properties / projection
        Added value: +{
        +  "description": "1 (skin scent) to 5 (fills a room)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / perfume / properties / pyramid / required
        Added value: +[
        +  "top",
        +  "heart",
        +  "base"
        +]
      • removedOutput schema / properties / perfume / properties / seasons / items / enum
        Removed value: -[
        -  "spring",
        -  "summer",
        -  "autumn",
        -  "winter"
        -]
      • addedOutput schema / properties / perfume / properties / styles
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / perfume / properties / url
        Removed value: -{
        -  "description": "\"Try it at 10ML\": find this perfume on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / perfume / properties / year / description
        Previous value: -"Launch year"New value: +"Launch year when known"
      • changedOutput schema / properties / perfume / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "keyNotes",
        -  "character",
        -  "url",
        -  "notes",
        -  "seasons",
        -  "occasions",
        -  "houseInfo",
        -  "links"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links"
        +]
      • addedOutput schema / properties / similar
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "closeness": {
        +        "enum": [
        +          "very close",
        +          "similar vibe",
        +          "same spirit"
        +        ],
        +        "type": "string"
        +      },
        +      "house": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "shared_notes": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "house",
        +      "closeness",
        +      "shared_notes",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / suggestions / items / properties / character / description
        Previous value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors"
      • addedOutput schema / properties / suggestions / items / properties / concentration
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / suggestions / items / properties / family / description
        Previous value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / suggestions / items / properties / guideUrl
        Removed value: -{
        -  "description": "A 10ML guide about this perfume",
        -  "type": "string"
        -}
      • removedOutput schema / properties / suggestions / items / properties / houseUrl
        Removed value: -{
        -  "description": "The house page on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / suggestions / items / properties / id / description
        Previous value: -"Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes"New value: +"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / suggestions / items / properties / keyNotes
        Removed value: -{
        -  "description": "The defining notes",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / suggestions / items / properties / key_notes
        Added value: +{
        +  "description": "The defining notes (empty when no pyramid is published)",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / suggestions / items / properties / links
        Added value: +{
        +  "description": "1-3 relevant 10ml.com links",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "enum": [
        +          "try",
        +          "guide",
        +          "note"
        +        ],
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "A 10ml.com link in the requested locale",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "title",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / suggestions / items / properties / longevity
        Added value: +{
        +  "description": "1 (short) to 5 (very long)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / suggestions / items / properties / occasions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / suggestions / items / properties / other_versions
        Added value: +{
        +  "description": "Ids of other concentrations or flankers of the same perfume in the index",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / suggestions / items / properties / perfumers
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / suggestions / items / properties / projection
        Added value: +{
        +  "description": "1 (skin scent) to 5 (fills a room)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / suggestions / items / properties / pyramid
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "base": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "heart": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "top": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "top",
        +    "heart",
        +    "base"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / suggestions / items / properties / seasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / suggestions / items / properties / styles
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / suggestions / items / properties / url
        Removed value: -{
        -  "description": "\"Try it at 10ML\": find this perfume on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / suggestions / items / properties / year / description
        Previous value: -"Launch year"New value: +"Launch year when known"
      • changedOutput schema / properties / suggestions / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "keyNotes",
        -  "character",
        -  "url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links"
        +]
      • changedOutput schema / required
        Previous value: -[
        -  "found",
        -  "exact"
        -]New value: +[
        +  "found",
        +  "exact",
        +  "source"
        +]
    • Addediconic_perfumes
    • Changedlist_houses22 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "Only houses from this country, e.g. \"France\", \"Italy\", \"United Arab Emirates\"",
        +  "maxLength": 40,
        +  "type": "string"
        +}
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 20,
        +  "description": "How many results per page (1-50, default 20).",
        +  "maximum": 50,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / locale
        Added value: +{
        +  "default": "en",
        +  "description": "Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated.",
        +  "enum": [
        +    "en",
        +    "de",
        +    "fr",
        +    "es",
        +    "it",
        +    "ro",
        +    "el",
        +    "hu",
        +    "cs",
        +    "pl"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Part of a house name, e.g. \"tom\" or \"maison\"",
        +  "maxLength": 60,
        +  "type": "string"
        +}
      • removedInput schema / properties / style
        Removed value: -{
        -  "description": "Only houses of this style",
        -  "enum": [
        -    "Designer",
        -    "Niche",
        -    "Middle Eastern"
        -  ],
        -  "type": "string"
        -}
      • addedInput schema / properties / type
        Added value: +{
        +  "description": "Only houses of this type",
        +  "enum": [
        +    "designer",
        +    "niche",
        +    "middle-eastern",
        +    "indie",
        +    "celebrity"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / houses / items / properties / description
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / houses / items / properties / founded
        Added value: +{
        +  "type": "number"
        +}
      • removedOutput schema / properties / houses / items / properties / guides
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "title": {
        -        "type": "string"
        -      },
        -      "url": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "title",
        -      "url"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / houses / items / properties / known_for
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / houses / items / properties / perfumes_in_index
        Added value: +{
        +  "type": "number"
        +}
      • removedOutput schema / properties / houses / items / properties / signaturePerfumes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / houses / items / properties / style
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / houses / items / properties / type
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / houses / items / properties / url
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / houses / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "style",
        -  "description",
        -  "signaturePerfumes",
        -  "guides"
        -]New value: +[
        +  "id",
        +  "name",
        +  "type",
        +  "perfumes_in_index",
        +  "known_for"
        +]
      • addedOutput schema / properties / message
        Added value: +{
        +  "description": "Guidance when the result is empty, partial or needs a follow-up tool",
        +  "type": "string"
        +}
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "description": "Pass as cursor to get the next page; absent on the last page",
        +  "type": "string"
        +}
      • addedOutput schema / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / total / description
        Added value: +"How many results matched in all"
      • changedOutput schema / required
        Previous value: -[
        -  "total",
        -  "houses"
        -]New value: +[
        +  "total",
        +  "houses",
        +  "source"
        +]
    • Changedperfumes_by_note40 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
      • changedInput schema / properties / gender / description
        Previous value: -"Who the perfume is marketed for. men/women also include unisex perfumes."New value: +"Audience the perfume is marketed to. men and women also include unisex perfumes."
      • addedInput schema / properties / limit / default
        Added value: +8
      • changedInput schema / properties / limit / description
        Previous value: -"How many results to return (1-20, default 8)."New value: +"How many results per page (1-20, default 8)."
      • addedInput schema / properties / locale
        Added value: +{
        +  "default": "en",
        +  "description": "Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated.",
        +  "enum": [
        +    "en",
        +    "de",
        +    "fr",
        +    "es",
        +    "it",
        +    "ro",
        +    "el",
        +    "hu",
        +    "cs",
        +    "pl"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / note / description
        Previous value: -"The note, e.g. \"oud\", \"vanilla\", \"pink pepper\""New value: +"The note. Examples: \"oud\", \"vanilla\", \"pink pepper\", \"Vanille\""
      • addedInput schema / properties / occasion
        Added value: +{
        +  "description": "Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion.",
        +  "enum": [
        +    "daytime",
        +    "office",
        +    "casual",
        +    "evening",
        +    "date night",
        +    "special occasion"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / position
        Added value: +{
        +  "default": "any",
        +  "description": "Where the note sits in the pyramid: top, heart, base or any",
        +  "enum": [
        +    "any",
        +    "top",
        +    "heart",
        +    "base"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / season
        Added value: +{
        +  "description": "Season the perfume suits (fall is accepted in text queries as autumn).",
        +  "enum": [
        +    "spring",
        +    "summer",
        +    "autumn",
        +    "winter"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message / description
        Added value: +"Guidance when the result is empty, partial or needs a follow-up tool"
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "description": "Pass as cursor to get the next page; absent on the last page",
        +  "type": "string"
        +}
      • addedOutput schema / properties / note / additionalProperties
        Added value: +false
      • addedOutput schema / properties / note / properties
        Added value: +{
        +  "family": {
        +    "type": "string"
        +  },
        +  "id": {
        +    "type": "string"
        +  },
        +  "links": {
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "title": {
        +          "type": "string"
        +        },
        +        "type": {
        +          "enum": [
        +            "try",
        +            "guide",
        +            "note"
        +          ],
        +          "type": "string"
        +        },
        +        "url": {
        +          "description": "A 10ml.com link in the requested locale",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "title",
        +        "url"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "name": {
        +    "type": "string"
        +  },
        +  "smells_like": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / properties / note / required
        Added value: +[
        +  "name",
        +  "links"
        +]
      • changedOutput schema / properties / note / type
        Previous value: -"string"New value: +"object"
      • removedOutput schema / properties / profile
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "aliases": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "description": {
        -      "type": "string"
        -    },
        -    "family": {
        -      "type": "string"
        -    },
        -    "guides": {
        -      "items": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "title": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "title",
        -          "url"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "name": {
        -      "type": "string"
        -    },
        -    "url": {
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "name",
        -    "family",
        -    "description",
        -    "aliases",
        -    "guides"
        -  ],
        -  "type": "object"
        -}
      • changedOutput schema / properties / results / items / properties / character / description
        Previous value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors"
      • addedOutput schema / properties / results / items / properties / concentration
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / family / description
        Previous value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / results / items / properties / guideUrl
        Removed value: -{
        -  "description": "A 10ML guide about this perfume",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / houseUrl
        Removed value: -{
        -  "description": "The house page on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / results / items / properties / id / description
        Previous value: -"Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes"New value: +"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / results / items / properties / keyNotes
        Removed value: -{
        -  "description": "The defining notes",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / results / items / properties / key_notes
        Added value: +{
        +  "description": "The defining notes (empty when no pyramid is published)",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / links
        Added value: +{
        +  "description": "1-3 relevant 10ml.com links",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "enum": [
        +          "try",
        +          "guide",
        +          "note"
        +        ],
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "A 10ml.com link in the requested locale",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "title",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / longevity
        Added value: +{
        +  "description": "1 (short) to 5 (very long)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / results / items / properties / occasions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / other_versions
        Added value: +{
        +  "description": "Ids of other concentrations or flankers of the same perfume in the index",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / perfumers
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / projection
        Added value: +{
        +  "description": "1 (skin scent) to 5 (fills a room)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / results / items / properties / pyramid
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "base": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "heart": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "top": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "top",
        +    "heart",
        +    "base"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / results / items / properties / seasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / styles
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / url
        Removed value: -{
        -  "description": "\"Try it at 10ML\": find this perfume on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / results / items / properties / year / description
        Previous value: -"Launch year"New value: +"Launch year when known"
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "keyNotes",
        -  "character",
        -  "url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links"
        +]
      • addedOutput schema / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / total / description
        Added value: +"How many results matched in all"
      • changedOutput schema / required
        Previous value: -[
        -  "note",
        -  "total",
        -  "results"
        -]New value: +[
        +  "total",
        +  "note",
        +  "results",
        +  "source"
        +]
    • Addedpick_for_occasion
    • Addedrecommend_perfumes
    • Addedsearch_guides
    • Changedsearch_perfumes43 fields changed
      • addedInput schema / properties / accords
        Added value: +{
        +  "description": "Accords that must be present. Examples: [\"woody\",\"sweet\"], [\"fresh\",\"aquatic\"]",
        +  "items": {
        +    "maxLength": 40,
        +    "type": "string"
        +  },
        +  "maxItems": 6,
        +  "type": "array"
        +}
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
      • changedInput schema / properties / family / description
        Previous value: -"Restrict to a fragrance family: Citrus, Aquatic, Green, Aromatic Fougère, Floral, Fruity Floral, Floral Amber, Chypre, Woody, Woody Spicy, Amber, Amber Vanilla, Gourmand, Leather, Musky"New value: +"Fragrance family: fougere, chypre, oriental-amber, gourmand, aquatic, aromatic, woody, floral, white-floral, fruity, citrus, green, leather, oud, musky, powdery, spicy, tobacco-boozy, smoky-incense, aldehydic-floral, mineral, fresh-spicy-woody, tea-zen. Also accepts words like \"amber\" or \"citrus\"."
      • changedInput schema / properties / gender / description
        Previous value: -"Who the perfume is marketed for. men/women also include unisex perfumes."New value: +"Audience the perfume is marketed to. men and women also include unisex perfumes."
      • changedInput schema / properties / house / description
        Previous value: -"Restrict to one perfume house, e.g. \"Dior\", \"Maison Francis Kurkdjian\""New value: +"Only perfumes from this house. Examples: \"Dior\", \"Maison Francis Kurkdjian\", \"MFK\", \"YSL\""
      • addedInput schema / properties / limit / default
        Added value: +8
      • changedInput schema / properties / limit / description
        Previous value: -"How many results to return (1-20, default 8)."New value: +"How many results per page (1-20, default 8)."
      • addedInput schema / properties / locale
        Added value: +{
        +  "default": "en",
        +  "description": "Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated.",
        +  "enum": [
        +    "en",
        +    "de",
        +    "fr",
        +    "es",
        +    "it",
        +    "ro",
        +    "el",
        +    "hu",
        +    "cs",
        +    "pl"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / note
        Removed value: -{
        -  "description": "Restrict to perfumes containing a note, e.g. \"oud\", \"tonka bean\", \"bergamot\"",
        -  "maxLength": 60,
        -  "type": "string"
        -}
      • addedInput schema / properties / notes_exclude
        Added value: +{
        +  "description": "None of these notes may be present. Example: [\"patchouli\"]",
        +  "items": {
        +    "maxLength": 60,
        +    "type": "string"
        +  },
        +  "maxItems": 8,
        +  "type": "array"
        +}
      • addedInput schema / properties / notes_include
        Added value: +{
        +  "description": "Every listed note must be present. Examples: [\"oud\",\"rose\"], [\"vanilla\"]",
        +  "items": {
        +    "maxLength": 60,
        +    "type": "string"
        +  },
        +  "maxItems": 8,
        +  "type": "array"
        +}
      • addedInput schema / properties / occasion / description
        Added value: +"Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion."
      • changedInput schema / properties / query / description
        Previous value: -"Free text: perfume name, house, notes, mood. e.g. \"fresh citrus summer for men\", \"oud\", \"vanilla gourmand for winter\""New value: +"Free text: a perfume name, house, notes or mood. Examples: \"fresh citrus summer for men\", \"Tom Ford tobacco\", \"vanilla gourmand for winter\""
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / season / description
        Added value: +"Season the perfume suits (fall is accepted in text queries as autumn)."
      • addedInput schema / properties / style
        Added value: +{
        +  "description": "A style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody.",
        +  "enum": [
        +    "aquatic",
        +    "boozy",
        +    "clean",
        +    "creamy",
        +    "dark",
        +    "floral",
        +    "fresh",
        +    "citrusy",
        +    "fruity",
        +    "gourmand",
        +    "green",
        +    "leathery",
        +    "musky",
        +    "powdery",
        +    "sensual",
        +    "smoky",
        +    "spicy",
        +    "sweet",
        +    "woody"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / filters / description
        Previous value: -"The filters that were applied, including ones read from the query"New value: +"The filters applied, including ones read from the query text"
      • addedOutput schema / properties / message / description
        Added value: +"Guidance when the result is empty, partial or needs a follow-up tool"
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "description": "Pass as cursor to get the next page; absent on the last page",
        +  "type": "string"
        +}
      • changedOutput schema / properties / relaxed / description
        Previous value: -"True when no perfume matched every word and partial matches are shown"New value: +"True when no perfume matched every word and the closest partial matches are shown"
      • changedOutput schema / properties / results / items / properties / character / description
        Previous value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors"
      • addedOutput schema / properties / results / items / properties / concentration
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / family / description
        Previous value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / results / items / properties / guideUrl
        Removed value: -{
        -  "description": "A 10ML guide about this perfume",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / houseUrl
        Removed value: -{
        -  "description": "The house page on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / results / items / properties / id / description
        Previous value: -"Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes"New value: +"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / results / items / properties / keyNotes
        Removed value: -{
        -  "description": "The defining notes",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / results / items / properties / key_notes
        Added value: +{
        +  "description": "The defining notes (empty when no pyramid is published)",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / links
        Added value: +{
        +  "description": "1-3 relevant 10ml.com links",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "enum": [
        +          "try",
        +          "guide",
        +          "note"
        +        ],
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "A 10ml.com link in the requested locale",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "title",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / longevity
        Added value: +{
        +  "description": "1 (short) to 5 (very long)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / results / items / properties / occasions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / other_versions
        Added value: +{
        +  "description": "Ids of other concentrations or flankers of the same perfume in the index",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / perfumers
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / projection
        Added value: +{
        +  "description": "1 (skin scent) to 5 (fills a room)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / results / items / properties / pyramid
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "base": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "heart": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "top": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "top",
        +    "heart",
        +    "base"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / results / items / properties / seasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / styles
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / url
        Removed value: -{
        -  "description": "\"Try it at 10ML\": find this perfume on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / results / items / properties / year / description
        Previous value: -"Launch year"New value: +"Launch year when known"
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "keyNotes",
        -  "character",
        -  "url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links"
        +]
      • addedOutput schema / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / total / description
        Previous value: -"How many perfumes matched in all"New value: +"How many results matched in all"
      • changedOutput schema / required
        Previous value: -[
        -  "total",
        -  "results",
        -  "filters",
        -  "relaxed"
        -]New value: +[
        +  "total",
        +  "results",
        +  "filters",
        +  "relaxed",
        +  "source"
        +]
    • Addedsuggest_layering
    • Changedtrending_perfumes35 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
      • changedInput schema / properties / family / description
        Previous value: -"A fragrance family: Citrus, Aquatic, Green, Aromatic Fougère, Floral, Fruity Floral, Floral Amber, Chypre, Woody, Woody Spicy, Amber, Amber Vanilla, Gourmand, Leather, Musky"New value: +"A fragrance family: fougere, chypre, oriental-amber, gourmand, aquatic, aromatic, woody, floral, white-floral, fruity, citrus, green, leather, oud, musky, powdery, spicy, tobacco-boozy, smoky-incense, aldehydic-floral, mineral, fresh-spicy-woody, tea-zen"
      • changedInput schema / properties / gender / description
        Previous value: -"Who the perfume is marketed for. men/women also include unisex perfumes."New value: +"Audience the perfume is marketed to. men and women also include unisex perfumes."
      • addedInput schema / properties / limit / default
        Added value: +8
      • changedInput schema / properties / limit / description
        Previous value: -"How many results to return (1-20, default 8)."New value: +"How many results per page (1-20, default 8)."
      • addedInput schema / properties / locale
        Added value: +{
        +  "default": "en",
        +  "description": "Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated.",
        +  "enum": [
        +    "en",
        +    "de",
        +    "fr",
        +    "es",
        +    "it",
        +    "ro",
        +    "el",
        +    "hu",
        +    "cs",
        +    "pl"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / occasion
        Added value: +{
        +  "description": "Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion.",
        +  "enum": [
        +    "daytime",
        +    "office",
        +    "casual",
        +    "evening",
        +    "date night",
        +    "special occasion"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default): the essentials, about a third of the size. detailed: adds the full note pyramid, seasons, occasions, longevity and projection.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / season / description
        Added value: +"Season the perfume suits (fall is accepted in text queries as autumn)."
      • addedInput schema / properties / style
        Added value: +{
        +  "description": "A style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody.",
        +  "enum": [
        +    "aquatic",
        +    "boozy",
        +    "clean",
        +    "creamy",
        +    "dark",
        +    "floral",
        +    "fresh",
        +    "citrusy",
        +    "fruity",
        +    "gourmand",
        +    "green",
        +    "leathery",
        +    "musky",
        +    "powdery",
        +    "sensual",
        +    "smoky",
        +    "spicy",
        +    "sweet",
        +    "woody"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "description": "Guidance when the result is empty, partial or needs a follow-up tool",
        +  "type": "string"
        +}
      • addedOutput schema / properties / next_cursor
        Added value: +{
        +  "description": "Pass as cursor to get the next page; absent on the last page",
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / character / description
        Previous value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors"
      • addedOutput schema / properties / results / items / properties / concentration
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / family / description
        Previous value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\""
      • removedOutput schema / properties / results / items / properties / guideUrl
        Removed value: -{
        -  "description": "A 10ML guide about this perfume",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / houseUrl
        Removed value: -{
        -  "description": "The house page on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / results / items / properties / id / description
        Previous value: -"Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes"New value: +"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes"
      • removedOutput schema / properties / results / items / properties / keyNotes
        Removed value: -{
        -  "description": "The defining notes",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / results / items / properties / key_notes
        Added value: +{
        +  "description": "The defining notes (empty when no pyramid is published)",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / links
        Added value: +{
        +  "description": "1-3 relevant 10ml.com links",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "title": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "enum": [
        +          "try",
        +          "guide",
        +          "note"
        +        ],
        +        "type": "string"
        +      },
        +      "url": {
        +        "description": "A 10ml.com link in the requested locale",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "title",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / longevity
        Added value: +{
        +  "description": "1 (short) to 5 (very long)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / results / items / properties / occasions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / other_versions
        Added value: +{
        +  "description": "Ids of other concentrations or flankers of the same perfume in the index",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / perfumers
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / projection
        Added value: +{
        +  "description": "1 (skin scent) to 5 (fills a room)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / results / items / properties / pyramid
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "base": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "heart": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "top": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "top",
        +    "heart",
        +    "base"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / results / items / properties / seasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / results / items / properties / styles
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / url
        Removed value: -{
        -  "description": "\"Try it at 10ML\": find this perfume on 10ml.com",
        -  "type": "string"
        -}
      • changedOutput schema / properties / results / items / properties / year / description
        Previous value: -"Launch year"New value: +"Launch year when known"
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "house",
        -  "gender",
        -  "family",
        -  "accords",
        -  "keyNotes",
        -  "character",
        -  "url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "key_notes",
        +  "character",
        +  "links"
        +]
      • addedOutput schema / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / total
        Added value: +{
        +  "description": "How many results matched in all",
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "filters",
        -  "results"
        -]New value: +[
        +  "total",
        +  "filters",
        +  "results",
        +  "source"
        +]
  5. 6 tool updates
    • Changedfind_similar_perfumes34 fields changed
      • changedInput schema / properties / gender / description
        Previous value: -"Only return perfumes suitable for this audience"New value: +"Only return perfumes for this audience (men/women include unisex)"
      • removedInput schema / properties / handle
        Removed value: -{
        -  "description": "10ML handle of the perfume to match",
        -  "maxLength": 120,
        -  "type": "string"
        -}
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "Fragrance Index id of the perfume to match",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • changedInput schema / properties / notes / description
        Previous value: -"Known notes of the perfume (use when it is not in the 10ML catalogue), e.g. [\"jasmine\",\"saffron\",\"ambergris\",\"cedar\"]"New value: +"Known notes of the perfume (use when it is not in the index), e.g. [\"jasmine\",\"saffron\",\"ambergris\",\"cedar\"]"
      • addedOutput schema / properties / results / items / properties / accords
        Added value: +{
        +  "description": "Main accords, strongest first",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / bestseller
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / results / items / properties / character
        Added value: +{
        +  "description": "One-sentence editorial description by 10ML's fragrance editors",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / currency
        Removed value: -{
        -  "const": "EUR",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / family
        Added value: +{
        +  "description": "Fragrance family",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / fromPrice
        Removed value: -{
        -  "description": "The same price formatted for display, e.g. \"€11.88\"",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / fromPriceEur
        Removed value: -{
        -  "description": "Price of the smallest size in EUR including VAT",
        -  "type": "number"
        -}
      • removedOutput schema / properties / results / items / properties / gender / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "men",
        -      "women",
        -      "unisex"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / results / items / properties / gender / enum
        Added value: +[
        +  "men",
        +  "women",
        +  "unisex"
        +]
      • addedOutput schema / properties / results / items / properties / gender / type
        Added value: +"string"
      • addedOutput schema / properties / results / items / properties / guideUrl
        Added value: +{
        +  "description": "A 10ML guide about this perfume",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / handle
        Removed value: -{
        -  "description": "Stable 10ML identifier, usable with get_perfume",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / houseUrl
        Added value: +{
        +  "description": "The house page on 10ml.com",
        +  "type": "string"
        +}
      • addedOutput schema / properties / results / items / properties / id
        Added value: +{
        +  "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / imageUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / results / items / properties / keyNotes
        Added value: +{
        +  "description": "The defining notes",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / newRelease
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / notes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / results / items / properties / onSale
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / rating
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "properties": {
        -        "count": {
        -          "type": "number"
        -        },
        -        "value": {
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "value",
        -        "count"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • addedOutput schema / properties / results / items / properties / sharedAccords
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / sizesMl
        Removed value: -{
        -  "description": "Decant sizes in ml available at 10ML",
        -  "items": {
        -    "type": "number"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / results / items / properties / url / description
        Previous value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com"
      • addedOutput schema / properties / results / items / properties / year
        Added value: +{
        +  "description": "Launch year",
        +  "type": "number"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "handle",
        -  "name",
        -  "house",
        -  "gender",
        -  "fromPriceEur",
        -  "fromPrice",
        -  "currency",
        -  "sizesMl",
        -  "notes",
        -  "rating",
        -  "bestseller",
        -  "newRelease",
        -  "onSale",
        -  "url",
        -  "imageUrl",
        -  "sharedNotes"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "keyNotes",
        +  "character",
        +  "url",
        +  "sharedNotes",
        +  "sharedAccords"
        +]
      • removedOutput schema / properties / target / properties / handle
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / target / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / target / properties / inCatalogue
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / target / properties / inIndex
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / target / required
        Previous value: -[
        -  "name",
        -  "house",
        -  "inCatalogue",
        -  "notes"
        -]New value: +[
        +  "name",
        +  "house",
        +  "inIndex",
        +  "notes"
        +]
    • Changedget_perfume55 fields changed
      • removedInput schema / properties / handle
        Removed value: -{
        -  "description": "10ML handle, e.g. \"creed-aventus\"",
        -  "maxLength": 120,
        -  "type": "string"
        -}
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "Fragrance Index id, e.g. \"creed-aventus\"",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • addedOutput schema / properties / perfume / properties / accords
        Added value: +{
        +  "description": "Main accords, strongest first",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / perfume / properties / allNotes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / perfume / properties / bestseller
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / perfume / properties / character
        Added value: +{
        +  "description": "One-sentence editorial description by 10ML's fragrance editors",
        +  "type": "string"
        +}
      • removedOutput schema / properties / perfume / properties / currency
        Removed value: -{
        -  "const": "EUR",
        -  "type": "string"
        -}
      • addedOutput schema / properties / perfume / properties / family
        Added value: +{
        +  "description": "Fragrance family",
        +  "type": "string"
        +}
      • removedOutput schema / properties / perfume / properties / fromPrice
        Removed value: -{
        -  "description": "The same price formatted for display, e.g. \"€11.88\"",
        -  "type": "string"
        -}
      • removedOutput schema / properties / perfume / properties / fromPriceEur
        Removed value: -{
        -  "description": "Price of the smallest size in EUR including VAT",
        -  "type": "number"
        -}
      • removedOutput schema / properties / perfume / properties / gender / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "men",
        -      "women",
        -      "unisex"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / perfume / properties / gender / enum
        Added value: +[
        +  "men",
        +  "women",
        +  "unisex"
        +]
      • addedOutput schema / properties / perfume / properties / gender / type
        Added value: +"string"
      • addedOutput schema / properties / perfume / properties / guideUrl
        Added value: +{
        +  "description": "A 10ML guide about this perfume",
        +  "type": "string"
        +}
      • removedOutput schema / properties / perfume / properties / handle
        Removed value: -{
        -  "description": "Stable 10ML identifier, usable with get_perfume",
        -  "type": "string"
        -}
      • addedOutput schema / properties / perfume / properties / houseInfo
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "country": {
        +      "type": "string"
        +    },
        +    "description": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "style": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "style",
        +    "description"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / perfume / properties / houseUrl / description
        Added value: +"The house page on 10ml.com"
      • addedOutput schema / properties / perfume / properties / id
        Added value: +{
        +  "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes",
        +  "type": "string"
        +}
      • removedOutput schema / properties / perfume / properties / imageUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / perfume / properties / keyNotes
        Added value: +{
        +  "description": "The defining notes",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / perfume / properties / links
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "title": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "title",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / perfume / properties / newRelease
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / perfume / properties / occasions
        Added value: +{
        +  "items": {
        +    "enum": [
        +      "daytime",
        +      "office",
        +      "casual",
        +      "evening",
        +      "date night",
        +      "special occasion"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / perfume / properties / onSale
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / perfume / properties / pyramid
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "base": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "heart": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "top": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedOutput schema / properties / perfume / properties / rating
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "properties": {
        -        "count": {
        -          "type": "number"
        -        },
        -        "value": {
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "value",
        -        "count"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • addedOutput schema / properties / perfume / properties / seasons
        Added value: +{
        +  "items": {
        +    "enum": [
        +      "spring",
        +      "summer",
        +      "autumn",
        +      "winter"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / perfume / properties / sizesMl
        Removed value: -{
        -  "description": "Decant sizes in ml available at 10ML",
        -  "items": {
        -    "type": "number"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / perfume / properties / url / description
        Previous value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com"
      • addedOutput schema / properties / perfume / properties / year
        Added value: +{
        +  "description": "Launch year",
        +  "type": "number"
        +}
      • changedOutput schema / properties / perfume / required
        Previous value: -[
        -  "handle",
        -  "name",
        -  "house",
        -  "gender",
        -  "fromPriceEur",
        -  "fromPrice",
        -  "currency",
        -  "sizesMl",
        -  "notes",
        -  "rating",
        -  "bestseller",
        -  "newRelease",
        -  "onSale",
        -  "url",
        -  "imageUrl",
        -  "allNotes",
        -  "houseUrl"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "keyNotes",
        +  "character",
        +  "url",
        +  "notes",
        +  "seasons",
        +  "occasions",
        +  "houseInfo",
        +  "links"
        +]
      • addedOutput schema / properties / suggestions / items / properties / accords
        Added value: +{
        +  "description": "Main accords, strongest first",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / suggestions / items / properties / bestseller
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / suggestions / items / properties / character
        Added value: +{
        +  "description": "One-sentence editorial description by 10ML's fragrance editors",
        +  "type": "string"
        +}
      • removedOutput schema / properties / suggestions / items / properties / currency
        Removed value: -{
        -  "const": "EUR",
        -  "type": "string"
        -}
      • addedOutput schema / properties / suggestions / items / properties / family
        Added value: +{
        +  "description": "Fragrance family",
        +  "type": "string"
        +}
      • removedOutput schema / properties / suggestions / items / properties / fromPrice
        Removed value: -{
        -  "description": "The same price formatted for display, e.g. \"€11.88\"",
        -  "type": "string"
        -}
      • removedOutput schema / properties / suggestions / items / properties / fromPriceEur
        Removed value: -{
        -  "description": "Price of the smallest size in EUR including VAT",
        -  "type": "number"
        -}
      • removedOutput schema / properties / suggestions / items / properties / gender / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "men",
        -      "women",
        -      "unisex"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / suggestions / items / properties / gender / enum
        Added value: +[
        +  "men",
        +  "women",
        +  "unisex"
        +]
      • addedOutput schema / properties / suggestions / items / properties / gender / type
        Added value: +"string"
      • addedOutput schema / properties / suggestions / items / properties / guideUrl
        Added value: +{
        +  "description": "A 10ML guide about this perfume",
        +  "type": "string"
        +}
      • removedOutput schema / properties / suggestions / items / properties / handle
        Removed value: -{
        -  "description": "Stable 10ML identifier, usable with get_perfume",
        -  "type": "string"
        -}
      • addedOutput schema / properties / suggestions / items / properties / houseUrl
        Added value: +{
        +  "description": "The house page on 10ml.com",
        +  "type": "string"
        +}
      • addedOutput schema / properties / suggestions / items / properties / id
        Added value: +{
        +  "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes",
        +  "type": "string"
        +}
      • removedOutput schema / properties / suggestions / items / properties / imageUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / suggestions / items / properties / keyNotes
        Added value: +{
        +  "description": "The defining notes",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / suggestions / items / properties / newRelease
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / suggestions / items / properties / notes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / suggestions / items / properties / onSale
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / suggestions / items / properties / rating
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "properties": {
        -        "count": {
        -          "type": "number"
        -        },
        -        "value": {
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "value",
        -        "count"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / suggestions / items / properties / sizesMl
        Removed value: -{
        -  "description": "Decant sizes in ml available at 10ML",
        -  "items": {
        -    "type": "number"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / suggestions / items / properties / url / description
        Previous value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com"
      • addedOutput schema / properties / suggestions / items / properties / year
        Added value: +{
        +  "description": "Launch year",
        +  "type": "number"
        +}
      • changedOutput schema / properties / suggestions / items / required
        Previous value: -[
        -  "handle",
        -  "name",
        -  "house",
        -  "gender",
        -  "fromPriceEur",
        -  "fromPrice",
        -  "currency",
        -  "sizesMl",
        -  "notes",
        -  "rating",
        -  "bestseller",
        -  "newRelease",
        -  "onSale",
        -  "url",
        -  "imageUrl"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "keyNotes",
        +  "character",
        +  "url"
        +]
    • Changedlist_houses10 fields changed
      • addedInput schema / properties / style
        Added value: +{
        +  "description": "Only houses of this style",
        +  "enum": [
        +    "Designer",
        +    "Niche",
        +    "Middle Eastern"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / houses / items / properties / country
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / houses / items / properties / description
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / houses / items / properties / guides
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "title": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "title",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / houses / items / properties / handle
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / houses / items / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / houses / items / properties / perfumeCount
        Removed value: -{
        -  "type": "number"
        -}
      • addedOutput schema / properties / houses / items / properties / signaturePerfumes
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / houses / items / properties / style
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / houses / items / required
        Previous value: -[
        -  "name",
        -  "handle",
        -  "perfumeCount",
        -  "url"
        -]New value: +[
        +  "id",
        +  "name",
        +  "style",
        +  "description",
        +  "signaturePerfumes",
        +  "guides"
        +]
    • Changedperfumes_by_note29 fields changed
      • changedInput schema / properties / gender / description
        Previous value: -"Who the perfume is marketed for."New value: +"Who the perfume is marketed for. men/women also include unisex perfumes."
      • removedOutput schema / properties / matchedNotes
        Removed value: -{
        -  "description": "Catalogue note names that were matched",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / noteUrl
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / profile
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "aliases": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "description": {
        +      "type": "string"
        +    },
        +    "family": {
        +      "type": "string"
        +    },
        +    "guides": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "family",
        +    "description",
        +    "aliases",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / results / items / properties / accords
        Added value: +{
        +  "description": "Main accords, strongest first",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / bestseller
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / results / items / properties / character
        Added value: +{
        +  "description": "One-sentence editorial description by 10ML's fragrance editors",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / currency
        Removed value: -{
        -  "const": "EUR",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / family
        Added value: +{
        +  "description": "Fragrance family",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / fromPrice
        Removed value: -{
        -  "description": "The same price formatted for display, e.g. \"€11.88\"",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / fromPriceEur
        Removed value: -{
        -  "description": "Price of the smallest size in EUR including VAT",
        -  "type": "number"
        -}
      • removedOutput schema / properties / results / items / properties / gender / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "men",
        -      "women",
        -      "unisex"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / results / items / properties / gender / enum
        Added value: +[
        +  "men",
        +  "women",
        +  "unisex"
        +]
      • addedOutput schema / properties / results / items / properties / gender / type
        Added value: +"string"
      • addedOutput schema / properties / results / items / properties / guideUrl
        Added value: +{
        +  "description": "A 10ML guide about this perfume",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / handle
        Removed value: -{
        -  "description": "Stable 10ML identifier, usable with get_perfume",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / houseUrl
        Added value: +{
        +  "description": "The house page on 10ml.com",
        +  "type": "string"
        +}
      • addedOutput schema / properties / results / items / properties / id
        Added value: +{
        +  "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / imageUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / results / items / properties / keyNotes
        Added value: +{
        +  "description": "The defining notes",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / newRelease
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / notes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / results / items / properties / onSale
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / rating
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "properties": {
        -        "count": {
        -          "type": "number"
        -        },
        -        "value": {
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "value",
        -        "count"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / results / items / properties / sizesMl
        Removed value: -{
        -  "description": "Decant sizes in ml available at 10ML",
        -  "items": {
        -    "type": "number"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / results / items / properties / url / description
        Previous value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com"
      • addedOutput schema / properties / results / items / properties / year
        Added value: +{
        +  "description": "Launch year",
        +  "type": "number"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "handle",
        -  "name",
        -  "house",
        -  "gender",
        -  "fromPriceEur",
        -  "fromPrice",
        -  "currency",
        -  "sizesMl",
        -  "notes",
        -  "rating",
        -  "bestseller",
        -  "newRelease",
        -  "onSale",
        -  "url",
        -  "imageUrl"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "keyNotes",
        +  "character",
        +  "url"
        +]
      • changedOutput schema / required
        Previous value: -[
        -  "note",
        -  "matchedNotes",
        -  "total",
        -  "results"
        -]New value: +[
        +  "note",
        +  "total",
        +  "results"
        +]
    • Changedsearch_perfumes32 fields changed
      • addedInput schema / properties / family
        Added value: +{
        +  "description": "Restrict to a fragrance family: Citrus, Aquatic, Green, Aromatic Fougère, Floral, Fruity Floral, Floral Amber, Chypre, Woody, Woody Spicy, Amber, Amber Vanilla, Gourmand, Leather, Musky",
        +  "maxLength": 40,
        +  "type": "string"
        +}
      • changedInput schema / properties / gender / description
        Previous value: -"Who the perfume is marketed for."New value: +"Who the perfume is marketed for. men/women also include unisex perfumes."
      • removedInput schema / properties / max_price_eur
        Removed value: -{
        -  "description": "Maximum \"from\" price in EUR including VAT",
        -  "exclusiveMinimum": 0,
        -  "maximum": 1000,
        -  "type": "number"
        -}
      • addedInput schema / properties / occasion
        Added value: +{
        +  "enum": [
        +    "daytime",
        +    "office",
        +    "casual",
        +    "evening",
        +    "date night",
        +    "special occasion"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Free text: perfume name, house, notes, mood. e.g. \"fresh citrus summer for men under 15 euros\", \"oud\", \"vanilla gourmand\""New value: +"Free text: perfume name, house, notes, mood. e.g. \"fresh citrus summer for men\", \"oud\", \"vanilla gourmand for winter\""
      • addedInput schema / properties / season
        Added value: +{
        +  "enum": [
        +    "spring",
        +    "summer",
        +    "autumn",
        +    "winter"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / sort
        Removed value: -{
        -  "description": "popular (default, best match first), price (cheapest first) or rating (best rated first)",
        -  "enum": [
        -    "popular",
        -    "price",
        -    "rating"
        -  ],
        -  "type": "string"
        -}
      • addedOutput schema / properties / filters / additionalProperties / type
        Added value: +"string"
      • addedOutput schema / properties / results / items / properties / accords
        Added value: +{
        +  "description": "Main accords, strongest first",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / bestseller
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / results / items / properties / character
        Added value: +{
        +  "description": "One-sentence editorial description by 10ML's fragrance editors",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / currency
        Removed value: -{
        -  "const": "EUR",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / family
        Added value: +{
        +  "description": "Fragrance family",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / fromPrice
        Removed value: -{
        -  "description": "The same price formatted for display, e.g. \"€11.88\"",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / fromPriceEur
        Removed value: -{
        -  "description": "Price of the smallest size in EUR including VAT",
        -  "type": "number"
        -}
      • removedOutput schema / properties / results / items / properties / gender / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "men",
        -      "women",
        -      "unisex"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / results / items / properties / gender / enum
        Added value: +[
        +  "men",
        +  "women",
        +  "unisex"
        +]
      • addedOutput schema / properties / results / items / properties / gender / type
        Added value: +"string"
      • addedOutput schema / properties / results / items / properties / guideUrl
        Added value: +{
        +  "description": "A 10ML guide about this perfume",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / handle
        Removed value: -{
        -  "description": "Stable 10ML identifier, usable with get_perfume",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / houseUrl
        Added value: +{
        +  "description": "The house page on 10ml.com",
        +  "type": "string"
        +}
      • addedOutput schema / properties / results / items / properties / id
        Added value: +{
        +  "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / imageUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / results / items / properties / keyNotes
        Added value: +{
        +  "description": "The defining notes",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / newRelease
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / notes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / results / items / properties / onSale
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / rating
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "properties": {
        -        "count": {
        -          "type": "number"
        -        },
        -        "value": {
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "value",
        -        "count"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / results / items / properties / sizesMl
        Removed value: -{
        -  "description": "Decant sizes in ml available at 10ML",
        -  "items": {
        -    "type": "number"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / results / items / properties / url / description
        Previous value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com"
      • addedOutput schema / properties / results / items / properties / year
        Added value: +{
        +  "description": "Launch year",
        +  "type": "number"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "handle",
        -  "name",
        -  "house",
        -  "gender",
        -  "fromPriceEur",
        -  "fromPrice",
        -  "currency",
        -  "sizesMl",
        -  "notes",
        -  "rating",
        -  "bestseller",
        -  "newRelease",
        -  "onSale",
        -  "url",
        -  "imageUrl"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "keyNotes",
        +  "character",
        +  "url"
        +]
    • Changedtrending_perfumes30 fields changed
      • addedInput schema / properties / family
        Added value: +{
        +  "description": "A fragrance family: Citrus, Aquatic, Green, Aromatic Fougère, Floral, Fruity Floral, Floral Amber, Chypre, Woody, Woody Spicy, Amber, Amber Vanilla, Gourmand, Leather, Musky",
        +  "maxLength": 40,
        +  "type": "string"
        +}
      • changedInput schema / properties / gender / description
        Previous value: -"Who the perfume is marketed for."New value: +"Who the perfume is marketed for. men/women also include unisex perfumes."
      • addedInput schema / properties / season
        Added value: +{
        +  "enum": [
        +    "spring",
        +    "summer",
        +    "autumn",
        +    "winter"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / filters
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • removedOutput schema / properties / gender
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "enum": [
        -        "men",
        -        "women",
        -        "unisex"
        -      ],
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • addedOutput schema / properties / results / items / properties / accords
        Added value: +{
        +  "description": "Main accords, strongest first",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / bestseller
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / results / items / properties / character
        Added value: +{
        +  "description": "One-sentence editorial description by 10ML's fragrance editors",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / currency
        Removed value: -{
        -  "const": "EUR",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / family
        Added value: +{
        +  "description": "Fragrance family",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / fromPrice
        Removed value: -{
        -  "description": "The same price formatted for display, e.g. \"€11.88\"",
        -  "type": "string"
        -}
      • removedOutput schema / properties / results / items / properties / fromPriceEur
        Removed value: -{
        -  "description": "Price of the smallest size in EUR including VAT",
        -  "type": "number"
        -}
      • removedOutput schema / properties / results / items / properties / gender / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "men",
        -      "women",
        -      "unisex"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / results / items / properties / gender / enum
        Added value: +[
        +  "men",
        +  "women",
        +  "unisex"
        +]
      • addedOutput schema / properties / results / items / properties / gender / type
        Added value: +"string"
      • addedOutput schema / properties / results / items / properties / guideUrl
        Added value: +{
        +  "description": "A 10ML guide about this perfume",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / handle
        Removed value: -{
        -  "description": "Stable 10ML identifier, usable with get_perfume",
        -  "type": "string"
        -}
      • addedOutput schema / properties / results / items / properties / houseUrl
        Added value: +{
        +  "description": "The house page on 10ml.com",
        +  "type": "string"
        +}
      • addedOutput schema / properties / results / items / properties / id
        Added value: +{
        +  "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes",
        +  "type": "string"
        +}
      • removedOutput schema / properties / results / items / properties / imageUrl
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • addedOutput schema / properties / results / items / properties / keyNotes
        Added value: +{
        +  "description": "The defining notes",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / results / items / properties / newRelease
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / notes
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedOutput schema / properties / results / items / properties / onSale
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / results / items / properties / rating
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": false,
        -      "properties": {
        -        "count": {
        -          "type": "number"
        -        },
        -        "value": {
        -          "type": "number"
        -        }
        -      },
        -      "required": [
        -        "value",
        -        "count"
        -      ],
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ]
        -}
      • removedOutput schema / properties / results / items / properties / sizesMl
        Removed value: -{
        -  "description": "Decant sizes in ml available at 10ML",
        -  "items": {
        -    "type": "number"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / results / items / properties / url / description
        Previous value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com"
      • addedOutput schema / properties / results / items / properties / year
        Added value: +{
        +  "description": "Launch year",
        +  "type": "number"
        +}
      • changedOutput schema / properties / results / items / required
        Previous value: -[
        -  "handle",
        -  "name",
        -  "house",
        -  "gender",
        -  "fromPriceEur",
        -  "fromPrice",
        -  "currency",
        -  "sizesMl",
        -  "notes",
        -  "rating",
        -  "bestseller",
        -  "newRelease",
        -  "onSale",
        -  "url",
        -  "imageUrl"
        -]New value: +[
        +  "id",
        +  "name",
        +  "house",
        +  "gender",
        +  "family",
        +  "accords",
        +  "keyNotes",
        +  "character",
        +  "url"
        +]
      • changedOutput schema / required
        Previous value: -[
        -  "gender",
        -  "results"
        -]New value: +[
        +  "filters",
        +  "results"
        +]
  6. 6 tool updates
    • First observedfind_similar_perfumes
    • First observedget_perfume
    • First observedlist_houses
    • First observedperfumes_by_note
    • First observedsearch_perfumes
    • First observedtrending_perfumes

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Read-only MCP server for the Perfume Picks fragrance database, enabling fragrance search, detailed note pyramids, curated dupes, similar scents, recommendations, comparisons, trending, and occasion-based scent suggestions.
    8
    453 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for parfica.com, a Ukrainian-first fragrance encyclopedia. Enables AI assistants to search fragrances, get detailed profiles, and find cheaper similar alternatives via note overlap.
    3
    19 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server that lets AI assistants query the Noteboxd fragrance encyclopedia for fragrances, notes, accords, brands, perfumers, reviews, and charts. Enables natural-language queries like comparisons, recommendations, and review digests.
    19
    32 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for agriculture and farming data. 8 tools: soil conditions (temperature, moisture), crop weather forecasts, historical climate data (NASA POWER, since 1981), global agriculture statistics (World Bank, 20+ indicators), and food product database (Open Food Facts, 3M+ products). All APIs free, no keys required.
    8
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources