Skip to main content
Glama

10ML Perfume Finder

List perfume houses

list_houses
Read-onlyIdempotent

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).

Input Schema

NameRequiredDescriptionDefault
typeNoOnly houses of this type
limitNoResults per page.
queryNoPart of a house name, e.g. "tom" or "maison"
cursorNonext_cursor from the previous page.
localeNoLanguage of the 10ml.com links and labels.en
countryNoOnly houses from this country, e.g. "France", "Italy", "United Arab Emirates"

Output Schema

NameRequiredDescriptionDefault
totalYes
housesYes
sourceYes
messageNo
next_cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / locale / enum
      Previous 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"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / locale / enum
      Previous value: -[
      -  "en",
      -  "de",
      -  "fr",
      -  "es",
      -  "it",
      -  "ro",
      -  "el",
      -  "hu",
      -  "cs",
      -  "pl"
      -]New value: +[
      +  "en",
      +  "de",
      +  "fr",
      +  "es",
      +  "it",
      +  "ro",
      +  "el",
      +  "hu",
      +  "cs",
      +  "pl",
      +  "nl"
      +]
  3. Changed5 schema fields changed
    • changedInput schema / properties / cursor / description
      Previous value: -"next_cursor from the previous page; omit for the first page."New value: +"next_cursor from the previous page."
    • changedInput schema / properties / limit / description
      Previous value: -"How many results per page (1-50, default 20)."New value: +"Results per page."
    • changedInput schema / properties / locale / description
      Previous 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."
    • removedOutput schema / properties / houses / items / properties
      Removed 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"
      -  }
      -}
    • removedOutput schema / properties / houses / items / required
      Removed value: -[
      -  "id",
      -  "name",
      -  "type",
      -  "perfumes_in_index",
      -  "known_for"
      -]
  4. Changed3 schema fields changed
    • removedOutput schema / properties / message / description
      Removed value: -"Guidance when the result is empty, partial or needs a follow-up tool"
    • removedOutput schema / properties / next_cursor / description
      Removed value: -"Pass as cursor to get the next page; absent on the last page"
    • removedOutput schema / properties / total / description
      Removed value: -"How many results matched in all"
  5. Changed6 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedInput schema / properties / cursor / description
      Previous value: -"Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page."New value: +"next_cursor from the previous page; omit for the first page."
    • changedInput schema / properties / locale / description
      Previous value: -"Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated."New value: +"Language of the 10ml.com links and labels. Perfume, house and note names stay as they are."
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / houses / items / additionalProperties
      Removed value: -false
  6. Changed22 schema fields changed
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Only houses from this country, e.g. \"France\", \"Italy\", \"United Arab Emirates\"",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "Opaque cursor from a previous result's next_cursor, to fetch the next page. Omit for the first page.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 20,
      +  "description": "How many results per page (1-50, default 20).",
      +  "maximum": 50,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / locale
      Added value: +{
      +  "default": "en",
      +  "description": "Language of the 10ml.com links and fixed labels: en, de, fr, es, it, ro, el, hu, cs or pl. Perfume, house and note names are never translated.",
      +  "enum": [
      +    "en",
      +    "de",
      +    "fr",
      +    "es",
      +    "it",
      +    "ro",
      +    "el",
      +    "hu",
      +    "cs",
      +    "pl"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / query
      Added value: +{
      +  "description": "Part of a house name, e.g. \"tom\" or \"maison\"",
      +  "maxLength": 60,
      +  "type": "string"
      +}
    • removedInput schema / properties / style
      Removed value: -{
      -  "description": "Only houses of this style",
      -  "enum": [
      -    "Designer",
      -    "Niche",
      -    "Middle Eastern"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / type
      Added value: +{
      +  "description": "Only houses of this type",
      +  "enum": [
      +    "designer",
      +    "niche",
      +    "middle-eastern",
      +    "indie",
      +    "celebrity"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / houses / items / properties / description
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / houses / items / properties / founded
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / houses / items / properties / guides
      Removed value: -{
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "title": {
      -        "type": "string"
      -      },
      -      "url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "title",
      -      "url"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / houses / items / properties / known_for
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / houses / items / properties / perfumes_in_index
      Added value: +{
      +  "type": "number"
      +}
    • removedOutput schema / properties / houses / items / properties / signaturePerfumes
      Removed value: -{
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / houses / items / properties / style
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / houses / items / properties / type
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / houses / items / properties / url
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / houses / items / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "style",
      -  "description",
      -  "signaturePerfumes",
      -  "guides"
      -]New value: +[
      +  "id",
      +  "name",
      +  "type",
      +  "perfumes_in_index",
      +  "known_for"
      +]
    • addedOutput schema / properties / message
      Added value: +{
      +  "description": "Guidance when the result is empty, partial or needs a follow-up tool",
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "description": "Pass as cursor to get the next page; absent on the last page",
      +  "type": "string"
      +}
    • addedOutput schema / properties / source
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / total / description
      Added value: +"How many results matched in all"
    • changedOutput schema / required
      Previous value: -[
      -  "total",
      -  "houses"
      -]New value: +[
      +  "total",
      +  "houses",
      +  "source"
      +]
  7. Changed10 schema fields changed
    • addedInput schema / properties / style
      Added value: +{
      +  "description": "Only houses of this style",
      +  "enum": [
      +    "Designer",
      +    "Niche",
      +    "Middle Eastern"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / houses / items / properties / country
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / houses / items / properties / description
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / houses / items / properties / guides
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "title": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "title",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / houses / items / properties / handle
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / houses / items / properties / id
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / houses / items / properties / perfumeCount
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / houses / items / properties / signaturePerfumes
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / houses / items / properties / style
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / houses / items / required
      Previous value: -[
      -  "name",
      -  "handle",
      -  "perfumeCount",
      -  "url"
      -]New value: +[
      +  "id",
      +  "name",
      +  "style",
      +  "description",
      +  "signaturePerfumes",
      +  "guides"
      +]
  8. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world 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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources