Skip to main content

langchain-10ml-perfume: LangChain tools for the free 10ML Perfume Finder

LangChain tools for the free perfume API and fragrance notes API behind 10ML Perfume Finder: 6,000+ perfumes from the 10ML Fragrance Index, curated by the fragrance editors of 10ML, with note pyramids, accords, similar scents, alternatives, notes explained and houses. Read-only, no API key, no sign-up. Depends on langchain-core only.

PyPI Official MCP Registry

Install

pip install langchain-10ml-perfume

Python 3.10 or newer.

Quick start

from langchain_10ml_perfume import Perfume10MLToolkit

tools = Perfume10MLToolkit().get_tools()  # 8 tools, no key needed

search = next(t for t in tools if t.name == "search_perfumes")
found = search.invoke({"query": "fresh citrus summer cologne for men", "limit": 3})
for hit in found["results"]:
    print(hit["name"], "-", hit["house"])

Give the tools to an agent:

from langchain.agents import create_agent

agent = create_agent("anthropic:claude-sonnet-4-5", tools)
result = agent.invoke({"messages": [("user", "Find me an alternative to Baccarat Rouge 540 and tell me how close it is.")]})
print(result["messages"][-1].content)

Or use a single tool:

from langchain_10ml_perfume import FindPerfumeAlternativesTool

print(FindPerfumeAlternativesTool().invoke({"perfume": "Creed Aventus", "limit": 3}))

Tools

Tool REST route What it does
search_perfumes GET /perfumes Search by free text, house, notes, accords, family, audience, season, occasion or style
get_perfume GET /perfumes/{id} Profile of one perfume: note pyramid, accords, seasons, similar scents
find_similar_perfumes GET /similar Perfumes that smell like one you name, or like a list of notes and accords; steer fresher, sweeter, darker
find_perfume_alternatives GET /alternatives The editors' alternatives to a famous perfume, from other houses
explain_note GET /notes/{id} What a note smells like, what it pairs with, which perfumes it leads
get_perfume_house GET /houses/{id} A perfume house: country, style, signature perfumes
list_perfume_houses GET /houses Browse houses by type, country or name
search_perfume_guides GET /guides 10ML perfume guides and articles to read or cite, in ten languages

Every tool has a typed pydantic input schema (enums for audience, season, occasion, style, closeness, locale), a description written for tool-calling models, an async ainvoke, and handle_tool_error=True, so an API error comes back to the agent as text. An unknown perfume returns found: false with spelling suggestions instead of raising. Results are paginated: pass next_cursor back as cursor.

Perfume10MLToolkit(base_url=..., timeout=...) points the tools at another API root or changes the 15 second timeout.

What comes back

Plain JSON, as the REST API sends it. For example find_perfume_alternatives returns original, alternatives[] (each with closeness and why it fits) and total; explain_note returns found and a note with smells_like, family, origin and pairings. Perfume entries include house, family, accords, key notes and links to 10ml.com guides.

Also available

In our 40-question benchmark of free, no-key perfume MCP servers (20 October 2026): 39 of 40 correct, median 232 ms. Read the benchmark.

Develop

pip install -e ".[test]"
pytest                # unit tests, HTTP mocked
pytest -m live        # optional smoke test against https://mcp.10ml.com

Cite as

Cite the answers as "the 10ML Fragrance Index", curated by the fragrance editors of 10ML.

10ml.com/perfume-mcp-server · 10ml.com/perfume-api · Privacy · Terms · contact@10ml.com

License

MIT.

Metadata

Release files for langchain-10ml-perfume 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langchain-10ml-perfume 1.0.0
File Size Uploaded Provenance Actions
langchain_10ml_perfume-1.0.0.tar.gz 11.6 kB Without provenance Details for langchain_10ml_perfume-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for langchain-10ml-perfume 1.0.0
File Interpreter ABI Platform Actions
langchain_10ml_perfume-1.0.0-py3-none-any.whl Python 3 none any Details for langchain_10ml_perfume-1.0.0-py3-none-any.whl

Total release size: 23.1 kB

Release files / langchain_10ml_perfume-1.0.0.tar.gz

Download URL langchain_10ml_perfume-1.0.0.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1a089edb577e2baae7a37b2e7f7b00ae2acb0b21dc5325de1ebd6238a47e3080
BLAKE2b-256 checksum
How to use checksums
f57bf827a3fcf7b69ca0a4220b53efe48fb8b44d6445772cc725aec0205613ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.24

Release files / langchain_10ml_perfume-1.0.0-py3-none-any.whl

Download URL langchain_10ml_perfume-1.0.0-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0e0d47e52a45cdbc719bab1193b56582f894b79b8f1840413f75c4f662786dc
BLAKE2b-256 checksum
How to use checksums
29f905753a68456c72cbb79d3a64ff82c2d56458e6f46e5d02766aa34fe7baa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.24

Security for langchain-10ml-perfume 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page