
PerfuMate MCP server
Which MCP servers are PerfuMate's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-19
- Registry nameapp.perfumate/perfumateverified in the MCP registry
The registry name sits under perfumate.app. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-19
- Tools45
- Server calls itselfperfumate
- Server version1.1.0
- Protocol version2025-06-18
On 2026-10-19 the server answered initialize and tools/list without a sign-in. First answer in 1340 ms.
- Whether its tools do the product's job has not been judged yet.
Once connected
- Keep approval on for delete_items: they delete, send or pay without saying so.
- create_formula, edit_formula, update_formula, add_to_shelf, update_bottle change data without a sign-in: anyone with the address can call them.
- Parameters are untyped or undescribed in 31 of 45 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP score62 of 100answers 98 · definitions 89 · context 67 · connects 100 · lowered by the warning signs below
- Answered100% of days17 of 17 daily checks
- Median first answer1216 ms
- Space in an agent's context≈ 10,046 tokensthe definitions of all its tools (45), which an agent carries on every turn
- Tool definitionsB · 89 of 100
- Typed results0 of 45 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 31 of 45
What an agent can do with it
- not sure · scale a perfume batch to any size by weight
- not sure · check formula compliance against IFRA limits while composing
- not sure · import formulas from spreadsheets, PDFs or pasted text
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that delete or pay, marked read-only: delete_items
- Tools that change data, on a server that answers without a sign-in: create_formula, edit_formula, update_formula, add_to_shelf, update_bottle
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
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. Returns up to 10 catalog…
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 much Iso E Super can I use"). Returns the…
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, which line to reduce, or which EU…
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 could make with materials they list…
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 notebooks; says so when the bench has not…
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 formulas on the user's PerfuMate bench, pinned…
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 note pyramid. Optionally adds an IFRA…
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.
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. Lines are matched to the catalog and…
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 formula. Changes the working copy in place…
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.
rename_folderUse this when the user wants to rename a formula folder: every formula filed in it moves (an empty name unfiles them).
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.
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.
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.
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.
rename_versionUse this when the user wants to change a version's note or the number it carries.
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, each with its bottles: strength, solvent…
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.
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, solvent, stock in grams, price per gram…
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, solvent or notes, take it on or off…
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.
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 or constituent breakdown; name and CAS only for their own materials.
list_batchesUse this when the user asks about batches they have made, all or one formula's, with their maceration journal and days resting.
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. Works from the working copy or a version.
journal_noteUse this when the user wants to add a dated line to a batch's maceration journal, or correct one.
list_notesUse this when the user asks to read their PerfuMate notebooks: titles and previews, or one notebook in full by id.
write_noteUse this when the user wants to create a notebook or change one: its title, body, appended text or pin.
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.
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 remove them.
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).
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 returns a confirmation token valid for 10…
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 the user typed it. Items stay…
list_deletedUse this when the user wants to see what they deleted in the last 30 days and can still restore.
restore_deletedUse this when the user wants something back from Recently deleted (deleted in the last 30 days).
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. Without changeId this only previews the…
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 and sub-notes by weight and by…
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-bottle blends from the shelf that can play…
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's dilution, merged into a line that…
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 stand entirely on the shelf (what stays…
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, allergens, cost and the scent profile see what…
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 can be decomposed.
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).
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.
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 the finishing alcohol makes up the rest…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"perfumate": {
"type": "http",
"url": "https://perfumate.app/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http perfumate https://perfumate.app/mcpclaude.ai, ChatGPT and other clients: add https://perfumate.app/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.