Back to Browse

Scentindex MCP Server

Developer ToolsModerate6.7MCP RegistryLocal
Free

Server data from the Official MCP Registry

Search a fragrance index: perfumes, notes, houses and guides; similar scents and alternatives.

About

Search a fragrance index: perfumes, notes, houses and guides; similar scents and alternatives.

Security Report

6.7
Moderate6.7Moderate Risk

scentindex is a keyless read-only client for the public 10ml Fragrance Index API, with no hardcoded secrets, no shell execution, and no data sent to third parties beyond the query parameters the user supplies. Its only external access is HTTPS GET requests to the configured base URL, which matches its stated purpose; minor notes are the unauthenticated design (intentional and documented) and the base URL being overridable via environment variable, which is a standard configuration pattern. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.

8 files analyzed · 8 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-cloudcorprecords-scentindex": {
      "args": [
        "-y",
        "@reneturcios/scentindex"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

scentindex

A window onto a large fragrance index. scentindex queries the public 10ml Fragrance Index — perfumes, the notes inside them, the houses that make them, and the guides that explain the vocabulary — and returns what the index returns, unchanged. No account and no API key are involved; it is a thin, honest client over a public API.

What you can do with it:

  • Search perfumes by free text, house, notes included or excluded, accords, family, gender, season, occasion or style, and page through the results with a cursor.
  • Open one perfume in full to see its notes, accords and metadata.
  • Start from a perfume, a note set or an accord profile and find similar scents, or look for alternatives — the same scent profile from other houses.
  • Browse perfumes by a single note, for example everything containing oud.
  • Ask what a note actually smells like and where it tends to appear.
  • List and open fragrance houses, filtered by type or country, and search the index's guides and glossary content.

Most tools accept a locale for the response language and, where the underlying operation supports it, a response_format of concise (the API's default) or detailed. List tools page with limit (1–100) and an opaque cursor taken from a previous response.

Labelled subset: 9 of 15 tools

This rebuild implements 9 of the original tool set's 15 tools — the nine that map onto operations published in the upstream OpenAPI document:

search_perfumes, get_perfume, find_similar_perfumes, find_perfume_alternatives, perfumes_by_note, explain_note, list_houses, get_house, search_guides.

The remaining six are omitted, because they have no operation in the published OpenAPI and their argument shapes are not published anywhere reachable:

compare_perfumes, recommend_perfumes, explain_perfume_term, suggest_layering, pick_for_occasion, find_gift.

Configuration

The API base defaults to https://mcp.10ml.com/api/v1 and can be overridden with the PERFUME_API_BASE environment variable. No API key is required.

CLI

Each tool is a subcommand taking one JSON argument string:

npx @reneturcios/scentindex search_perfumes '{"q":"oud","limit":10}'
npx @reneturcios/scentindex get_perfume '{"id":"<perfume id>"}'
npx @reneturcios/scentindex find_similar_perfumes '{"perfume":"<name>"}'
npx @reneturcios/scentindex find_perfume_alternatives '{"perfume":"<name>"}'
npx @reneturcios/scentindex perfumes_by_note '{"note":"oud"}'
npx @reneturcios/scentindex explain_note '{"id":"oud"}'
npx @reneturcios/scentindex list_houses '{"country":"FR"}'
npx @reneturcios/scentindex get_house '{"id":"<house id>"}'
npx @reneturcios/scentindex search_guides '{"q":"layering"}'
npx @reneturcios/scentindex --version

Output is the upstream JSON, verbatim. Exit codes: 0 on success, 1 on a runtime error (including a validation or upstream failure), 2 on a usage error.

MCP server

npx -y @reneturcios/scentindex mcp

MCP client config:

{
  "mcpServers": {
    "scentindex": {
      "command": "npx",
      "args": ["-y", "@reneturcios/scentindex", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/scentindex
docker run --rm ghcr.io/cloudcorprecords/scentindex perfumes_by_note '{"note":"oud"}'

Development

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

Reviews

No reviews yet

Be the first to review this server!