10ML Perfume Finder
Server Details
Free perfume MCP server and fragrance API: 5,400+ perfumes, note pyramids, accords, similar scents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Server Listing
- 10ML Perfume Finder
TDQS
Scored across 15 tools
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).
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.
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.
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 toolscompare_perfumesCompare perfumesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| perfumes | Yes | 2 to 4 perfumes, each a name with optional house or an id. Example: ["Dior Sauvage","Tom Ford Ombre Leather"] | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | Yes | |
| message | No | |
| perfumes | Yes | |
| closeness | Yes | |
| unresolved | No | |
| differences | Yes | |
| shared_notes | Yes | |
| unique_notes | Yes | |
| shared_accords | Yes |
TDQS
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.
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.
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.
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.
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.
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 noteARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | The note. Examples: "ambroxan", "oud", "iris", "orris", "Bergamotte" | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| found | Yes | |
| links | No | |
| source | Yes | |
| message | No | |
| suggestions | No | |
| famous_perfumes | No |
TDQS
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.
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.
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.
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.
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.
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 termARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | A term or family. Examples: "EDP", "sillage", "chypre", "dry down", "fougere". Omit to list all terms. | |
| limit | No | How many results per page (1-60, default 12). | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| source | Yes | |
| matches | Yes | |
| message | No | |
| available | No | |
| next_cursor | No | |
| suggestions | No |
TDQS
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.
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.
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.
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.
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.
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 giftARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results per page (1-12, default 5). | |
| loves | No | Perfumes they already wear or love, e.g. ["Delina"] | |
| style | No | ||
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| boldness | No | safe: crowd-pleasing classics; adventurous: distinctive niche picks | safe |
| occasion | No | When they would wear it most, e.g. "office" | |
| age_range | No | Age range of the recipient | |
| recipient | Yes | Who the gift is for: him (men and unisex), her (women and unisex) or anyone (unisex-friendly) | |
| liked_notes | No | Notes they like, e.g. ["vanilla","rose"] | |
| relationship | No | Example: "partner", "dad", "colleague", "friend" | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| tip | Yes | |
| picks | Yes | |
| total | Yes | |
| source | Yes | |
| message | No | |
| unresolved | No | |
| next_cursor | No |
TDQS
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.
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.
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.
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.
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.
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 alternativesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| house | No | House of the original when the name is ambiguous, e.g. "Parfums de Marly" | |
| limit | No | How many results per page (1-10, default 6). | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| perfume | Yes | The famous perfume to find alternatives for. Examples: "Creed Aventus", "Baccarat Rouge 540", "Delina" | |
| closeness | No | Only alternatives at this closeness |
Output Schema
| Name | Required | Description |
|---|---|---|
| guide | No | |
| links | Yes | |
| total | Yes | |
| source | Yes | |
| message | No | |
| original | Yes | |
| next_cursor | No | |
| alternatives | Yes | |
| other_matches | No |
TDQS
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.
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.
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.
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.
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.
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 perfumesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| house | No | House of the perfume when the name alone is ambiguous, e.g. "Maison Francis Kurkdjian" | |
| limit | No | How many results per page (1-15, default 8). | |
| notes | No | Known notes of the starting perfume, for perfumes outside the index. Example: ["jasmine","saffron","ambergris","cedar"] | |
| steer | No | 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). | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| gender | No | Only return perfumes for this audience (men and women include unisex) | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| accords | No | Known accords of the starting perfume. Example: ["amber","woody","sweet"] | |
| perfume | No | A perfume by name, optionally with its house, e.g. "Baccarat Rouge 540", "Dior Sauvage", "Delina". Or pass an id from another tool. | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
| other_houses_only | No | True to leave out perfumes from the same house as the starting perfume |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| source | Yes | |
| target | Yes | |
| message | No | |
| results | Yes | |
| next_cursor | No | |
| unrecognised_notes | No |
TDQS
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.
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.
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.
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.
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.
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 houseARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| house | Yes | The house. Examples: "Creed", "YSL", "Maison Francis Kurkdjian", "Parfums de Marly" | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| house | No | |
| links | No | |
| source | Yes | |
| message | No | |
| suggestions | No | |
| signature_perfumes | No |
TDQS
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.
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.
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.
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.
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.
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 profileARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| house | No | House, when the name alone is ambiguous. Example: "Creed" | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| perfume | Yes | 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". | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| exact | Yes | |
| found | Yes | |
| guides | No | |
| source | Yes | |
| message | No | |
| perfume | No | |
| similar | No | |
| house_info | No | |
| suggestions | No | |
| alternatives | No |
TDQS
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.
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.
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.
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.
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.
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 housesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Only houses of this type | |
| limit | No | How many results per page (1-50, default 20). | |
| query | No | Part of a house name, e.g. "tom" or "maison" | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| country | No | Only houses from this country, e.g. "France", "Italy", "United Arab Emirates" |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| houses | Yes | |
| source | Yes | |
| message | No | |
| next_cursor | No |
TDQS
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.
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.
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.
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.
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.
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 noteARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | The note. Examples: "oud", "vanilla", "pink pepper", "Vanille" | |
| limit | No | How many results per page (1-20, default 8). | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| gender | No | Audience the perfume is marketed to. men and women also include unisex perfumes. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| season | No | Season the perfume suits (fall is accepted in text queries as autumn). | |
| occasion | No | Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion. | |
| position | No | Where the note sits in the pyramid: top, heart, base or any | any |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| total | Yes | |
| source | Yes | |
| message | No | |
| results | Yes | |
| next_cursor | No |
TDQS
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.
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.
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.
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.
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.
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 occasionARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results per page (1-15, default 6). | |
| style | No | Styles wanted, e.g. ["fresh","clean"] for summer office wear | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| gender | No | Audience the perfume is marketed to. men and women also include unisex perfumes. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| season | No | Season the perfume suits (fall is accepted in text queries as autumn). | |
| occasion | No | Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion. | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| picks | Yes | |
| total | Yes | |
| guides | No | |
| source | Yes | |
| filters | Yes | |
| message | No | |
| next_cursor | No |
TDQS
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.
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.
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.
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.
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.
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 perfumesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| likes | No | Perfumes they love, e.g. ["Parfums de Marly Delina","Dior Sauvage"] | |
| limit | No | How many results per page (1-15, default 6). | |
| style | No | Styles wanted, e.g. ["fresh","clean"] | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| family | No | A fragrance family or word like "woody" or "citrus" | |
| gender | No | Audience the perfume is marketed to. men and women also include unisex perfumes. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| season | No | Season the perfume suits (fall is accepted in text queries as autumn). | |
| dislikes | No | Perfumes they dislike; similar ones are pushed down | |
| occasion | No | Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion. | |
| liked_notes | No | Notes they enjoy, e.g. ["vanilla","rose"] | |
| avoided_notes | No | Notes to exclude entirely, e.g. ["patchouli","oud"] | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| picks | Yes | |
| taste | Yes | |
| total | Yes | |
| source | Yes | |
| message | No | |
| unresolved | No | |
| next_cursor | No |
TDQS
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.
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.
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.
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.
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.
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 guidesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | how-to, list (rankings/comparisons), alternatives (dupes guides), note (a note explained), house (a house mapped) | |
| limit | No | How many results per page (1-20, default 8). | |
| query | No | What the guide is about. Examples: "how to make perfume last", "oud", "Creed Aventus dupes", "gift". Omit to browse. | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| guides | Yes | |
| source | Yes | |
| message | No | |
| next_cursor | No |
TDQS
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.
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.
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.
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.
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.
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 perfumesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| house | No | Only perfumes from this house. Examples: "Dior", "Maison Francis Kurkdjian", "MFK", "YSL" | |
| limit | No | How many results per page (1-20, default 8). | |
| query | No | Free text: a perfume name, house, notes or mood. Examples: "fresh citrus summer for men", "Tom Ford tobacco", "vanilla gourmand for winter" | |
| style | No | A style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody. | |
| cursor | No | next_cursor from the previous page; omit for the first page. | |
| family | No | 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". | |
| gender | No | Audience the perfume is marketed to. men and women also include unisex perfumes. | |
| iconic | No | true = only the editors' iconic, era-defining classics (works with every other filter, and without a query) | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| season | No | Season the perfume suits (fall is accepted in text queries as autumn). | |
| accords | No | Accords that must be present. Examples: ["woody","sweet"], ["fresh","aquatic"] | |
| occasion | No | Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion. | |
| notes_exclude | No | None of these notes may be present. Example: ["patchouli"] | |
| notes_include | No | Every listed note must be present. Examples: ["oud","rose"], ["vanilla"] | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| source | Yes | |
| filters | Yes | |
| message | No | |
| relaxed | Yes | |
| results | Yes | |
| next_cursor | No |
TDQS
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.
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.
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.
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.
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.
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 layeringARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results per page (1-10, default 5). | |
| notes | No | One or two notes. Examples: ["vanilla","citrus"], ["oud"] | |
| locale | No | Language of the 10ml.com links and labels. Perfume, house and note names stay as they are. | en |
| perfumes | No | One or two perfumes. Examples: ["Parfums de Marly Delina"], ["Dior Sauvage","Creed Aventus"] | |
| response_format | No | concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection). | concise |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| pairs | Yes | |
| advice | Yes | |
| source | Yes | |
| message | No | |
| verdict | No | |
| partners | No |
TDQS
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.
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.
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.
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.
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.
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.
16 tool updates
- Changed
compare_perfumes15 fields changed- removed
Output schema / properties / closeness / descriptionRemoved value: -"How alike the perfumes are overall (average over all pairs)" - removed
Output schema / properties / differences / descriptionRemoved value: -"Plain-language differences, most important first" - removed
Output schema / properties / perfumes / items / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / perfumes / items / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / perfumes / items / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / perfumes / items / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / perfumes / items / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / perfumes / items / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / perfumes / items / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / perfumes / items / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / perfumes / items / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / perfumes / items / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / perfumes / items / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / shared_notes / descriptionRemoved value: -"Notes present in every compared perfume" - removed
Output schema / properties / unique_notes / descriptionRemoved value: -"Per perfume id: notes the others do not have"
- Changed
explain_note12 fields changed- removed
Output schema / properties / famous_perfumes / items / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / famous_perfumes / items / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / famous_perfumes / items / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / famous_perfumes / items / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / famous_perfumes / items / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / famous_perfumes / items / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / famous_perfumes / items / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / famous_perfumes / items / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / famous_perfumes / items / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / famous_perfumes / items / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / famous_perfumes / items / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale"
- Changed
explain_perfume_term4 fields changed- removed
Output schema / properties / available / descriptionRemoved value: -"Every term and family covered (only when term is omitted)" - removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
find_gift14 fields changed- removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / picks / items / properties / perfume / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / picks / items / properties / perfume / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / picks / items / properties / perfume / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / picks / items / properties / perfume / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / picks / items / properties / perfume / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / picks / items / properties / perfume / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / picks / items / properties / perfume / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / picks / items / properties / perfume / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / picks / items / properties / perfume / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / picks / items / properties / perfume / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / picks / items / properties / perfume / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
find_perfume_alternatives8 fields changed- removed
Output schema / properties / alternatives / items / properties / id / descriptionRemoved value: -"Fragrance Index id when the alternative has its own profile" - removed
Output schema / properties / guide / descriptionRemoved value: -"The 10ML guide comparing this perfume with its alternatives" - removed
Output schema / properties / guide / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / other_matches / descriptionRemoved value: -"Other originals the query could also mean" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
find_similar_perfumes15 fields changed- removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / results / items / properties / perfume / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / results / items / properties / perfume / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / results / items / properties / perfume / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / results / items / properties / perfume / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / results / items / properties / perfume / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / results / items / properties / perfume / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / results / items / properties / perfume / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / results / items / properties / perfume / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / results / items / properties / perfume / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / results / items / properties / perfume / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / results / items / properties / perfume / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all" - removed
Output schema / properties / unrecognised_notes / descriptionRemoved value: -"Notes that are not in the index vocabulary and were ignored"
- Changed
get_house12 fields changed- removed
Output schema / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / signature_perfumes / items / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / signature_perfumes / items / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / signature_perfumes / items / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / signature_perfumes / items / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / signature_perfumes / items / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / signature_perfumes / items / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / signature_perfumes / items / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / signature_perfumes / items / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / signature_perfumes / items / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / signature_perfumes / items / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / signature_perfumes / items / properties / year / descriptionRemoved value: -"Launch year when known"
- Changed
get_perfume31 fields changed- added
Output schema / $defsAdded 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" + } +} - removed
Output schema / properties / exact / descriptionRemoved value: -"False when this is a closest-match guess" - added
Output schema / properties / guides / $refAdded value: +"#/$defs/d1" - removed
Output schema / properties / guides / itemsRemoved 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" -} - removed
Output schema / properties / guides / typeRemoved value: -"array" - removed
Output schema / properties / perfume / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / perfume / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / perfume / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / perfume / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / perfume / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - added
Output schema / properties / perfume / properties / links / $refAdded value: +"#/$defs/d1" - removed
Output schema / properties / perfume / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / perfume / properties / links / itemsRemoved 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" -} - removed
Output schema / properties / perfume / properties / links / typeRemoved value: -"array" - removed
Output schema / properties / perfume / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / perfume / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / perfume / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / perfume / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / suggestions / items / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / suggestions / items / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / suggestions / items / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / suggestions / items / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / suggestions / items / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - added
Output schema / properties / suggestions / items / properties / links / $refAdded value: +"#/$defs/d1" - removed
Output schema / properties / suggestions / items / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / suggestions / items / properties / links / itemsRemoved 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" -} - removed
Output schema / properties / suggestions / items / properties / links / typeRemoved value: -"array" - removed
Output schema / properties / suggestions / items / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / suggestions / items / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / suggestions / items / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / suggestions / items / properties / year / descriptionRemoved value: -"Launch year when known"
- Removed
iconic_perfumes - Changed
list_houses3 fields changed- removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
perfumes_by_note15 fields changed- removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / note / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / results / items / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / results / items / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / results / items / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / results / items / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / results / items / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / results / items / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / results / items / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / results / items / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / results / items / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / results / items / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / results / items / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
pick_for_occasion15 fields changed- removed
Output schema / properties / guides / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / picks / items / properties / perfume / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / picks / items / properties / perfume / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / picks / items / properties / perfume / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / picks / items / properties / perfume / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / picks / items / properties / perfume / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / picks / items / properties / perfume / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / picks / items / properties / perfume / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / picks / items / properties / perfume / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / picks / items / properties / perfume / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / picks / items / properties / perfume / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / picks / items / properties / perfume / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
recommend_perfumes14 fields changed- removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / picks / items / properties / perfume / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / picks / items / properties / perfume / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / picks / items / properties / perfume / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / picks / items / properties / perfume / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / picks / items / properties / perfume / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / picks / items / properties / perfume / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / picks / items / properties / perfume / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / picks / items / properties / perfume / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / picks / items / properties / perfume / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / picks / items / properties / perfume / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / picks / items / properties / perfume / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
search_guides4 fields changed- removed
Output schema / properties / guides / items / properties / translated / descriptionRemoved value: -"False when the guide is only available in English (the url is then the English page)" - removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
search_perfumes17 fields changed- added
Input schema / properties / iconicAdded value: +{ + "description": "true = only the editors' iconic, era-defining classics (works with every other filter, and without a query)", + "type": "boolean" +} - removed
Output schema / properties / filters / descriptionRemoved value: -"The filters applied, including ones read from the query text" - removed
Output schema / properties / message / descriptionRemoved value: -"Guidance when the result is empty, partial or needs a follow-up tool" - removed
Output schema / properties / next_cursor / descriptionRemoved value: -"Pass as cursor to get the next page; absent on the last page" - removed
Output schema / properties / relaxed / descriptionRemoved value: -"True when no perfume matched every word and the closest partial matches are shown" - removed
Output schema / properties / results / items / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / results / items / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / results / items / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / results / items / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / results / items / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / results / items / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / results / items / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / results / items / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / results / items / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / results / items / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / results / items / properties / year / descriptionRemoved value: -"Launch year when known" - removed
Output schema / properties / total / descriptionRemoved value: -"How many results matched in all"
- Changed
suggest_layering11 fields changed- removed
Output schema / properties / partners / items / properties / perfume / properties / accords / descriptionRemoved value: -"Main accords, strongest first" - removed
Output schema / properties / partners / items / properties / perfume / properties / character / descriptionRemoved value: -"One-sentence description by 10ML's fragrance editors" - removed
Output schema / properties / partners / items / properties / perfume / properties / family / descriptionRemoved value: -"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / partners / items / properties / perfume / properties / id / descriptionRemoved value: -"Stable Fragrance Index id, usable with get_perfume and find_similar_perfumes" - removed
Output schema / properties / partners / items / properties / perfume / properties / key_notes / descriptionRemoved value: -"The defining notes (empty when no pyramid is published)" - removed
Output schema / properties / partners / items / properties / perfume / properties / links / descriptionRemoved value: -"1-3 relevant 10ml.com links" - removed
Output schema / properties / partners / items / properties / perfume / properties / links / items / properties / url / descriptionRemoved value: -"A 10ml.com link in the requested locale" - removed
Output schema / properties / partners / items / properties / perfume / properties / longevity / descriptionRemoved value: -"1 (short) to 5 (very long)" - removed
Output schema / properties / partners / items / properties / perfume / properties / other_versions / descriptionRemoved value: -"Ids of other concentrations or flankers of the same perfume in the index" - removed
Output schema / properties / partners / items / properties / perfume / properties / projection / descriptionRemoved value: -"1 (skin scent) to 5 (fills a room)" - removed
Output schema / properties / partners / items / properties / perfume / properties / year / descriptionRemoved value: -"Launch year when known"
12 tool updates
- Changed
compare_perfumes2 fields changed- added
Output schema / properties / perfumes / items / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / perfumes / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
explain_note2 fields changed- added
Output schema / properties / famous_perfumes / items / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / famous_perfumes / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
find_gift2 fields changed- added
Output schema / properties / picks / items / properties / perfume / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / picks / items / properties / perfume / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
find_similar_perfumes2 fields changed- added
Output schema / properties / results / items / properties / perfume / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / results / items / properties / perfume / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
get_house2 fields changed- added
Output schema / properties / signature_perfumes / items / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / signature_perfumes / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
get_perfume4 fields changed- added
Output schema / properties / perfume / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / perfume / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +] - added
Output schema / properties / suggestions / items / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / suggestions / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
iconic_perfumes2 fields changed- added
Output schema / properties / results / items / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
perfumes_by_note2 fields changed- added
Output schema / properties / results / items / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
pick_for_occasion2 fields changed- added
Output schema / properties / picks / items / properties / perfume / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / picks / items / properties / perfume / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
recommend_perfumes2 fields changed- added
Output schema / properties / picks / items / properties / perfume / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / picks / items / properties / perfume / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
search_perfumes2 fields changed- added
Output schema / properties / results / items / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
- Changed
suggest_layering2 fields changed- added
Output schema / properties / partners / items / properties / perfume / properties / profileAdded value: +{ + "enum": [ + "full", + "core" + ], + "type": "string" +} - changed
Output schema / properties / partners / items / properties / perfume / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links", + "profile" +]
17 tool updates
- Changed
compare_perfumes9 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / perfumes / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / perfumes / items / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / perfumes / items / properties / pyramid / additionalPropertiesRemoved value: -false - removed
Output schema / properties / unresolved / items / additionalPropertiesRemoved value: -false
- Changed
explain_note10 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / famous_perfumes / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / famous_perfumes / items / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / famous_perfumes / items / properties / pyramid / additionalPropertiesRemoved value: -false - removed
Output schema / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / note / additionalPropertiesRemoved value: -false
- Changed
explain_perfume_term6 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / matches / items / additionalPropertiesRemoved value: -false
- Changed
find_gift10 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / properties / pyramid / additionalPropertiesRemoved value: -false
- Changed
find_perfume_alternatives9 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / alternatives / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / guide / additionalPropertiesRemoved value: -false - removed
Output schema / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / original / additionalPropertiesRemoved value: -false
- Changed
find_similar_perfumes11 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / perfume / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / perfume / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / perfume / properties / pyramid / additionalPropertiesRemoved value: -false - removed
Output schema / properties / target / additionalPropertiesRemoved value: -false
- Changed
get_house10 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / house / additionalPropertiesRemoved value: -false - removed
Output schema / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / signature_perfumes / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / signature_perfumes / items / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / signature_perfumes / items / properties / pyramid / additionalPropertiesRemoved value: -false
- Changed
get_perfume15 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / alternatives / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / guides / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / house_info / additionalPropertiesRemoved value: -false - removed
Output schema / properties / perfume / additionalPropertiesRemoved value: -false - removed
Output schema / properties / perfume / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / perfume / properties / pyramid / additionalPropertiesRemoved value: -false - removed
Output schema / properties / similar / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / suggestions / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / suggestions / items / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / suggestions / items / properties / pyramid / additionalPropertiesRemoved value: -false
- Changed
iconic_perfumes9 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / pyramid / additionalPropertiesRemoved value: -false
- Changed
list_houses6 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / houses / items / additionalPropertiesRemoved value: -false
- Changed
perfumes_by_note11 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / note / additionalPropertiesRemoved value: -false - removed
Output schema / properties / note / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / pyramid / additionalPropertiesRemoved value: -false
- Changed
pick_for_occasion11 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / guides / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / properties / pyramid / additionalPropertiesRemoved value: -false
- Changed
recommend_perfumes11 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / picks / items / properties / perfume / properties / pyramid / additionalPropertiesRemoved value: -false - removed
Output schema / properties / taste / additionalPropertiesRemoved value: -false
- Changed
search_guides6 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / guides / items / additionalPropertiesRemoved value: -false
- Changed
search_perfumes9 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / cursor / descriptionPrevious 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." - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / results / items / properties / pyramid / additionalPropertiesRemoved value: -false
- Changed
suggest_layering10 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / locale / descriptionPrevious 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." - changed
Input schema / properties / response_format / descriptionPrevious 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)." - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / pairs / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / partners / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / partners / items / properties / perfume / additionalPropertiesRemoved value: -false - removed
Output schema / properties / partners / items / properties / perfume / properties / links / items / additionalPropertiesRemoved value: -false - removed
Output schema / properties / partners / items / properties / perfume / properties / pyramid / additionalPropertiesRemoved value: -false
- Removed
trending_perfumes
17 tool updates
- Added
compare_perfumes - Added
explain_note - Added
explain_perfume_term - Added
find_gift - Added
find_perfume_alternatives - Changed
find_similar_perfumes47 fields changed- added
Input schema / properties / accordsAdded value: +{ + "description": "Known accords of the starting perfume. Example: [\"amber\",\"woody\",\"sweet\"]", + "items": { + "maxLength": 40, + "type": "string" + }, + "maxItems": 6, + "type": "array" +} - added
Input schema / properties / cursorAdded 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" +} - changed
Input schema / properties / gender / descriptionPrevious value: -"Only return perfumes for this audience (men/women include unisex)"New value: +"Only return perfumes for this audience (men and women include unisex)" - changed
Input schema / properties / house / descriptionPrevious 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\"" - removed
Input schema / properties / idRemoved value: -{ - "description": "Fragrance Index id of the perfume to match", - "maxLength": 120, - "type": "string" -} - added
Input schema / properties / limit / defaultAdded value: +8 - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results to return (1-10, default 8)."New value: +"How many results per page (1-15, default 8)." - changed
Input schema / properties / limit / maximumPrevious value: -10New value: +15 - added
Input schema / properties / localeAdded 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" +} - removed
Input schema / properties / nameRemoved value: -{ - "description": "Name of the perfume, e.g. \"Baccarat Rouge 540\"", - "maxLength": 120, - "type": "string" -} - changed
Input schema / properties / notes / descriptionPrevious 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\"]" - changed
Input schema / properties / notes / maxItemsPrevious value: -40New value: +30 - added
Input schema / properties / other_houses_onlyAdded value: +{ + "default": false, + "description": "True to leave out perfumes from the same house as the starting perfume", + "type": "boolean" +} - added
Input schema / properties / perfumeAdded 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" +} - added
Input schema / properties / response_formatAdded 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" +} - added
Input schema / properties / steerAdded 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" +} - added
Output schema / properties / message / descriptionAdded value: +"Guidance when the result is empty, partial or needs a follow-up tool" - added
Output schema / properties / next_cursorAdded value: +{ + "description": "Pass as cursor to get the next page; absent on the last page", + "type": "string" +} - removed
Output schema / properties / results / items / properties / accordsRemoved value: -{ - "description": "Main accords, strongest first", - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / results / items / properties / characterRemoved value: -{ - "description": "One-sentence editorial description by 10ML's fragrance editors", - "type": "string" -} - added
Output schema / properties / results / items / properties / closenessAdded value: +{ + "enum": [ + "very close", + "similar vibe", + "same spirit" + ], + "type": "string" +} - removed
Output schema / properties / results / items / properties / familyRemoved value: -{ - "description": "Fragrance family", - "type": "string" -} - removed
Output schema / properties / results / items / properties / genderRemoved value: -{ - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" -} - removed
Output schema / properties / results / items / properties / guideUrlRemoved value: -{ - "description": "A 10ML guide about this perfume", - "type": "string" -} - removed
Output schema / properties / results / items / properties / houseRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / results / items / properties / houseUrlRemoved value: -{ - "description": "The house page on 10ml.com", - "type": "string" -} - removed
Output schema / properties / results / items / properties / idRemoved value: -{ - "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes", - "type": "string" -} - removed
Output schema / properties / results / items / properties / keyNotesRemoved value: -{ - "description": "The defining notes", - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / results / items / properties / nameRemoved value: -{ - "type": "string" -} - added
Output schema / properties / results / items / properties / perfumeAdded 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" +} - removed
Output schema / properties / results / items / properties / sharedAccordsRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / results / items / properties / sharedNotesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / results / items / properties / shared_accordsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / shared_notesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / urlRemoved value: -{ - "description": "\"Try it at 10ML\": find this perfume on 10ml.com", - "type": "string" -} - added
Output schema / properties / results / items / properties / whyAdded value: +{ + "type": "string" +} - removed
Output schema / properties / results / items / properties / yearRemoved value: -{ - "description": "Launch year", - "type": "number" -} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "keyNotes", - "character", - "url", - "sharedNotes", - "sharedAccords" -]New value: +[ + "perfume", + "closeness", + "shared_notes", + "shared_accords", + "why" +] - added
Output schema / properties / sourceAdded value: +{ + "type": "string" +} - added
Output schema / properties / target / properties / accordsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / target / properties / inIndexRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / target / properties / in_indexAdded value: +{ + "type": "boolean" +} - removed
Output schema / properties / target / properties / urlRemoved value: -{ - "type": "string" -} - changed
Output schema / properties / target / requiredPrevious value: -[ - "name", - "house", - "inIndex", - "notes" -]New value: +[ + "name", + "house", + "in_index", + "notes", + "accords" +] - added
Output schema / properties / totalAdded value: +{ + "description": "How many results matched in all", + "type": "number" +} - added
Output schema / properties / unrecognised_notesAdded value: +{ + "description": "Notes that are not in the index vocabulary and were ignored", + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "target", - "results" -]New value: +[ + "total", + "target", + "results", + "source" +]
- Added
get_house - Changed
get_perfume58 fields changed- changed
Input schema / properties / house / descriptionPrevious value: -"Perfume house, e.g. \"Creed\""New value: +"House, when the name alone is ambiguous. Example: \"Creed\"" - removed
Input schema / properties / idRemoved value: -{ - "description": "Fragrance Index id, e.g. \"creed-aventus\"", - "maxLength": 120, - "type": "string" -} - added
Input schema / properties / localeAdded 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" +} - removed
Input schema / properties / nameRemoved value: -{ - "description": "Perfume name, e.g. \"Aventus\" (the house may be included, e.g. \"Creed Aventus\")", - "maxLength": 120, - "type": "string" -} - added
Input schema / properties / perfumeAdded 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" +} - added
Input schema / properties / response_formatAdded 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" +} - added
Input schema / requiredAdded value: +[ + "perfume" +] - added
Output schema / properties / alternativesAdded 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" +} - added
Output schema / properties / guidesAdded 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" +} - added
Output schema / properties / house_infoAdded value: +{ + "additionalProperties": false, + "properties": { + "country": { + "type": "string" + }, + "name": { + "type": "string" + }, + "style": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "style" + ], + "type": "object" +} - changed
Output schema / properties / perfume / properties / character / descriptionPrevious value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors" - added
Output schema / properties / perfume / properties / concentrationAdded value: +{ + "type": "string" +} - changed
Output schema / properties / perfume / properties / family / descriptionPrevious value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / perfume / properties / guideUrlRemoved value: -{ - "description": "A 10ML guide about this perfume", - "type": "string" -} - removed
Output schema / properties / perfume / properties / houseInfoRemoved value: -{ - "additionalProperties": false, - "properties": { - "country": { - "type": "string" - }, - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "style": { - "type": "string" - } - }, - "required": [ - "name", - "style", - "description" - ], - "type": "object" -} - removed
Output schema / properties / perfume / properties / houseUrlRemoved value: -{ - "description": "The house page on 10ml.com", - "type": "string" -} - changed
Output schema / properties / perfume / properties / id / descriptionPrevious 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" - removed
Output schema / properties / perfume / properties / keyNotesRemoved value: -{ - "description": "The defining notes", - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / perfume / properties / key_notesAdded value: +{ + "description": "The defining notes (empty when no pyramid is published)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / perfume / properties / links / descriptionAdded value: +"1-3 relevant 10ml.com links" - added
Output schema / properties / perfume / properties / links / items / properties / typeAdded value: +{ + "enum": [ + "try", + "guide", + "note" + ], + "type": "string" +} - added
Output schema / properties / perfume / properties / links / items / properties / url / descriptionAdded value: +"A 10ml.com link in the requested locale" - changed
Output schema / properties / perfume / properties / links / items / requiredPrevious value: -[ - "title", - "url" -]New value: +[ + "type", + "title", + "url" +] - added
Output schema / properties / perfume / properties / longevityAdded value: +{ + "description": "1 (short) to 5 (very long)", + "type": "number" +} - removed
Output schema / properties / perfume / properties / notesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / perfume / properties / occasions / items / enumRemoved value: -[ - "daytime", - "office", - "casual", - "evening", - "date night", - "special occasion" -] - added
Output schema / properties / perfume / properties / other_versionsAdded value: +{ + "description": "Ids of other concentrations or flankers of the same perfume in the index", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / perfume / properties / perfumersAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / perfume / properties / projectionAdded value: +{ + "description": "1 (skin scent) to 5 (fills a room)", + "type": "number" +} - added
Output schema / properties / perfume / properties / pyramid / requiredAdded value: +[ + "top", + "heart", + "base" +] - removed
Output schema / properties / perfume / properties / seasons / items / enumRemoved value: -[ - "spring", - "summer", - "autumn", - "winter" -] - added
Output schema / properties / perfume / properties / stylesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / perfume / properties / urlRemoved value: -{ - "description": "\"Try it at 10ML\": find this perfume on 10ml.com", - "type": "string" -} - changed
Output schema / properties / perfume / properties / year / descriptionPrevious value: -"Launch year"New value: +"Launch year when known" - changed
Output schema / properties / perfume / requiredPrevious 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" +] - added
Output schema / properties / similarAdded 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" +} - added
Output schema / properties / sourceAdded value: +{ + "type": "string" +} - changed
Output schema / properties / suggestions / items / properties / character / descriptionPrevious value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors" - added
Output schema / properties / suggestions / items / properties / concentrationAdded value: +{ + "type": "string" +} - changed
Output schema / properties / suggestions / items / properties / family / descriptionPrevious value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / suggestions / items / properties / guideUrlRemoved value: -{ - "description": "A 10ML guide about this perfume", - "type": "string" -} - removed
Output schema / properties / suggestions / items / properties / houseUrlRemoved value: -{ - "description": "The house page on 10ml.com", - "type": "string" -} - changed
Output schema / properties / suggestions / items / properties / id / descriptionPrevious 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" - removed
Output schema / properties / suggestions / items / properties / keyNotesRemoved value: -{ - "description": "The defining notes", - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / suggestions / items / properties / key_notesAdded value: +{ + "description": "The defining notes (empty when no pyramid is published)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / suggestions / items / properties / linksAdded 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" +} - added
Output schema / properties / suggestions / items / properties / longevityAdded value: +{ + "description": "1 (short) to 5 (very long)", + "type": "number" +} - added
Output schema / properties / suggestions / items / properties / occasionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / suggestions / items / properties / other_versionsAdded value: +{ + "description": "Ids of other concentrations or flankers of the same perfume in the index", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / suggestions / items / properties / perfumersAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / suggestions / items / properties / projectionAdded value: +{ + "description": "1 (skin scent) to 5 (fills a room)", + "type": "number" +} - added
Output schema / properties / suggestions / items / properties / pyramidAdded 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" +} - added
Output schema / properties / suggestions / items / properties / seasonsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / suggestions / items / properties / stylesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / suggestions / items / properties / urlRemoved value: -{ - "description": "\"Try it at 10ML\": find this perfume on 10ml.com", - "type": "string" -} - changed
Output schema / properties / suggestions / items / properties / year / descriptionPrevious value: -"Launch year"New value: +"Launch year when known" - changed
Output schema / properties / suggestions / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "keyNotes", - "character", - "url" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links" +] - changed
Output schema / requiredPrevious value: -[ - "found", - "exact" -]New value: +[ + "found", + "exact", + "source" +]
- Added
iconic_perfumes - Changed
list_houses22 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "Only houses from this country, e.g. \"France\", \"Italy\", \"United Arab Emirates\"", + "maxLength": 40, + "type": "string" +} - added
Input schema / properties / cursorAdded 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" +} - added
Input schema / properties / limitAdded value: +{ + "default": 20, + "description": "How many results per page (1-50, default 20).", + "maximum": 50, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / localeAdded 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" +} - added
Input schema / properties / queryAdded value: +{ + "description": "Part of a house name, e.g. \"tom\" or \"maison\"", + "maxLength": 60, + "type": "string" +} - removed
Input schema / properties / styleRemoved value: -{ - "description": "Only houses of this style", - "enum": [ - "Designer", - "Niche", - "Middle Eastern" - ], - "type": "string" -} - added
Input schema / properties / typeAdded value: +{ + "description": "Only houses of this type", + "enum": [ + "designer", + "niche", + "middle-eastern", + "indie", + "celebrity" + ], + "type": "string" +} - removed
Output schema / properties / houses / items / properties / descriptionRemoved value: -{ - "type": "string" -} - added
Output schema / properties / houses / items / properties / foundedAdded value: +{ + "type": "number" +} - removed
Output schema / properties / houses / items / properties / guidesRemoved value: -{ - "items": { - "additionalProperties": false, - "properties": { - "title": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "title", - "url" - ], - "type": "object" - }, - "type": "array" -} - added
Output schema / properties / houses / items / properties / known_forAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / houses / items / properties / perfumes_in_indexAdded value: +{ + "type": "number" +} - removed
Output schema / properties / houses / items / properties / signaturePerfumesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / houses / items / properties / styleRemoved value: -{ - "type": "string" -} - added
Output schema / properties / houses / items / properties / typeAdded value: +{ + "type": "string" +} - removed
Output schema / properties / houses / items / properties / urlRemoved value: -{ - "type": "string" -} - changed
Output schema / properties / houses / items / requiredPrevious value: -[ - "id", - "name", - "style", - "description", - "signaturePerfumes", - "guides" -]New value: +[ + "id", + "name", + "type", + "perfumes_in_index", + "known_for" +] - added
Output schema / properties / messageAdded value: +{ + "description": "Guidance when the result is empty, partial or needs a follow-up tool", + "type": "string" +} - added
Output schema / properties / next_cursorAdded value: +{ + "description": "Pass as cursor to get the next page; absent on the last page", + "type": "string" +} - added
Output schema / properties / sourceAdded value: +{ + "type": "string" +} - added
Output schema / properties / total / descriptionAdded value: +"How many results matched in all" - changed
Output schema / requiredPrevious value: -[ - "total", - "houses" -]New value: +[ + "total", + "houses", + "source" +]
- Changed
perfumes_by_note40 fields changed- added
Input schema / properties / cursorAdded 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" +} - changed
Input schema / properties / gender / descriptionPrevious 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." - added
Input schema / properties / limit / defaultAdded value: +8 - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results to return (1-20, default 8)."New value: +"How many results per page (1-20, default 8)." - added
Input schema / properties / localeAdded 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" +} - changed
Input schema / properties / note / descriptionPrevious value: -"The note, e.g. \"oud\", \"vanilla\", \"pink pepper\""New value: +"The note. Examples: \"oud\", \"vanilla\", \"pink pepper\", \"Vanille\"" - added
Input schema / properties / occasionAdded 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" +} - added
Input schema / properties / positionAdded value: +{ + "default": "any", + "description": "Where the note sits in the pyramid: top, heart, base or any", + "enum": [ + "any", + "top", + "heart", + "base" + ], + "type": "string" +} - added
Input schema / properties / response_formatAdded 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" +} - added
Input schema / properties / seasonAdded value: +{ + "description": "Season the perfume suits (fall is accepted in text queries as autumn).", + "enum": [ + "spring", + "summer", + "autumn", + "winter" + ], + "type": "string" +} - added
Output schema / properties / message / descriptionAdded value: +"Guidance when the result is empty, partial or needs a follow-up tool" - added
Output schema / properties / next_cursorAdded value: +{ + "description": "Pass as cursor to get the next page; absent on the last page", + "type": "string" +} - added
Output schema / properties / note / additionalPropertiesAdded value: +false - added
Output schema / properties / note / propertiesAdded 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" + } +} - added
Output schema / properties / note / requiredAdded value: +[ + "name", + "links" +] - changed
Output schema / properties / note / typePrevious value: -"string"New value: +"object" - removed
Output schema / properties / profileRemoved 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" -} - changed
Output schema / properties / results / items / properties / character / descriptionPrevious value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors" - added
Output schema / properties / results / items / properties / concentrationAdded value: +{ + "type": "string" +} - changed
Output schema / properties / results / items / properties / family / descriptionPrevious value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / results / items / properties / guideUrlRemoved value: -{ - "description": "A 10ML guide about this perfume", - "type": "string" -} - removed
Output schema / properties / results / items / properties / houseUrlRemoved value: -{ - "description": "The house page on 10ml.com", - "type": "string" -} - changed
Output schema / properties / results / items / properties / id / descriptionPrevious 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" - removed
Output schema / properties / results / items / properties / keyNotesRemoved value: -{ - "description": "The defining notes", - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / results / items / properties / key_notesAdded value: +{ + "description": "The defining notes (empty when no pyramid is published)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / linksAdded 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" +} - added
Output schema / properties / results / items / properties / longevityAdded value: +{ + "description": "1 (short) to 5 (very long)", + "type": "number" +} - added
Output schema / properties / results / items / properties / occasionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / other_versionsAdded value: +{ + "description": "Ids of other concentrations or flankers of the same perfume in the index", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / perfumersAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / projectionAdded value: +{ + "description": "1 (skin scent) to 5 (fills a room)", + "type": "number" +} - added
Output schema / properties / results / items / properties / pyramidAdded 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" +} - added
Output schema / properties / results / items / properties / seasonsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / stylesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / urlRemoved value: -{ - "description": "\"Try it at 10ML\": find this perfume on 10ml.com", - "type": "string" -} - changed
Output schema / properties / results / items / properties / year / descriptionPrevious value: -"Launch year"New value: +"Launch year when known" - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "keyNotes", - "character", - "url" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links" +] - added
Output schema / properties / sourceAdded value: +{ + "type": "string" +} - added
Output schema / properties / total / descriptionAdded value: +"How many results matched in all" - changed
Output schema / requiredPrevious value: -[ - "note", - "total", - "results" -]New value: +[ + "total", + "note", + "results", + "source" +]
- Added
pick_for_occasion - Added
recommend_perfumes - Added
search_guides - Changed
search_perfumes43 fields changed- added
Input schema / properties / accordsAdded value: +{ + "description": "Accords that must be present. Examples: [\"woody\",\"sweet\"], [\"fresh\",\"aquatic\"]", + "items": { + "maxLength": 40, + "type": "string" + }, + "maxItems": 6, + "type": "array" +} - added
Input schema / properties / cursorAdded 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" +} - changed
Input schema / properties / family / descriptionPrevious 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\"." - changed
Input schema / properties / gender / descriptionPrevious 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." - changed
Input schema / properties / house / descriptionPrevious 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\"" - added
Input schema / properties / limit / defaultAdded value: +8 - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results to return (1-20, default 8)."New value: +"How many results per page (1-20, default 8)." - added
Input schema / properties / localeAdded 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" +} - removed
Input schema / properties / noteRemoved value: -{ - "description": "Restrict to perfumes containing a note, e.g. \"oud\", \"tonka bean\", \"bergamot\"", - "maxLength": 60, - "type": "string" -} - added
Input schema / properties / notes_excludeAdded value: +{ + "description": "None of these notes may be present. Example: [\"patchouli\"]", + "items": { + "maxLength": 60, + "type": "string" + }, + "maxItems": 8, + "type": "array" +} - added
Input schema / properties / notes_includeAdded value: +{ + "description": "Every listed note must be present. Examples: [\"oud\",\"rose\"], [\"vanilla\"]", + "items": { + "maxLength": 60, + "type": "string" + }, + "maxItems": 8, + "type": "array" +} - added
Input schema / properties / occasion / descriptionAdded value: +"Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion." - changed
Input schema / properties / query / descriptionPrevious 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\"" - added
Input schema / properties / response_formatAdded 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" +} - added
Input schema / properties / season / descriptionAdded value: +"Season the perfume suits (fall is accepted in text queries as autumn)." - added
Input schema / properties / styleAdded 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" +} - changed
Output schema / properties / filters / descriptionPrevious value: -"The filters that were applied, including ones read from the query"New value: +"The filters applied, including ones read from the query text" - added
Output schema / properties / message / descriptionAdded value: +"Guidance when the result is empty, partial or needs a follow-up tool" - added
Output schema / properties / next_cursorAdded value: +{ + "description": "Pass as cursor to get the next page; absent on the last page", + "type": "string" +} - changed
Output schema / properties / relaxed / descriptionPrevious 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" - changed
Output schema / properties / results / items / properties / character / descriptionPrevious value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors" - added
Output schema / properties / results / items / properties / concentrationAdded value: +{ + "type": "string" +} - changed
Output schema / properties / results / items / properties / family / descriptionPrevious value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / results / items / properties / guideUrlRemoved value: -{ - "description": "A 10ML guide about this perfume", - "type": "string" -} - removed
Output schema / properties / results / items / properties / houseUrlRemoved value: -{ - "description": "The house page on 10ml.com", - "type": "string" -} - changed
Output schema / properties / results / items / properties / id / descriptionPrevious 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" - removed
Output schema / properties / results / items / properties / keyNotesRemoved value: -{ - "description": "The defining notes", - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / results / items / properties / key_notesAdded value: +{ + "description": "The defining notes (empty when no pyramid is published)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / linksAdded 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" +} - added
Output schema / properties / results / items / properties / longevityAdded value: +{ + "description": "1 (short) to 5 (very long)", + "type": "number" +} - added
Output schema / properties / results / items / properties / occasionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / other_versionsAdded value: +{ + "description": "Ids of other concentrations or flankers of the same perfume in the index", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / perfumersAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / projectionAdded value: +{ + "description": "1 (skin scent) to 5 (fills a room)", + "type": "number" +} - added
Output schema / properties / results / items / properties / pyramidAdded 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" +} - added
Output schema / properties / results / items / properties / seasonsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / stylesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / urlRemoved value: -{ - "description": "\"Try it at 10ML\": find this perfume on 10ml.com", - "type": "string" -} - changed
Output schema / properties / results / items / properties / year / descriptionPrevious value: -"Launch year"New value: +"Launch year when known" - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "keyNotes", - "character", - "url" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links" +] - added
Output schema / properties / sourceAdded value: +{ + "type": "string" +} - changed
Output schema / properties / total / descriptionPrevious value: -"How many perfumes matched in all"New value: +"How many results matched in all" - changed
Output schema / requiredPrevious value: -[ - "total", - "results", - "filters", - "relaxed" -]New value: +[ + "total", + "results", + "filters", + "relaxed", + "source" +]
- Added
suggest_layering - Changed
trending_perfumes35 fields changed- added
Input schema / properties / cursorAdded 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" +} - changed
Input schema / properties / family / descriptionPrevious 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" - changed
Input schema / properties / gender / descriptionPrevious 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." - added
Input schema / properties / limit / defaultAdded value: +8 - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results to return (1-20, default 8)."New value: +"How many results per page (1-20, default 8)." - added
Input schema / properties / localeAdded 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" +} - added
Input schema / properties / occasionAdded 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" +} - added
Input schema / properties / response_formatAdded 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" +} - added
Input schema / properties / season / descriptionAdded value: +"Season the perfume suits (fall is accepted in text queries as autumn)." - added
Input schema / properties / styleAdded 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" +} - added
Output schema / properties / messageAdded value: +{ + "description": "Guidance when the result is empty, partial or needs a follow-up tool", + "type": "string" +} - added
Output schema / properties / next_cursorAdded value: +{ + "description": "Pass as cursor to get the next page; absent on the last page", + "type": "string" +} - changed
Output schema / properties / results / items / properties / character / descriptionPrevious value: -"One-sentence editorial description by 10ML's fragrance editors"New value: +"One-sentence description by 10ML's fragrance editors" - added
Output schema / properties / results / items / properties / concentrationAdded value: +{ + "type": "string" +} - changed
Output schema / properties / results / items / properties / family / descriptionPrevious value: -"Fragrance family"New value: +"Fragrance family, e.g. \"amber floral\"" - removed
Output schema / properties / results / items / properties / guideUrlRemoved value: -{ - "description": "A 10ML guide about this perfume", - "type": "string" -} - removed
Output schema / properties / results / items / properties / houseUrlRemoved value: -{ - "description": "The house page on 10ml.com", - "type": "string" -} - changed
Output schema / properties / results / items / properties / id / descriptionPrevious 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" - removed
Output schema / properties / results / items / properties / keyNotesRemoved value: -{ - "description": "The defining notes", - "items": { - "type": "string" - }, - "type": "array" -} - added
Output schema / properties / results / items / properties / key_notesAdded value: +{ + "description": "The defining notes (empty when no pyramid is published)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / linksAdded 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" +} - added
Output schema / properties / results / items / properties / longevityAdded value: +{ + "description": "1 (short) to 5 (very long)", + "type": "number" +} - added
Output schema / properties / results / items / properties / occasionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / other_versionsAdded value: +{ + "description": "Ids of other concentrations or flankers of the same perfume in the index", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / perfumersAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / projectionAdded value: +{ + "description": "1 (skin scent) to 5 (fills a room)", + "type": "number" +} - added
Output schema / properties / results / items / properties / pyramidAdded 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" +} - added
Output schema / properties / results / items / properties / seasonsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / results / items / properties / stylesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / urlRemoved value: -{ - "description": "\"Try it at 10ML\": find this perfume on 10ml.com", - "type": "string" -} - changed
Output schema / properties / results / items / properties / year / descriptionPrevious value: -"Launch year"New value: +"Launch year when known" - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "keyNotes", - "character", - "url" -]New value: +[ + "id", + "name", + "house", + "gender", + "family", + "accords", + "key_notes", + "character", + "links" +] - added
Output schema / properties / sourceAdded value: +{ + "type": "string" +} - added
Output schema / properties / totalAdded value: +{ + "description": "How many results matched in all", + "type": "number" +} - changed
Output schema / requiredPrevious value: -[ - "filters", - "results" -]New value: +[ + "total", + "filters", + "results", + "source" +]
6 tool updates
- Changed
find_similar_perfumes34 fields changed- changed
Input schema / properties / gender / descriptionPrevious value: -"Only return perfumes suitable for this audience"New value: +"Only return perfumes for this audience (men/women include unisex)" - removed
Input schema / properties / handleRemoved value: -{ - "description": "10ML handle of the perfume to match", - "maxLength": 120, - "type": "string" -} - added
Input schema / properties / idAdded value: +{ + "description": "Fragrance Index id of the perfume to match", + "maxLength": 120, + "type": "string" +} - changed
Input schema / properties / notes / descriptionPrevious 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\"]" - added
Output schema / properties / results / items / properties / accordsAdded value: +{ + "description": "Main accords, strongest first", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / bestsellerRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / results / items / properties / characterAdded value: +{ + "description": "One-sentence editorial description by 10ML's fragrance editors", + "type": "string" +} - removed
Output schema / properties / results / items / properties / currencyRemoved value: -{ - "const": "EUR", - "type": "string" -} - added
Output schema / properties / results / items / properties / familyAdded value: +{ + "description": "Fragrance family", + "type": "string" +} - removed
Output schema / properties / results / items / properties / fromPriceRemoved value: -{ - "description": "The same price formatted for display, e.g. \"€11.88\"", - "type": "string" -} - removed
Output schema / properties / results / items / properties / fromPriceEurRemoved value: -{ - "description": "Price of the smallest size in EUR including VAT", - "type": "number" -} - removed
Output schema / properties / results / items / properties / gender / anyOfRemoved value: -[ - { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / gender / enumAdded value: +[ + "men", + "women", + "unisex" +] - added
Output schema / properties / results / items / properties / gender / typeAdded value: +"string" - added
Output schema / properties / results / items / properties / guideUrlAdded value: +{ + "description": "A 10ML guide about this perfume", + "type": "string" +} - removed
Output schema / properties / results / items / properties / handleRemoved value: -{ - "description": "Stable 10ML identifier, usable with get_perfume", - "type": "string" -} - added
Output schema / properties / results / items / properties / houseUrlAdded value: +{ + "description": "The house page on 10ml.com", + "type": "string" +} - added
Output schema / properties / results / items / properties / idAdded value: +{ + "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes", + "type": "string" +} - removed
Output schema / properties / results / items / properties / imageUrlRemoved value: -{ - "type": [ - "string", - "null" - ] -} - added
Output schema / properties / results / items / properties / keyNotesAdded value: +{ + "description": "The defining notes", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / newReleaseRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / notesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / results / items / properties / onSaleRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / ratingRemoved value: -{ - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "count" - ], - "type": "object" - }, - { - "type": "null" - } - ] -} - added
Output schema / properties / results / items / properties / sharedAccordsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / sizesMlRemoved value: -{ - "description": "Decant sizes in ml available at 10ML", - "items": { - "type": "number" - }, - "type": "array" -} - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com" - added
Output schema / properties / results / items / properties / yearAdded value: +{ + "description": "Launch year", + "type": "number" +} - changed
Output schema / properties / results / items / requiredPrevious 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" +] - removed
Output schema / properties / target / properties / handleRemoved value: -{ - "type": "string" -} - added
Output schema / properties / target / properties / idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / target / properties / inCatalogueRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / target / properties / inIndexAdded value: +{ + "type": "boolean" +} - changed
Output schema / properties / target / requiredPrevious value: -[ - "name", - "house", - "inCatalogue", - "notes" -]New value: +[ + "name", + "house", + "inIndex", + "notes" +]
- Changed
get_perfume55 fields changed- removed
Input schema / properties / handleRemoved value: -{ - "description": "10ML handle, e.g. \"creed-aventus\"", - "maxLength": 120, - "type": "string" -} - added
Input schema / properties / idAdded value: +{ + "description": "Fragrance Index id, e.g. \"creed-aventus\"", + "maxLength": 120, + "type": "string" +} - added
Output schema / properties / perfume / properties / accordsAdded value: +{ + "description": "Main accords, strongest first", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / perfume / properties / allNotesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / perfume / properties / bestsellerRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / perfume / properties / characterAdded value: +{ + "description": "One-sentence editorial description by 10ML's fragrance editors", + "type": "string" +} - removed
Output schema / properties / perfume / properties / currencyRemoved value: -{ - "const": "EUR", - "type": "string" -} - added
Output schema / properties / perfume / properties / familyAdded value: +{ + "description": "Fragrance family", + "type": "string" +} - removed
Output schema / properties / perfume / properties / fromPriceRemoved value: -{ - "description": "The same price formatted for display, e.g. \"€11.88\"", - "type": "string" -} - removed
Output schema / properties / perfume / properties / fromPriceEurRemoved value: -{ - "description": "Price of the smallest size in EUR including VAT", - "type": "number" -} - removed
Output schema / properties / perfume / properties / gender / anyOfRemoved value: -[ - { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / perfume / properties / gender / enumAdded value: +[ + "men", + "women", + "unisex" +] - added
Output schema / properties / perfume / properties / gender / typeAdded value: +"string" - added
Output schema / properties / perfume / properties / guideUrlAdded value: +{ + "description": "A 10ML guide about this perfume", + "type": "string" +} - removed
Output schema / properties / perfume / properties / handleRemoved value: -{ - "description": "Stable 10ML identifier, usable with get_perfume", - "type": "string" -} - added
Output schema / properties / perfume / properties / houseInfoAdded value: +{ + "additionalProperties": false, + "properties": { + "country": { + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "style": { + "type": "string" + } + }, + "required": [ + "name", + "style", + "description" + ], + "type": "object" +} - added
Output schema / properties / perfume / properties / houseUrl / descriptionAdded value: +"The house page on 10ml.com" - added
Output schema / properties / perfume / properties / idAdded value: +{ + "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes", + "type": "string" +} - removed
Output schema / properties / perfume / properties / imageUrlRemoved value: -{ - "type": [ - "string", - "null" - ] -} - added
Output schema / properties / perfume / properties / keyNotesAdded value: +{ + "description": "The defining notes", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / perfume / properties / linksAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" +} - removed
Output schema / properties / perfume / properties / newReleaseRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / perfume / properties / occasionsAdded value: +{ + "items": { + "enum": [ + "daytime", + "office", + "casual", + "evening", + "date night", + "special occasion" + ], + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / perfume / properties / onSaleRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / perfume / properties / pyramidAdded value: +{ + "additionalProperties": false, + "properties": { + "base": { + "items": { + "type": "string" + }, + "type": "array" + }, + "heart": { + "items": { + "type": "string" + }, + "type": "array" + }, + "top": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" +} - removed
Output schema / properties / perfume / properties / ratingRemoved value: -{ - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "count" - ], - "type": "object" - }, - { - "type": "null" - } - ] -} - added
Output schema / properties / perfume / properties / seasonsAdded value: +{ + "items": { + "enum": [ + "spring", + "summer", + "autumn", + "winter" + ], + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / perfume / properties / sizesMlRemoved value: -{ - "description": "Decant sizes in ml available at 10ML", - "items": { - "type": "number" - }, - "type": "array" -} - changed
Output schema / properties / perfume / properties / url / descriptionPrevious value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com" - added
Output schema / properties / perfume / properties / yearAdded value: +{ + "description": "Launch year", + "type": "number" +} - changed
Output schema / properties / perfume / requiredPrevious 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" +] - added
Output schema / properties / suggestions / items / properties / accordsAdded value: +{ + "description": "Main accords, strongest first", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / suggestions / items / properties / bestsellerRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / suggestions / items / properties / characterAdded value: +{ + "description": "One-sentence editorial description by 10ML's fragrance editors", + "type": "string" +} - removed
Output schema / properties / suggestions / items / properties / currencyRemoved value: -{ - "const": "EUR", - "type": "string" -} - added
Output schema / properties / suggestions / items / properties / familyAdded value: +{ + "description": "Fragrance family", + "type": "string" +} - removed
Output schema / properties / suggestions / items / properties / fromPriceRemoved value: -{ - "description": "The same price formatted for display, e.g. \"€11.88\"", - "type": "string" -} - removed
Output schema / properties / suggestions / items / properties / fromPriceEurRemoved value: -{ - "description": "Price of the smallest size in EUR including VAT", - "type": "number" -} - removed
Output schema / properties / suggestions / items / properties / gender / anyOfRemoved value: -[ - { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / suggestions / items / properties / gender / enumAdded value: +[ + "men", + "women", + "unisex" +] - added
Output schema / properties / suggestions / items / properties / gender / typeAdded value: +"string" - added
Output schema / properties / suggestions / items / properties / guideUrlAdded value: +{ + "description": "A 10ML guide about this perfume", + "type": "string" +} - removed
Output schema / properties / suggestions / items / properties / handleRemoved value: -{ - "description": "Stable 10ML identifier, usable with get_perfume", - "type": "string" -} - added
Output schema / properties / suggestions / items / properties / houseUrlAdded value: +{ + "description": "The house page on 10ml.com", + "type": "string" +} - added
Output schema / properties / suggestions / items / properties / idAdded value: +{ + "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes", + "type": "string" +} - removed
Output schema / properties / suggestions / items / properties / imageUrlRemoved value: -{ - "type": [ - "string", - "null" - ] -} - added
Output schema / properties / suggestions / items / properties / keyNotesAdded value: +{ + "description": "The defining notes", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / suggestions / items / properties / newReleaseRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / suggestions / items / properties / notesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / suggestions / items / properties / onSaleRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / suggestions / items / properties / ratingRemoved value: -{ - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "count" - ], - "type": "object" - }, - { - "type": "null" - } - ] -} - removed
Output schema / properties / suggestions / items / properties / sizesMlRemoved value: -{ - "description": "Decant sizes in ml available at 10ML", - "items": { - "type": "number" - }, - "type": "array" -} - changed
Output schema / properties / suggestions / items / properties / url / descriptionPrevious value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com" - added
Output schema / properties / suggestions / items / properties / yearAdded value: +{ + "description": "Launch year", + "type": "number" +} - changed
Output schema / properties / suggestions / items / requiredPrevious 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" +]
- Changed
list_houses10 fields changed- added
Input schema / properties / styleAdded value: +{ + "description": "Only houses of this style", + "enum": [ + "Designer", + "Niche", + "Middle Eastern" + ], + "type": "string" +} - added
Output schema / properties / houses / items / properties / countryAdded value: +{ + "type": "string" +} - added
Output schema / properties / houses / items / properties / descriptionAdded value: +{ + "type": "string" +} - added
Output schema / properties / houses / items / properties / guidesAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "title", + "url" + ], + "type": "object" + }, + "type": "array" +} - removed
Output schema / properties / houses / items / properties / handleRemoved value: -{ - "type": "string" -} - added
Output schema / properties / houses / items / properties / idAdded value: +{ + "type": "string" +} - removed
Output schema / properties / houses / items / properties / perfumeCountRemoved value: -{ - "type": "number" -} - added
Output schema / properties / houses / items / properties / signaturePerfumesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / houses / items / properties / styleAdded value: +{ + "type": "string" +} - changed
Output schema / properties / houses / items / requiredPrevious value: -[ - "name", - "handle", - "perfumeCount", - "url" -]New value: +[ + "id", + "name", + "style", + "description", + "signaturePerfumes", + "guides" +]
- Changed
perfumes_by_note29 fields changed- changed
Input schema / properties / gender / descriptionPrevious value: -"Who the perfume is marketed for."New value: +"Who the perfume is marketed for. men/women also include unisex perfumes." - removed
Output schema / properties / matchedNotesRemoved value: -{ - "description": "Catalogue note names that were matched", - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / noteUrlRemoved value: -{ - "type": "string" -} - added
Output schema / properties / profileAdded 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" +} - added
Output schema / properties / results / items / properties / accordsAdded value: +{ + "description": "Main accords, strongest first", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / bestsellerRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / results / items / properties / characterAdded value: +{ + "description": "One-sentence editorial description by 10ML's fragrance editors", + "type": "string" +} - removed
Output schema / properties / results / items / properties / currencyRemoved value: -{ - "const": "EUR", - "type": "string" -} - added
Output schema / properties / results / items / properties / familyAdded value: +{ + "description": "Fragrance family", + "type": "string" +} - removed
Output schema / properties / results / items / properties / fromPriceRemoved value: -{ - "description": "The same price formatted for display, e.g. \"€11.88\"", - "type": "string" -} - removed
Output schema / properties / results / items / properties / fromPriceEurRemoved value: -{ - "description": "Price of the smallest size in EUR including VAT", - "type": "number" -} - removed
Output schema / properties / results / items / properties / gender / anyOfRemoved value: -[ - { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / gender / enumAdded value: +[ + "men", + "women", + "unisex" +] - added
Output schema / properties / results / items / properties / gender / typeAdded value: +"string" - added
Output schema / properties / results / items / properties / guideUrlAdded value: +{ + "description": "A 10ML guide about this perfume", + "type": "string" +} - removed
Output schema / properties / results / items / properties / handleRemoved value: -{ - "description": "Stable 10ML identifier, usable with get_perfume", - "type": "string" -} - added
Output schema / properties / results / items / properties / houseUrlAdded value: +{ + "description": "The house page on 10ml.com", + "type": "string" +} - added
Output schema / properties / results / items / properties / idAdded value: +{ + "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes", + "type": "string" +} - removed
Output schema / properties / results / items / properties / imageUrlRemoved value: -{ - "type": [ - "string", - "null" - ] -} - added
Output schema / properties / results / items / properties / keyNotesAdded value: +{ + "description": "The defining notes", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / newReleaseRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / notesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / results / items / properties / onSaleRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / ratingRemoved value: -{ - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "count" - ], - "type": "object" - }, - { - "type": "null" - } - ] -} - removed
Output schema / properties / results / items / properties / sizesMlRemoved value: -{ - "description": "Decant sizes in ml available at 10ML", - "items": { - "type": "number" - }, - "type": "array" -} - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com" - added
Output schema / properties / results / items / properties / yearAdded value: +{ + "description": "Launch year", + "type": "number" +} - changed
Output schema / properties / results / items / requiredPrevious 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" +] - changed
Output schema / requiredPrevious value: -[ - "note", - "matchedNotes", - "total", - "results" -]New value: +[ + "note", + "total", + "results" +]
- Changed
search_perfumes32 fields changed- added
Input schema / properties / familyAdded 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" +} - changed
Input schema / properties / gender / descriptionPrevious value: -"Who the perfume is marketed for."New value: +"Who the perfume is marketed for. men/women also include unisex perfumes." - removed
Input schema / properties / max_price_eurRemoved value: -{ - "description": "Maximum \"from\" price in EUR including VAT", - "exclusiveMinimum": 0, - "maximum": 1000, - "type": "number" -} - added
Input schema / properties / occasionAdded value: +{ + "enum": [ + "daytime", + "office", + "casual", + "evening", + "date night", + "special occasion" + ], + "type": "string" +} - changed
Input schema / properties / query / descriptionPrevious 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\"" - added
Input schema / properties / seasonAdded value: +{ + "enum": [ + "spring", + "summer", + "autumn", + "winter" + ], + "type": "string" +} - removed
Input schema / properties / sortRemoved value: -{ - "description": "popular (default, best match first), price (cheapest first) or rating (best rated first)", - "enum": [ - "popular", - "price", - "rating" - ], - "type": "string" -} - added
Output schema / properties / filters / additionalProperties / typeAdded value: +"string" - added
Output schema / properties / results / items / properties / accordsAdded value: +{ + "description": "Main accords, strongest first", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / bestsellerRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / results / items / properties / characterAdded value: +{ + "description": "One-sentence editorial description by 10ML's fragrance editors", + "type": "string" +} - removed
Output schema / properties / results / items / properties / currencyRemoved value: -{ - "const": "EUR", - "type": "string" -} - added
Output schema / properties / results / items / properties / familyAdded value: +{ + "description": "Fragrance family", + "type": "string" +} - removed
Output schema / properties / results / items / properties / fromPriceRemoved value: -{ - "description": "The same price formatted for display, e.g. \"€11.88\"", - "type": "string" -} - removed
Output schema / properties / results / items / properties / fromPriceEurRemoved value: -{ - "description": "Price of the smallest size in EUR including VAT", - "type": "number" -} - removed
Output schema / properties / results / items / properties / gender / anyOfRemoved value: -[ - { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / gender / enumAdded value: +[ + "men", + "women", + "unisex" +] - added
Output schema / properties / results / items / properties / gender / typeAdded value: +"string" - added
Output schema / properties / results / items / properties / guideUrlAdded value: +{ + "description": "A 10ML guide about this perfume", + "type": "string" +} - removed
Output schema / properties / results / items / properties / handleRemoved value: -{ - "description": "Stable 10ML identifier, usable with get_perfume", - "type": "string" -} - added
Output schema / properties / results / items / properties / houseUrlAdded value: +{ + "description": "The house page on 10ml.com", + "type": "string" +} - added
Output schema / properties / results / items / properties / idAdded value: +{ + "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes", + "type": "string" +} - removed
Output schema / properties / results / items / properties / imageUrlRemoved value: -{ - "type": [ - "string", - "null" - ] -} - added
Output schema / properties / results / items / properties / keyNotesAdded value: +{ + "description": "The defining notes", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / newReleaseRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / notesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / results / items / properties / onSaleRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / ratingRemoved value: -{ - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "count" - ], - "type": "object" - }, - { - "type": "null" - } - ] -} - removed
Output schema / properties / results / items / properties / sizesMlRemoved value: -{ - "description": "Decant sizes in ml available at 10ML", - "items": { - "type": "number" - }, - "type": "array" -} - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com" - added
Output schema / properties / results / items / properties / yearAdded value: +{ + "description": "Launch year", + "type": "number" +} - changed
Output schema / properties / results / items / requiredPrevious 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" +]
- Changed
trending_perfumes30 fields changed- added
Input schema / properties / familyAdded 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" +} - changed
Input schema / properties / gender / descriptionPrevious value: -"Who the perfume is marketed for."New value: +"Who the perfume is marketed for. men/women also include unisex perfumes." - added
Input schema / properties / seasonAdded value: +{ + "enum": [ + "spring", + "summer", + "autumn", + "winter" + ], + "type": "string" +} - added
Output schema / properties / filtersAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" +} - removed
Output schema / properties / genderRemoved value: -{ - "anyOf": [ - { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - { - "type": "null" - } - ] -} - added
Output schema / properties / results / items / properties / accordsAdded value: +{ + "description": "Main accords, strongest first", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / bestsellerRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / results / items / properties / characterAdded value: +{ + "description": "One-sentence editorial description by 10ML's fragrance editors", + "type": "string" +} - removed
Output schema / properties / results / items / properties / currencyRemoved value: -{ - "const": "EUR", - "type": "string" -} - added
Output schema / properties / results / items / properties / familyAdded value: +{ + "description": "Fragrance family", + "type": "string" +} - removed
Output schema / properties / results / items / properties / fromPriceRemoved value: -{ - "description": "The same price formatted for display, e.g. \"€11.88\"", - "type": "string" -} - removed
Output schema / properties / results / items / properties / fromPriceEurRemoved value: -{ - "description": "Price of the smallest size in EUR including VAT", - "type": "number" -} - removed
Output schema / properties / results / items / properties / gender / anyOfRemoved value: -[ - { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / results / items / properties / gender / enumAdded value: +[ + "men", + "women", + "unisex" +] - added
Output schema / properties / results / items / properties / gender / typeAdded value: +"string" - added
Output schema / properties / results / items / properties / guideUrlAdded value: +{ + "description": "A 10ML guide about this perfume", + "type": "string" +} - removed
Output schema / properties / results / items / properties / handleRemoved value: -{ - "description": "Stable 10ML identifier, usable with get_perfume", - "type": "string" -} - added
Output schema / properties / results / items / properties / houseUrlAdded value: +{ + "description": "The house page on 10ml.com", + "type": "string" +} - added
Output schema / properties / results / items / properties / idAdded value: +{ + "description": "Stable Fragrance Index identifier, usable with get_perfume and find_similar_perfumes", + "type": "string" +} - removed
Output schema / properties / results / items / properties / imageUrlRemoved value: -{ - "type": [ - "string", - "null" - ] -} - added
Output schema / properties / results / items / properties / keyNotesAdded value: +{ + "description": "The defining notes", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Output schema / properties / results / items / properties / newReleaseRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / notesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / results / items / properties / onSaleRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / results / items / properties / ratingRemoved value: -{ - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "count" - ], - "type": "object" - }, - { - "type": "null" - } - ] -} - removed
Output schema / properties / results / items / properties / sizesMlRemoved value: -{ - "description": "Decant sizes in ml available at 10ML", - "items": { - "type": "number" - }, - "type": "array" -} - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Product page on 10ml.com"New value: +"\"Try it at 10ML\": find this perfume on 10ml.com" - added
Output schema / properties / results / items / properties / yearAdded value: +{ + "description": "Launch year", + "type": "number" +} - changed
Output schema / properties / results / items / requiredPrevious 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" +] - changed
Output schema / requiredPrevious value: -[ - "gender", - "results" -]New value: +[ + "filters", + "results" +]
6 tool updates
- First observed
find_similar_perfumes - First observed
get_perfume - First observed
list_houses - First observed
perfumes_by_note - First observed
search_perfumes - First observed
trending_perfumes
Related MCP Connectors
Fragrance & perfume MCP: search fragrances, notes, accords, brands, perfumers, reviews & charts.
Open Beauty Facts MCP — Open Beauty Facts API (free, no auth, keyless).
Unlock the power of food transparency with our Open Food Facts MCP server. Easily look up any food
Perfumery materials, IFRA Category 4, EU allergens, and your formulas and shelf via OAuth.
Related MCP Servers
- AlicenseAqualityBmaintenanceRead-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.8453 npmMIT

mcp-server-parficaofficial
AlicenseAqualityCmaintenanceMCP 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.319 npmMIT
Noteboxd MCPofficial
AlicenseAqualityCmaintenanceMCP 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.1932 npm1MIT- AlicenseAqualityDmaintenanceMCP 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.81MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.