AgentXM

PerfuMate

mcp remote · streamable-http · v1.1.0 · source: crawl

https://perfumate.app/mcp

Perfumery materials, IFRA Category 4, EU allergens, and your formulas and shelf via OAuth.

AgentXM badge

Works

100

Verified Nov 03, 2026 · p50 757 ms · p95 880 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'perfumate'
tools_listed15pass45 tools
schema_complete15pass41 of 45 tools have a description and a typed schema
latency_p5010passp50 757 ms
latency_p955passp95 880 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10passno patterns found
scope5passno execution-style tools

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (45)

NameDescriptionSchema
my_accountUse this when the user asks about their PerfuMate account or how big their bench is. Returns the linked account's plan ("unlimited" or "ai_studio") and its counts of formulas, shelf materials and notetyped
branch_versionUse this when the user wants to start a new line of work from a past version; the old working copy stays in the tree.typed
open_versionUse this when the user wants to go back and edit a past version directly, without cloning it. Refused for a version a batch was made from.typed
search_materialsUse this when the user wants to find perfumery materials by scent, family, name or CAS number, for example musks, woods or citrus to put in a formula, or the catalog name of a material they typed loostyped
get_materialUse this when the user asks what one perfumery material smells like, how it is used, how strong or long-lasting it is, or how much of it IFRA allows (its Category 4 fine-fragrance limit, e.g. "how muctyped
check_formulaUse this when the user has a perfume or accord formula, pasted or drafted earlier in this conversation, and wants to know whether it is IFRA compliant, how much of the finished product it may be, whictyped
find_starting_formulaUse this when the user wants to build, create, compose or formulate a perfume, fragrance or accord and needs a starting recipe (a rose, a citrus cologne, a clean musk, an amber), or asks what they coutyped
list_formulasUse this when the user asks what formulas they have, wants to find one by name, folder or favourite, or before you read or change a formula (it returns the ids the other tools use). Lists the formulastyped
get_formulaUse this when the user wants to see one of their formulas: every line with material, bottle strength, amount, relative and absolute percent, flags and notes, plus totals, concentration, cost and the ntyped
list_versionsUse this when the user asks about a formula's history: its version tree with notes and parents, which version is the working copy and which have batches.typed
create_formulaUse this when the user wants a new formula on their PerfuMate bench, empty or with lines they give (structured, pasted text or an attached file), for example after building one together in this chat. typed
edit_formulaUse this when the user wants to change a formula on their bench: add or remove a material, set an amount or a bottle strength, swap a material, flag or note a line, reorder, or scale the whole formulatyped
update_formulaUse this when the user wants to rename a formula or change its description, bench notes, kind (perfume or accord), folder, favourite star, pin, target concentration, IFRA category or bottle size.incomplete
rename_folderUse this when the user wants to rename a formula folder: every formula filed in it moves (an empty name unfiles them).typed
duplicate_formulaUse this when the user wants a copy of a formula to try changes on: an independent copy of its working copy with the same bottles, named "<name> copy" unless named.typed
save_versionUse this when the user wants to keep the current state of a formula as a named version in its evolution tree and carry on editing on a fresh copy.typed
rename_versionUse this when the user wants to change a version's note or the number it carries.incomplete
list_shelfUse this when the user asks which materials they own, what is in stock or running low, or as the first step to suggest what they can make with their shelf. Lists the materials on the user's shelf, eactyped
get_shelf_materialUse this when the user asks about one material they own: their notes, its bottles with recent stock movements, and the formulas that use it.typed
add_to_shelfUse this when the user says they have bought or own materials and wants them on their shelf. Adds catalog materials by name or CAS, or their own new ones; each item can carry the bottle strength, solvtyped
update_bottleUse this when the user wants to record stock for a bottle (a weighed count, or grams bought or used, through the stock ledger) or change its price per gram, supplier, lot, low-stock warning, strength,incomplete
make_dilutionUse this when the user has made, or wants to record, a dilution from a bottle they own; the material used is taken from the source bottle's stock.typed
update_materialUse this when the user wants to change a material on their bench: their notes, odour description, families, note, impact, blotter hours, shelf life, synonyms, flash point, supplier IFRA limit or constincomplete
list_batchesUse this when the user asks about batches they have made, all or one formula's, with their maceration journal and days resting.typed
get_scent_profileUse this when the user asks what a formula of theirs will smell like, how it evolves or how long it lasts, by PerfuMate's own scent model, exactly as the app's scent profile sheet shows it: families atyped
log_batchUse this when the user has made a batch of a formula and wants it recorded: total weight, date, label and notes, optionally at a weaker strength, and optionally deducting what it used from stock. Worktyped
journal_noteUse this when the user wants to add a dated line to a batch's maceration journal, or correct one.typed
list_notesUse this when the user asks to read their PerfuMate notebooks: titles and previews, or one notebook in full by id.typed
write_noteUse this when the user wants to create a notebook or change one: its title, body, appended text or pin.typed
list_shoppingUse this when the user asks what they need to buy: the Shopping cart's lists and their items (with list and category), and the materials running low. Optionally one list only.typed
shopping_listUse this when the user wants to add materials or free text to a Shopping cart list (the default list unless one is named; a new name makes that list), tick items as received or back to needed, or remotyped
set_preferencesUse this when the user wants to change the account's currency symbol or its default low-stock warning (grams; 0 turns it off).typed
delete_itemsUse this when the user asks to delete a formula, version, material, bottle, batch or note. It is step 1 of 2 and deletes NOTHING: it shows exactly what would be removed, with any protection, and returtyped
confirm_deleteUse this only after the user has said yes to the list delete_items showed. Deletes exactly that list, with its token. If the list included a protected item, confirmName must be the formula's name as ttyped
list_deletedUse this when the user wants to see what they deleted in the last 30 days and can still restore.typed
restore_deletedUse this when the user wants something back from Recently deleted (deleted in the last 30 days).typed
undo_last_changeUse this when the user wants to take back the last change made from the chat, to one formula or the last of any, from any chat. Pass the exact changeId from a write result or this tool's preview. Withtyped
find_substitutesUse this when the user lacks a material in a formula, or asks what they could use instead from the materials they own: the app's Find on shelf for one line, with single bottles and two- or three-bottltyped
use_substituteUse this when the user picks one of find_substitutes' suggestions: replaces the line with it (pass its member names), in place, with the app's own amounts, the same smell carried through each bottle'styped
rebuild_from_shelfUse this when the user asks what they can make with the materials they own, or wants a formula rebuilt using only their shelf: the app's Replace with materials I own, showing how the formula can standtyped
insert_accordUse this when the user wants to use one of their saved formulas as a single ingredient inside another, as the app's accords do: a virtual material carrying the flattened composition (so IFRA, allergentyped
view_accordUse this when the user asks what is inside an accord line of a formula: its materials at the dose it is used in, each with its share of the accord, read live from its source formula, and whether it catyped
decompose_accordUse this when the user wants an accord line replaced by the materials it holds, at the same dose, in place (undo_last_change takes it back).typed
resync_accordUse this when the source formula of an accord has changed and the user wants the accord line to follow: re-reads its composition, families and price as it is now, as the app's Re-sync does.typed
scale_to_concentrationUse this when the user wants to change a formula's concentration (for example from an eau de parfum to an eau de toilette) or its finished weight: the app's Scale sheet. The concentrate scales and thetyped

History

WhenWorksAuthToolsp50
Nov 03, 2026100open45757 ms
Oct 31, 202690open451721 ms

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/app-perfumate-perfumate.svg)](https://app.agent-xm.com/a/app-perfumate-perfumate)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.