10ML Perfume Finder
Server Details
Free perfume MCP server and fragrance API: 6,000+ perfumes, note pyramids, accords, similar scents.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- 10ml-com/perfume-finder-mcp
- GitHub Stars
- 0
- Server Listing
- 10ML Perfume Finder
- ChatGPT
- –
- Claude
- 10ML Perfume Finder
TDQS
Scored across 15 tools
Most tools target distinct intents and the descriptions explicitly cross-reference when to use neighboring tools. There is still some overlap among discovery/recommendation tools (search_perfumes, recommend_perfumes, pick_for_occasion, find_gift), but the boundaries are mostly clear.
Almost all tools follow a verb_noun snake_case pattern (compare_perfumes, get_perfume, search_guides). The main deviation is perfumes_by_note, which is noun-first rather than verb-first, but overall the naming remains predictable.
Fifteen tools is well within a reasonable range for a broad perfume discovery and reference server. Each tool appears to serve a distinct user need, from lookup and comparison to recommendation and layering.
The surface covers the apparent domain thoroughly: search, profile lookup, comparison, similarity/dupes, notes, terminology, houses, gifts, occasions, recommendations, layering, and guides. No obvious core workflow is missing for a perfume finder.
Available Tools
15 toolscompare_perfumesCompare perfumesARead-onlyIdempotentInspect
Compare 2 to 4 perfumes or colognes 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 fragrances or asks how two differ ('Sauvage vs Bleu', 'Delina or Layton', 'Aventus or Layton for summer'). 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. | 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 pyramid, seasons, occasions, longevity). | 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?
The annotations already establish that this is a safe, read-only, idempotent, non-destructive operation. The description adds useful behavioral context beyond annotations by explaining that the output includes plain-language comparative differences and an overall closeness assessment, though it does not discuss response limits, performance, or formatting behavior beyond what the schema provides.
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?
The description is front-loaded with the core comparison behavior and then adds usage guidance and exclusions. Every sentence contributes either scope, output expectations, or routing guidance, with no redundant 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?
Given that annotations cover safety and an output schema exists, the description does not need to explain return structure in full. It still provides enough comparative output context and clear sibling routing for an agent to 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%, so each parameter is already well documented in the input schema. The description reinforces the 2-to-4 perfume constraint and gives domain examples, but it does not add substantial parameter semantics beyond the schema's own descriptions for perfumes, locale, and response_format.
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 gives a specific verb and resource ('Compare 2 to 4 perfumes or colognes side by side') and enumerates the compared dimensions, including notes, accords, family, audience, launch year, longevity, and projection. It clearly distinguishes this tool from sibling tools by naming both find_similar_perfumes and get_perfume.
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 provides explicit when-to-use guidance with concrete examples such as 'Sauvage vs Bleu', 'Delina or Layton', and 'Aventus or Layton for summer'. It also explicitly states when not to use it: not for finding similar perfumes and not for a single perfume's details, routing those cases to named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_noteExplain a fragrance noteARead-onlyIdempotentInspect
Explain a fragrance note or perfume ingredient: 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', 'is iso e super a note'. 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", "sandalwood", "Bergamotte" | |
| locale | No | Language of the 10ml.com links and labels. | en |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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 readOnly, idempotent, closed-world behavior, so safety needs no restating. The description adds real context beyond them: a coverage scope (~285 notes, multiple spellings/languages) and a conditional output trait (a link is returned only 'when one exists'). It stops short of noting anything about ambiguity or miss handling, which would have earned 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?
Purpose is front-loaded, and the sentence listing covered facets is dense but each clause earns its place. The only cost is length—one very long first sentence—but there is no filler or repetition.
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, yet the description still signals what the payload contains and that links are conditional. Combined with coverage scope, example queries, and explicit sibling routing, 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 coverage is 100%, so the baseline is 3. The description still adds meaning: the note parameter accepts foreign spellings and variants ('many spellings and languages'), which the schema only hints at through the 'Bergamotte' example. The locale and response_format semantics are left entirely to the schema.
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?
Opens with a specific verb and resource ("Explain a fragrance note or perfume ingredient") and immediately enumerates the facets covered. It explicitly names the siblings it is not (perfumes_by_note, explain_perfume_term), so an agent can route 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 queries ('what does ambroxan smell like', 'is iso e super a note') plus two explicit exclusions with the correct alternative tool for each. When-to-use, when-not-to-use, and alternatives are all present.
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 (eau de cologne, eau de toilette, eau de parfum, 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 | Results per page. | |
| cursor | No | next_cursor from the previous page. | |
| locale | No | Language of the 10ml.com links and labels. | 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/closed-world, so safety is covered; the description adds genuine context on content coverage (23 families with key notes and example perfumes) and on what an empty term returns. It does not discuss pagination behavior or that results carry 10ml.com links, which the locale parameter hints at but the prose never mentions.
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 scope, then usage, then the exclusion — a sensible ordering with no filler sentences. The long parenthetical enumerations are useful for matching but make the first sentence heavy.
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, safety is covered by annotations, and all parameters are documented in the schema, so the description only needs to convey domain scope and routing — which it does thoroughly, including the empty-term listing path and the note-tool boundary.
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 schema already documents all four parameters including the term examples and pagination cursor. The description's 'leave term empty to list everything covered' largely restates the schema's 'Omit to list all terms', and it says nothing about limit/cursor paging or the locale's effect on link language.
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?
A specific verb ('Explain perfume vocabulary') paired with an unusually explicit scope: concentrations, performance terms, note structure, market categories, and the 23 fragrance families. It also names the sibling it is not (explain_note), so an agent can separate this from the note-explanation tool 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 concrete triggering queries ('what is the difference between EDT and EDP', 'what is a chypre', 'what does sillage mean'), states the empty-term behavior, and explicitly excludes individual notes by naming the correct alternative. Both when-to-use and when-not-to-use are stated.
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 and fragrance 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 | Results per page. | |
| loves | No | Perfumes they already wear or love, e.g. ["Delina"] | |
| style | No | Up to 3 style words for the scent they like, e.g. ["fresh", "woody"]. | |
| cursor | No | next_cursor from the previous page. | |
| locale | No | Language of the 10ml.com links and labels. | 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","bergamot"] | |
| relationship | No | Example: "partner", "dad", "colleague", "friend" | |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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, non-destructive, idempotent and closed-world, so the safety profile is covered. The description adds one genuinely useful behavior — every pick arrives with a rationale for why it suits the recipient — but says nothing about pagination limits, empty-result handling, or how gift ranking differs from plain search ranking. With an output schema present, a 3 is fair.
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 scope, then examples, then exclusions — a logical order with no filler sentences. The opening enumeration of every input dimension is somewhat redundant against a 100%-covered schema, which is the only waste.
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, 6-enum tool with annotations and an output schema, the description covers purpose, routing and output flavor sufficiently. It omits paging/limit behavior and the meaning of the locale-to-10ml.com link coupling outside the schema, but nothing critical to correct invocation 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 all 12 parameters including enums, defaults and the cursor are already documented. The description restates the same input dimensions in natural language ('perfumes or notes they already love', 'how adventurous to be') without adding syntax, precedence, or combination behavior beyond the schema. 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 and resource — returns perfume gift ideas keyed on the recipient — and enumerates the dimensions it reasons over (recipient, relationship, age, loved scents, style, occasion, boldness). It explicitly distinguishes itself from two siblings by name, so an agent can route without opening another 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 that select this tool ('gift for a woman who loves Delina', 'something safe for my dad') and explicit when-not rules pointing to recommend_perfumes for personal taste and search_perfumes with iconic true for classics. Both the include and exclude conditions are spelled out.
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 or cologne, 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 fragrances in the index the closest options from different houses are computed from notes and accords. Use for 'dupe of X', 'alternative to X', 'what smells like X 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 | Results per page. | |
| cursor | No | next_cursor from the previous page. | |
| locale | No | Language of the 10ml.com links and labels. | 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 establish read-only, idempotent, closed-world behavior, and the description still adds substantive context: a hand-curated set of ~100 iconic originals with editor-written rationales, versus a computed fallback (notes/accords, different houses) for the rest. What it doesn't disclose is how large the non-curated result set is or how the closeness tiers are derived in the computed mode.
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 what the tool returns, then coverage, then fallback behavior, then exclusions. The enumeration of famous originals (Creed Aventus, Baccarat Rouge 540, Delina...) is slightly long but serves to signal the curated set's scope.
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-value explanation isn't required, and the description covers the two retrieval modes, closeness semantics, and cross-house constraint. Minor gap: no hint about result volume or pagination behavior for the computed mode.
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 every parameter including the closeness enum and house disambiguation is already documented. The description only restates the three closeness labels and otherwise adds nothing about limit/cursor pagination or locale scope, so baseline 3 is appropriate.
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+resource: 'editors' alternatives (dupes) to a famous perfume... from other houses', with the closeness taxonomy and the 10ML comparison guide named. It explicitly distinguishes itself from find_similar_perfumes and search_perfumes, so an agent can route without opening sibling 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 concrete trigger phrasings ('dupe of X', 'alternative to X', 'what smells like X from another house') and two explicit exclusions that name the correct alternative tool for each case. When-to-use, when-not-to-use, and alternatives are all covered.
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 and colognes 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 fragrance. Steer the result: fresher, sweeter, darker, lighter, longer_lasting or more_projection. Use for 'something like Baccarat Rouge 540', 'smells like Sauvage but fresher' or 'a scent with 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 | Results per page. | |
| 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. | |
| gender | No | Only return perfumes for this audience (men and women include unisex) | |
| locale | No | Language of the 10ml.com links and labels. | 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 pyramid, seasons, occasions, longevity). | 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 declare readOnly, idempotent, non-destructive, closed-world, so the safety bar is low. The description nonetheless adds real behavioral context: results are ranked by shared notes/accords/style, each carries an explicit explanation and a closeness tier (very close, similar vibe, same spirit), and steering is supported. It omits pagination behavior, but cursor is documented in the schema.
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 verb and result semantics, then entry modes, then steering, then exclusions with siblings — a sensible precedence. Dense with parentheticals and closeness tiers, but essentially every clause carries decision-relevant 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?
For an 11-parameter tool this is complete: entry modes, steering directions, audience/house filtering intent, and routing to alternatives are all covered, and an output schema exists so return-value detail need not be restated. An agent has everything needed to select and invoke 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 a 3 is the baseline, but the description adds meaning beyond the schema: the dual entry path (an indexed perfume by name/house/id OR free notes and accords for any other fragrance) and the directional intent of steer. That resolves how the otherwise-optional parameters combine, which the schema alone does 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?
States a specific verb (find perfumes/colognes that smell like one the person already likes) plus the ranking basis and output semantics, and explicitly names the two siblings it is not (find_perfume_alternatives, 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 concrete when-to-use examples ('something like Baccarat Rouge 540', 'smells like Sauvage but fresher') and explicit when-not to use it with the correct alternative tool for each case. 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.
get_houseGet perfume houseARead-onlyIdempotentInspect
Profile of a perfume house or fragrance brand: 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. | en |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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 declare readOnlyHint, idempotentHint, non-destructive behavior, and closed-world scope. The description adds useful behavioral context beyond annotations, especially that the tool understands nicknames such as YSL, MFK, PDM, and Paco Rabanne, and describes the profile fields it returns. It does not need to repeat safety traits already covered by 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?
The description is front-loaded with the core purpose and is organized efficiently: what the tool returns, example queries, nickname support, and explicit exclusions. Every sentence adds routing or semantic value without unnecessary repetition.
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?
The tool has an output schema, full parameter schema coverage, and clear annotations. The description supplies the remaining context an agent needs: profile contents, nickname handling, use cases, and sibling-tool boundaries. Nothing important for correct invocation appears to be 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 schema already documents house, locale, and response_format. The description nevertheless adds semantic value for the house parameter by clarifying that nicknames are accepted, which goes beyond the schema's example list. Locale and response_format are fully enum-documented in the schema and require no additional description.
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 gives a specific verb and resource: it returns a profile for a perfume house or fragrance brand, and it lists the profile contents such as country, founded year, style, known-for details, signature perfumes, and an external link. It clearly distinguishes itself from siblings by naming list_houses for browsing all houses and get_perfume for one perfume.
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 provides explicit use cases ('tell me about Creed', 'what is Amouage known for') and explicitly states when not to use it, naming the alternative tools list_houses and get_perfume. This gives the agent clear routing guidance.
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, cologne or fragrance: house, launch year, audience, concentration, 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. | 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 pyramid, seasons, occasions, longevity). | 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 readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile needs no restatement. The description still adds real behavioral context: unknown names return the closest matches rather than failing, which is exactly the kind of edge-case an agent needs. It stops short of return size or pagination details, keeping 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?
Purpose and scope lead the paragraph, followed by usage conditions and exclusions, so it is front-loaded and skimmable. The long enumeration of returned fields partly duplicates the output schema and is the one place the text could be trimmed.
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 a full output schema, complete parameter documentation and annotations covering safety, the remaining burden is routing and edge cases — both handled via named sibling alternatives and the unknown-name fallback. Nothing an agent needs to call this 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%, and every parameter (house, locale, perfume, response_format) is documented in the schema with examples and defaults. The description adds nothing about parameters beyond what the schema already says, so the baseline of 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 and resource ('full Fragrance Index profile of one perfume') and enumerates the returned facts (house, launch year, note pyramid, longevity, perfumers), which makes the scope unmistakable. It also explicitly separates itself from search_perfumes and compare_perfumes, so an agent can pick 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?
Provides concrete invocation phrasings ('tell me about Aventus', 'what notes are in Delina') plus explicit exclusions: 'Not for browsing (use search_perfumes), not for comparing two or more (use compare_perfumes)'. Both alternatives are named with the condition that selects them.
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 and fragrance brands 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 | Results per page. | |
| query | No | Part of a house name, e.g. "tom" or "maison" | |
| cursor | No | next_cursor from the previous page. | |
| locale | No | Language of the 10ml.com links and labels. | 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, non-destructive, and closed-world behavior, so the safety profile is clear. The description adds useful context about what the listing contains—country, type, perfume counts, and house specialties—though it does not discuss pagination behavior or result ordering.
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?
The description is front-loaded with the core purpose and coverage, followed by filtering behavior and then explicit sibling routing. Every sentence earns its place, and there is no redundant or misplaced 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 rich annotations, a fully described schema, and an output schema, the description provides enough context for correct invocation. It covers purpose, scope, filtering, and alternatives without needing to explain return values or pagination mechanics.
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 six parameters are already documented with examples and enum values. The description restates the main filters (type, country, name fragment) but does not add semantics beyond the schema for limit, cursor, or locale, making the baseline of 3 appropriate.
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 verb and resource: browsing perfume houses and fragrance brands, with the exact coverage and filterable dimensions. It explicitly distinguishes this from get_house and search_perfumes, so an agent can select it without opening sibling 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?
It gives explicit when-to-use guidance: exploring brands, finding niche or Middle Eastern houses, or checking coverage. It also names when not to use it and which alternatives to choose for a single house profile or perfume search.
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 and colognes in the 10ML Fragrance Index built around a note or ingredient (vanilla, oud, bergamot, tonka bean, jasmine, patchouli, 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 | Results per page. | |
| cursor | No | next_cursor from the previous 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. | en |
| season | No | Season the perfume suits (fall is accepted in text queries as autumn). | |
| occasion | No | Occasion the perfume suits. | |
| position | No | Where the note sits in the pyramid: top, heart, base or any | any |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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, destructiveHint=false and openWorldHint=false, so safety is fully covered. The description adds genuinely useful behavior beyond that: results are relevance-ordered by note prominence, and fuzzy/multilingual matching is applied to the note term ('agarwood finds oud', 'Vanille finds vanilla'). It says nothing about pagination behavior, page-size default or the concise-vs-detailed payload tradeoff, which the agent would need to plan multi-page retrieval.
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 tight sentences: what it returns and how it's ordered, what can be narrowed, then how it disambiguates from siblings. Scope and ordering are front-loaded, and no sentence is 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?
Nine parameters but only one required, all fully documented in the schema, an output schema present, and annotations covering the safety profile — so the description's remaining job is routing and matching behavior, both of which it covers. Nothing an agent needs in order to call this 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 the baseline is 3. The description does add real meaning for the required note parameter by explaining that spelling variants and other languages are matched semantically, which the schema's bare examples do not convey. For position, gender, season and occasion it only restates the enum concepts already documented in the schema, so it does not clear the baseline by much.
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), the exact resource (perfumes and colognes in the 10ML Fragrance Index), the retrieval key (built around a note or ingredient), the result ordering (most prominent first) and the optional narrowing dimensions. It explicitly contrasts itself with two siblings, so an agent can route between perfumes_by_note, explain_note 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 positive triggers in user-query form ('perfumes with oud', 'a vanilla scent for winter', 'bergamot-forward colognes for men') and explicit exclusions with the correct alternative named for each ('use explain_note', 'use search_perfumes with notes_include'). When-to-use, when-not-to-use, and alternatives are all present.
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 and cologne 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 fragrance 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 | Results per page. | |
| style | No | Styles wanted, e.g. ["fresh","clean"] for summer office wear | |
| cursor | No | next_cursor from the previous 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. | en |
| season | No | Season the perfume suits (fall is accepted in text queries as autumn). | |
| occasion | No | Occasion the perfume suits. | |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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 readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds value beyond them by disclosing that results are justified ('each with the reason it fits') and by stating the minimum filter requirement, though it says nothing about paging volume or how thin results are when only one filter is supplied.
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 purpose, then example phrasings, then the input constraint, then exclusions – a logical order with no filler. The middle example sentence is somewhat long with four quoted queries, but each example disambiguates a different filter combination.
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?
Eight all-optional parameters, five enum sets, an output schema and full annotations mean much is already structured, and the description correctly focuses on selection criteria. It leaves pagination (limit/cursor) and response_format unmentioned, relying on the schema for those, which is acceptable but leaves a small gap for a browsing-style 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 coverage is 100% and the enums and descriptions are already rich, so baseline is 3. The description still adds meaning the schema cannot: that at least one of season/occasion/gender/style must be provided even though all parameters are technically optional.
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 ('perfume and cologne picks') plus the exact dimensions it keys on (season, occasion, audience, style) and that each pick carries a rationale. It is clearly separable from recommend_perfumes, find_gift and search_perfumes, which are named explicitly.
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 three concrete query phrasings, an explicit input constraint ('give at least one of season, occasion, gender or style'), and explicit when-not routing to three named sibling tools with the condition that selects each.
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 and cologne recommendations from taste: fragrances 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', 'my signature scent is Sauvage, what next'). 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 | Results per page. | |
| style | No | Styles wanted, e.g. ["fresh","clean"] | |
| cursor | No | next_cursor from the previous 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. | 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. | |
| liked_notes | No | Notes they enjoy, e.g. ["vanilla","bergamot"] | |
| avoided_notes | No | Notes to exclude entirely, e.g. ["patchouli","oud"] | |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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 this as read-only, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds useful recommendation behavior: it explains that picks are taste-driven and that each result includes a reason such as shared notes or season fit, which helps an agent understand output character beyond the 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?
The description is front-loaded with purpose, then output rationale, then usage guidance and exclusions. Despite its density, every sentence contributes to selection or invocation and there is 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?
Given 13 optional parameters, full schema coverage, annotations, and an output schema, the description supplies everything an agent needs: purpose, taste-based logic, example queries, exclusions, and sibling alternatives. No meaningful gap remains.
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 are already documented in the schema. The description groups the key inputs into taste signals, gender, season, occasion, style, and family, but does not add syntax or interpretation details beyond what the schema 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?
The description states a specific verb and resource: personal perfume and cologne recommendations from taste. It also explicitly distinguishes itself from search_perfumes, pick_for_occasion, and find_gift, so an agent can route correctly without opening the 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 when-to-use language and concrete examples ('I love Delina and vanilla...'), plus explicit when-not-to-use alternatives for one-off filters, single occasion lists, and gifts. Nothing about tool 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_guidesSearch 10ML guidesARead-onlyIdempotentInspect
Find 10ML's perfume and fragrance guides 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 | Results per page. | |
| 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. | |
| locale | No | Language of the 10ml.com links and labels. | 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?
While annotations cover safety (readOnlyHint: true), the description adds crucial behavioral context by stating exactly what is returned ('title, type and a link per locale'). This makes the agent fully aware of the expected data structure and intent beyond just knowing the operation is read-only.
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?
Despite its length, the description is highly efficient, with every sentence serving a distinct, valuable purpose: defining scope, providing usage examples, defining boundaries, and detailing output.
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?
Given the tool's complexity, including multiple guide types and locale support, the description is extremely complete. It provides all the necessary context—including sibling tool relationships—to ensure the AI agent chooses this tool accurately.
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?
Although the schema coverage is 100%, the description adds vital semantic meaning to the 'type' and 'query' parameters. Specifically, it clarifies that 'alternatives guides' compares famous perfumes with similar ones, a nuance not explicitly detailed in the enumeration schema.
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 clearly states the purpose is to find 'perfume and fragrance guides to read or cite.' It comprehensively categorizes the content, mentioning how-tos, notes explained, house guides, and alternatives, thereby sharply defining its function.
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?
The usage guidelines are exceptional because they provide direct comparisons and explicit exclusions. It tells the user to use this tool for deep reading/citation and explicitly excludes it for factual lookups (direct use of get_perfume) or note definitions (direct use of explain_note).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_perfumesSearch perfumes and fragrancesARead-onlyIdempotentInspect
Search the 10ML Fragrance Index for perfumes, colognes and fragrances (eau de parfum, eau de toilette, extrait) by name, house, notes, accords, family, audience, season, occasion or style. Natural language works: 'fresh citrus summer cologne for men' or 'warm vanilla scent for winter' 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 the scent they want, or names a perfume or house and you need matching fragrances. 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 | Results per page. | |
| query | No | Free text: a perfume name, house, notes or mood. Examples: "fresh citrus summer for men", "Tom Ford oud", "vanilla gourmand for winter" | |
| style | No | A style word the scent should have. | |
| cursor | No | next_cursor from the previous page. | |
| family | No | Fragrance family. Examples: "chypre", "fougere", "gourmand", "amber", "citrus". Leave term empty in explain_perfume_term to list every family. | |
| 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. | 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. | |
| notes_exclude | No | None of these notes may be present. Example: ["patchouli"] | |
| notes_include | No | Every listed note must be present. Examples: ["oud","sandalwood"], ["vanilla"] | |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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 read-only, idempotent, closed-world behavior, so safety needs no restating. The description adds genuinely non-structured context: natural-language queries are parsed semantically, and results come back ranked with house, year, family, accords, notes, an editorial line and links. Pagination semantics beyond the cursor field are not mentioned, which keeps it just below 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?
Front-loaded with purpose, then natural-language behavior, then the iconic flag, then routing exclusions, then return shape — a sensible descending order of importance. The middle sentences are dense and long, but no sentence is 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?
For a 15-parameter, zero-required search tool with full schema coverage, rich annotations and an output schema, the description covers everything the schema cannot: when to reach for it, when to route elsewhere, that natural language is accepted, and what the ranking output looks like. Nothing needed 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, but the description adds meaning the schema does not: free-text queries accept conversational phrasing with worked examples, and iconic is scoped as editors'-curated classics that combine with any other filter. It does not clarify interaction between overlapping filters (e.g. style vs accords), so it is not a full 5.
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 (search a named fragrance index) plus the full range of matchable attributes (name, house, notes, accords, family, audience, season, occasion, style). It explicitly carves itself out from get_perfume, find_similar_perfumes and find_perfume_alternatives, so an agent can distinguish it from every nearby sibling.
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 positive triggers ("when someone describes the scent they want, or names a perfume or house") and three explicit exclusions each paired with the correct alternative tool. The iconic flag gets its own usage rule, including that it composes with other filters and works without a query.
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 and fragrance 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 | Results per page. | |
| notes | No | One or two notes. Examples: ["vanilla","citrus"], ["oud"] | |
| locale | No | Language of the 10ml.com links and labels. | en |
| perfumes | No | One or two perfumes. Examples: ["Parfums de Marly Delina"], ["Dior Sauvage","Creed Aventus"] | |
| response_format | No | concise (default) or detailed (adds pyramid, seasons, occasions, longevity). | 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 cover safety (readOnly, idempotent, non-destructive, closed-world), but the description adds genuinely new behavioral context: results are labeled 'editors' for editorial pairings versus 'suggested' for untested ones that should be tried on skin. That provenance/signal distinction affects how the agent should present results. It does not describe pagination behavior, though the limit param and output schema cover 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?
Densely front-loaded: purpose, accepted input forms, result labeling, and the sibling hand-off all appear in one paragraph with no filler. The single run-on sentence packs several ideas together, which slightly reduces skimmability but every clause carries 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 annotations covering safety, an output schema covering return shape, and full schema coverage on all five parameters, the description supplies the remaining missing layer: input-mode routing, example queries, result-reliability labeling, and the alternative tool. Nothing an agent needs in order to call this 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 100% so baseline is 3, but the description adds meaning beyond the schema by mapping natural-language asks to the notes vs perfumes parameter modes and clarifying that a single value yields partners from the index while two values yield a compatibility judgement. It does not touch limit, locale, or response_format, which is acceptable since the schema documents them.
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 (suggest perfume layering ideas) and enumerates the four input shapes it accepts — two notes, one note, one perfume, two perfumes — so the agent knows exactly what the tool consumes. It also names the sibling it is not (recommend_perfumes), making it distinguishable without opening 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 phrasings ('how do I layer vanilla', 'can I layer Delina with something', 'does Sauvage layer with Aventus') plus an explicit exclusion routing to recommend_perfumes for single-perfume choice. When-to-use and when-not-to-use are both 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.
15 tool updates
- Changed
compare_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
explain_note1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
explain_perfume_term1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
find_gift1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
find_perfume_alternatives1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
find_similar_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
get_house1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
get_perfume1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
list_houses1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
perfumes_by_note1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
pick_for_occasion1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
recommend_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
search_guides1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
search_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
- Changed
suggest_layering1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl", - "nl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl", + "pt", + "sv", + "da", + "fi", + "bg", + "hr" +]
15 tool updates
- Changed
compare_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
explain_note1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
explain_perfume_term1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
find_gift1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
find_perfume_alternatives1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
find_similar_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
get_house1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
get_perfume1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
list_houses1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
perfumes_by_note1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
pick_for_occasion1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
recommend_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
search_guides1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
search_perfumes1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
- Changed
suggest_layering1 field changed- changed
Input schema / properties / locale / enumPrevious value: -[ - "en", - "de", - "fr", - "es", - "it", - "ro", - "el", - "hu", - "cs", - "pl" -]New value: +[ + "en", + "de", + "fr", + "es", + "it", + "ro", + "el", + "hu", + "cs", + "pl", + "nl" +]
15 tool updates
- Changed
compare_perfumes8 fields changed- changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - removed
Output schema / properties / perfumes / items / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } -} - removed
Output schema / properties / perfumes / items / requiredRemoved value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" -] - removed
Output schema / properties / unique_notes / additionalPropertiesRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - removed
Output schema / properties / unique_notes / propertyNamesRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / unresolved / items / propertiesRemoved value: -{ - "query": { - "type": "string" - }, - "suggestions": { - "items": { - "type": "string" - }, - "type": "array" - } -} - removed
Output schema / properties / unresolved / items / requiredRemoved value: -[ - "query", - "suggestions" -]
- Changed
explain_note9 fields changed- changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / note / descriptionPrevious value: -"The note. Examples: \"ambroxan\", \"oud\", \"iris\", \"orris\", \"Bergamotte\""New value: +"The note. Examples: \"ambroxan\", \"oud\", \"sandalwood\", \"Bergamotte\"" - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - removed
Output schema / properties / famous_perfumes / items / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } -} - removed
Output schema / properties / famous_perfumes / items / requiredRemoved value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" -] - removed
Output schema / properties / links / items / propertiesRemoved value: -{ - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } -} - removed
Output schema / properties / links / items / requiredRemoved value: -[ - "type", - "title", - "url" -] - removed
Output schema / properties / note / propertiesRemoved value: -{ - "also_called": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": { - "type": "string" - }, - "family": { - "type": "string" - }, - "id": { - "type": "string" - }, - "mood": { - "type": "string" - }, - "name": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "pairs_with": { - "items": { - "type": "string" - }, - "type": "array" - }, - "similar_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "smells_like": { - "type": "string" - } -} - removed
Output schema / properties / note / requiredRemoved value: -[ - "id", - "name", - "family", - "origin", - "smells_like", - "mood", - "also_called", - "pairs_with", - "similar_notes" -]
- Changed
explain_perfume_term5 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-60, default 12)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - removed
Output schema / properties / matches / items / propertiesRemoved value: -{ - "definition": { - "type": "string" - }, - "example_perfumes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "enum": [ - "term", - "family" - ], - "type": "string" - }, - "name": { - "type": "string" - }, - "related": { - "items": { - "type": "string" - }, - "type": "array" - }, - "subfamilies": { - "items": { - "type": "string" - }, - "type": "array" - } -} - removed
Output schema / properties / matches / items / requiredRemoved value: -[ - "kind", - "name", - "definition", - "related" -]
- Changed
find_gift9 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / liked_notes / descriptionPrevious value: -"Notes they like, e.g. [\"vanilla\",\"rose\"]"New value: +"Notes they like, e.g. [\"vanilla\",\"bergamot\"]" - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-12, default 5)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - added
Input schema / properties / style / descriptionAdded value: +"Up to 3 style words for the scent they like, e.g. [\"fresh\", \"woody\"]." - changed
Input schema / properties / style / items / descriptionPrevious value: -"A style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody."New value: +"A style word the scent should have." - removed
Output schema / properties / picks / items / propertiesRemoved value: -{ - "perfume": { - "properties": { - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } - }, - "required": [ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" - ], - "type": "object" - }, - "why": { - "type": "string" - } -} - removed
Output schema / properties / picks / items / requiredRemoved value: -[ - "perfume", - "why" -]
- Changed
find_perfume_alternatives11 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-10, default 6)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - removed
Output schema / properties / alternatives / items / propertiesRemoved value: -{ - "closeness": { - "enum": [ - "very close", - "similar vibe", - "same spirit" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "source": { - "enum": [ - "editors", - "similarity" - ], - "type": "string" - }, - "why": { - "type": "string" - } -} - removed
Output schema / properties / alternatives / items / requiredRemoved value: -[ - "name", - "closeness", - "why", - "source" -] - removed
Output schema / properties / guide / propertiesRemoved value: -{ - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } -} - removed
Output schema / properties / guide / requiredRemoved value: -[ - "type", - "title", - "url" -] - removed
Output schema / properties / links / items / propertiesRemoved value: -{ - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } -} - removed
Output schema / properties / links / items / requiredRemoved value: -[ - "type", - "title", - "url" -] - removed
Output schema / properties / original / propertiesRemoved value: -{ - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } -} - removed
Output schema / properties / original / requiredRemoved value: -[ - "name" -]
- Changed
find_similar_perfumes8 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-15, default 8)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - removed
Output schema / properties / results / items / propertiesRemoved value: -{ - "closeness": { - "enum": [ - "very close", - "similar vibe", - "same spirit" - ], - "type": "string" - }, - "perfume": { - "properties": { - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } - }, - "required": [ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" - ], - "type": "object" - }, - "shared_accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "shared_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "why": { - "type": "string" - } -} - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "perfume", - "closeness", - "shared_notes", - "shared_accords", - "why" -] - removed
Output schema / properties / target / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "house": { - "type": [ - "string", - "null" - ] - }, - "id": { - "type": "string" - }, - "in_index": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - } -} - removed
Output schema / properties / target / requiredRemoved value: -[ - "name", - "house", - "in_index", - "notes", - "accords" -]
- Changed
get_house8 fields changed- changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - removed
Output schema / properties / house / propertiesRemoved value: -{ - "aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "country": { - "type": "string" - }, - "founded": { - "type": "number" - }, - "id": { - "type": "string" - }, - "known_for": { - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "perfumes_in_index": { - "type": "number" - }, - "style": { - "type": "string" - }, - "type": { - "type": "string" - } -} - removed
Output schema / properties / house / requiredRemoved value: -[ - "id", - "name", - "type", - "perfumes_in_index", - "known_for", - "style", - "aliases" -] - removed
Output schema / properties / links / items / propertiesRemoved value: -{ - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } -} - removed
Output schema / properties / links / items / requiredRemoved value: -[ - "type", - "title", - "url" -] - removed
Output schema / properties / signature_perfumes / items / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } -} - removed
Output schema / properties / signature_perfumes / items / requiredRemoved value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" -]
- Changed
get_perfume16 fields changed- changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - removed
Output schema / $defsRemoved 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 / alternatives / items / propertiesRemoved value: -{ - "closeness": { - "enum": [ - "very close", - "similar vibe", - "same spirit" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "why": { - "type": "string" - } -} - removed
Output schema / properties / alternatives / items / requiredRemoved value: -[ - "name", - "closeness", - "why" -] - removed
Output schema / properties / guides / $refRemoved value: -"#/$defs/d1" - added
Output schema / properties / guides / itemsAdded value: +{ + "type": "object" +} - added
Output schema / properties / guides / typeAdded value: +"array" - removed
Output schema / properties / house_info / propertiesRemoved value: -{ - "country": { - "type": "string" - }, - "name": { - "type": "string" - }, - "style": { - "type": "string" - }, - "type": { - "type": "string" - } -} - removed
Output schema / properties / house_info / requiredRemoved value: -[ - "name", - "type", - "style" -] - removed
Output schema / properties / perfume / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/d1" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } -} - removed
Output schema / properties / perfume / requiredRemoved value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" -] - removed
Output schema / properties / similar / items / propertiesRemoved value: -{ - "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" - } -} - removed
Output schema / properties / similar / items / requiredRemoved value: -[ - "id", - "name", - "house", - "closeness", - "shared_notes", - "url" -] - removed
Output schema / properties / suggestions / items / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/d1" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } -} - removed
Output schema / properties / suggestions / items / requiredRemoved value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" -]
- Changed
list_houses5 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-50, default 20)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - removed
Output schema / properties / houses / items / propertiesRemoved value: -{ - "country": { - "type": "string" - }, - "founded": { - "type": "number" - }, - "id": { - "type": "string" - }, - "known_for": { - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "perfumes_in_index": { - "type": "number" - }, - "type": { - "type": "string" - } -} - removed
Output schema / properties / houses / items / requiredRemoved value: -[ - "id", - "name", - "type", - "perfumes_in_index", - "known_for" -]
- Changed
perfumes_by_note9 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-20, default 8)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / occasion / descriptionPrevious value: -"Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion."New value: +"Occasion the perfume suits." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - removed
Output schema / properties / note / propertiesRemoved value: -{ - "family": { - "type": "string" - }, - "id": { - "type": "string" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "smells_like": { - "type": "string" - } -} - removed
Output schema / properties / note / requiredRemoved value: -[ - "name", - "links" -] - removed
Output schema / properties / results / items / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } -} - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" -]
- Changed
pick_for_occasion12 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-15, default 6)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / occasion / descriptionPrevious value: -"Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion."New value: +"Occasion the perfume suits." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - changed
Input schema / properties / style / items / descriptionPrevious value: -"A style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody."New value: +"A style word the scent should have." - removed
Output schema / properties / filters / additionalPropertiesRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / filters / propertyNamesRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / guides / items / propertiesRemoved value: -{ - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } -} - removed
Output schema / properties / guides / items / requiredRemoved value: -[ - "type", - "title", - "url" -] - removed
Output schema / properties / picks / items / propertiesRemoved value: -{ - "perfume": { - "properties": { - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } - }, - "required": [ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" - ], - "type": "object" - }, - "why": { - "type": "string" - } -} - removed
Output schema / properties / picks / items / requiredRemoved value: -[ - "perfume", - "why" -]
- Changed
recommend_perfumes11 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / liked_notes / descriptionPrevious value: -"Notes they enjoy, e.g. [\"vanilla\",\"rose\"]"New value: +"Notes they enjoy, e.g. [\"vanilla\",\"bergamot\"]" - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-15, default 6)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / occasion / descriptionPrevious value: -"Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion."New value: +"Occasion the perfume suits." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - changed
Input schema / properties / style / items / descriptionPrevious value: -"A style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody."New value: +"A style word the scent should have." - removed
Output schema / properties / picks / items / propertiesRemoved value: -{ - "perfume": { - "properties": { - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } - }, - "required": [ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" - ], - "type": "object" - }, - "why": { - "type": "string" - } -} - removed
Output schema / properties / picks / items / requiredRemoved value: -[ - "perfume", - "why" -] - removed
Output schema / properties / taste / propertiesRemoved value: -{ - "avoided_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "liked_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "liked_perfumes": { - "items": { - "type": "string" - }, - "type": "array" - } -} - removed
Output schema / properties / taste / requiredRemoved value: -[ - "liked_perfumes", - "liked_notes", - "avoided_notes" -]
- Changed
search_guides5 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-20, default 8)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - removed
Output schema / properties / guides / items / propertiesRemoved value: -{ - "title": { - "type": "string" - }, - "topics": { - "items": { - "type": "string" - }, - "type": "array" - }, - "translated": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "url": { - "type": "string" - } -} - removed
Output schema / properties / guides / items / requiredRemoved value: -[ - "title", - "type", - "topics", - "url", - "translated" -]
- Changed
search_perfumes13 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page." - changed
Input schema / properties / family / descriptionPrevious 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\"."New value: +"Fragrance family. Examples: \"chypre\", \"fougere\", \"gourmand\", \"amber\", \"citrus\". Leave term empty in explain_perfume_term to list every family." - changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-20, default 8)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / notes_include / descriptionPrevious value: -"Every listed note must be present. Examples: [\"oud\",\"rose\"], [\"vanilla\"]"New value: +"Every listed note must be present. Examples: [\"oud\",\"sandalwood\"], [\"vanilla\"]" - changed
Input schema / properties / occasion / descriptionPrevious value: -"Occasion the perfume suits: daytime, office, casual, evening, date night or special occasion."New value: +"Occasion the perfume suits." - changed
Input schema / properties / query / descriptionPrevious value: -"Free text: a perfume name, house, notes or mood. Examples: \"fresh citrus summer for men\", \"Tom Ford tobacco\", \"vanilla gourmand for winter\""New value: +"Free text: a perfume name, house, notes or mood. Examples: \"fresh citrus summer for men\", \"Tom Ford oud\", \"vanilla gourmand for winter\"" - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - changed
Input schema / properties / style / descriptionPrevious value: -"A style word: aquatic, boozy, clean, creamy, dark, floral, fresh, citrusy, fruity, gourmand, green, leathery, musky, powdery, sensual, smoky, spicy, sweet, woody."New value: +"A style word the scent should have." - removed
Output schema / properties / filters / additionalPropertiesRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / filters / propertyNamesRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / results / items / propertiesRemoved value: -{ - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } -} - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" -]
- Changed
suggest_layering7 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"How many results per page (1-10, default 5)."New value: +"Results per page." - changed
Input schema / properties / locale / descriptionPrevious value: -"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."New value: +"Language of the 10ml.com links and labels." - changed
Input schema / properties / response_format / descriptionPrevious value: -"concise (default) or detailed (adds note pyramid, seasons, occasions, longevity, projection)."New value: +"concise (default) or detailed (adds pyramid, seasons, occasions, longevity)." - removed
Output schema / properties / pairs / items / propertiesRemoved value: -{ - "best_for": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notes": { - "additionalItems": false, - "items": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2, - "type": "array" - }, - "result": { - "type": "string" - }, - "source": { - "enum": [ - "editors", - "suggested" - ], - "type": "string" - }, - "tip": { - "type": "string" - } -} - removed
Output schema / properties / pairs / items / requiredRemoved value: -[ - "notes", - "result", - "tip", - "best_for", - "source" -] - removed
Output schema / properties / partners / items / propertiesRemoved value: -{ - "perfume": { - "properties": { - "accords": { - "items": { - "type": "string" - }, - "type": "array" - }, - "character": { - "type": "string" - }, - "concentration": { - "type": "string" - }, - "family": { - "type": "string" - }, - "gender": { - "enum": [ - "men", - "women", - "unisex" - ], - "type": "string" - }, - "house": { - "type": "string" - }, - "id": { - "type": "string" - }, - "key_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "links": { - "items": { - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "try", - "guide", - "note" - ], - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "title", - "url" - ], - "type": "object" - }, - "type": "array" - }, - "longevity": { - "type": "number" - }, - "name": { - "type": "string" - }, - "occasions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "other_versions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "perfumers": { - "items": { - "type": "string" - }, - "type": "array" - }, - "profile": { - "enum": [ - "full", - "core" - ], - "type": "string" - }, - "projection": { - "type": "number" - }, - "pyramid": { - "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": { - "type": "number" - } - }, - "required": [ - "id", - "name", - "house", - "gender", - "family", - "accords", - "key_notes", - "character", - "links", - "profile" - ], - "type": "object" - }, - "via": { - "type": "string" - }, - "why": { - "type": "string" - } -} - removed
Output schema / properties / partners / items / requiredRemoved value: -[ - "perfume", - "via", - "why" -]
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
Related MCP Connectors
Scento perfume API and MCP server: notes, families, similar scents for 1,600+ perfumes. No key.
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
Related MCP Servers
- AlicenseAqualityCmaintenanceRead-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.869 npmMIT

mcp-server-parficaofficial
AlicenseAqualityDmaintenanceMCP 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.361 npmMIT
Noteboxd MCPofficial
AlicenseAqualityDmaintenanceMCP 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.1960 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.820 PyPI1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.