Skip to main content
Glama

Create a formula on your bench

create_formula

Use 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 the user's own materials; if any line does not match, nothing is saved and the unmatched names come back with suggestions. Bottles the user does not own are added off the shelf, as an import does. To only check a formula without saving it use check_formula.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileNoA file the user attached in the chat: CSV, TSV, TXT, JSON or Excel (.xlsx).
kindNo
nameNo
textNoThe formula as pasted text, one material per line with an amount.
linesNo
folderNo
batchGramsNoBatch size when lines are in percent. Default 10 g.
descriptionNo
targetConcentrationPctNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / lines / items / additionalProperties
      Added value: +false
    • changedInput schema / properties / lines / items / properties / grams / description
      Previous value: -"Amount in grams."New value: +"Weighed amount in grams. Never send together with percent."
    • changedInput schema / properties / lines / items / properties / percent / description
      Previous value: -"Share of the formula, when every line is given in percent."New value: +"Weighed share of the formula, when every line is percent. Never send together with grams. Not the bottle dilution."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say this is a non-read-only, non-idempotent, non-open-world write. The description goes well beyond: expects lines matched to catalog and user materials, is all-or-nothing ('if any line does not match, nothing is saved'), returns unmatched names with suggestions, and off-shelf-adds bottles the user does not own. That is exactly the behavioral context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the primary trigger comes first, then the matching/atomicity caveat, then the off-shelf side effect, then the check_formula disambiguation. Sentences are long and clause-heavy, but no sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, zero-required, nested-schema mutation with no output schema, the description covers the essential call-shaping facts: input forms, failure semantics, unmatched-name feedback, and side effects. It omits the meaning of kind and several optional metadata parameters, which an agent may still have to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (33%), so the description has to carry more weight. It does explain the three line-input shapes (structured lines, pasted text, attached file) and the user-materials/newMaterial flow, but leaves kind, name, folder, description, batchGrams and targetConcentrationPct unexplained. Partial compensation only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: creating a new formula on the user's PerfuMate bench, empty or populated from lines the user supplies. It is instantly distinguishable from update_formula, edit_formula, duplicate_formula and check_formula without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete trigger (the user wants a new formula, e.g. after building one together in this chat) and names the alternative explicitly: 'To only check a formula without saving it use check_formula.' That is an explicit when/when-not routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources