Design
perfumate.app
A perfumery formulation MCP server that searches materials, retrieves material details, checks IFRA compliance, and suggests starting perfume formulas.
ENDPOINT 1
https://perfumate.app/mcp
MCP server metadata
- Name
- perfumate
- Version
- 1.1.0
PerfuMate is a perfume formulation workbench. When the user wants to build, create or compose a perfume or accord, find_starting_formula gives a reference recipe already checked against IFRA. search_materials finds materials by name, scent or family; get_material says what one smells like and how much IFRA allows; check_formula checks any formula against IFRA Category 4 and lists the EU allergens to declare. Every result is a reference, not a certificate. find_starting_formula and check_formula return a link that opens the formula in the PerfuMate editor; offer it when the user wants to keep working on the formula. A user who links a PerfuMate account can work on their own bench: list_formulas, get_formula, list_shelf and the other account tools read it; create_formula, edit_formula, add_to_shelf and the rest change it, and every change appears in their PerfuMate apps within seconds. Read before you write, use the ids the reads return, and say what you changed. A change is written in place, with no new version; undo_last_change takes the last one back, save_version keeps a version when asked. For "what can I make with what I own" read list_shelf, then rebuild_from_shelf or find_substitutes. get_scent_profile, find_substitutes, rebuild_from_shelf, the accord tools and scale_to_concentration run PerfuMate's own engines, so their numbers are the app's. Deleting is two steps: delete_items shows exactly what would go and returns a token; call confirm_delete only after the user says yes to that list. Deleted items stay restorable for 30 days. On an AI Studio plan without Unlimited, the bench keeps the free account's limits; a write past them is refused with the reason and changes nothing.
Known tools 45
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 loosely.
Inferred read-onlyget_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.
Inferred read-onlycheck_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, which line to reduce, or which EU allergens the label must declare.
Inferred read-onlyfind_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 could make with materials they list.
Potential side effectsmy_accountUse this when the user asks about their PerfuMate account or how big their bench is.
Inferred read-onlylist_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).
Inferred read-onlyget_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 note pyramid.
Inferred read-onlylist_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.
Inferred read-onlycreate_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.
Inferred read-onlyedit_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 formula.
Potential side effectsupdate_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.
Inferred read-onlyrename_folderUse this when the user wants to rename a formula folder: every formula filed in it moves (an empty name unfiles them).
Inferred read-onlyduplicate_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.
Inferred read-onlysave_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.
Inferred read-onlybranch_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.
Inferred read-onlyopen_versionUse this when the user wants to go back and edit a past version directly, without cloning it.
Potential side effectsrename_versionUse this when the user wants to change a version's note or the number it carries.
Inferred read-onlylist_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.
Inferred read-onlyget_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.
Inferred read-onlyadd_to_shelfUse this when the user says they have bought or own materials and wants them on their shelf.
Inferred read-onlyupdate_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, solvent or notes, take it on or off the shelf, or make it the preferred bottle.
Inferred read-onlymake_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.
Inferred read-onlyupdate_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 or constituent breakdown; name and CAS only for their own materials.
Inferred read-onlylist_batchesUse this when the user asks about batches they have made, all or one formula's, with their maceration journal and days resting.
Inferred read-onlylog_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.
Inferred read-onlyjournal_noteUse this when the user wants to add a dated line to a batch's maceration journal, or correct one.
Inferred read-onlylist_notesUse this when the user asks to read their PerfuMate notebooks: titles and previews, or one notebook in full by id.
Inferred read-onlywrite_noteUse this when the user wants to create a notebook or change one: its title, body, appended text or pin.
Potential side effectslist_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.
Inferred read-onlyshopping_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 remove them.
Potential side effectsset_preferencesUse this when the user wants to change the account's currency symbol or its default low-stock warning (grams; 0 turns it off).
Inferred read-onlydelete_itemsUse this when the user asks to delete a formula, version, material, bottle, batch or note.
Potential side effectsconfirm_deleteUse this only after the user has said yes to the list delete_items showed.
Inferred read-onlylist_deletedUse this when the user wants to see what they deleted in the last 30 days and can still restore.
Inferred read-onlyrestore_deletedUse this when the user wants something back from Recently deleted (deleted in the last 30 days).
Inferred read-onlyundo_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.
Inferred read-onlyget_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 and sub-notes by weight and by perceived impact, the drydown at 0, 1, 4, 8 and 24 hours, the wear line (projection and longevity, e.
Inferred read-onlyfind_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-bottle blends from the shelf that can play that material's part, best first, with a match percent and what each carries or misses.
Inferred read-onlyuse_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's dilution, merged into a line that already holds that bottle.
Inferred read-onlyrebuild_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 stand entirely on the shelf (what stays, what a stand-in replaces, what has to go).
Inferred read-onlyinsert_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, allergens, cost and the scent profile see what is inside) on a bottle at the accord's own aromatic strength.
Inferred read-onlyview_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 can be decomposed.
Inferred read-onlydecompose_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).
Inferred read-onlyresync_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.
Inferred read-onlyscale_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.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.perfumate]
url = "https://perfumate.app/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"perfumate": {
"type": "http",
"url": "https://perfumate.app/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: perfumate
Remote MCP URL: https://perfumate.app/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"perfumate": {
"url": "https://perfumate.app/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"perfumate": {
"type": "http",
"url": "https://perfumate.app/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "perfumate",
"transport": "streamable-http",
"url": "https://perfumate.app/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.