Skip to main content
Glama
talvola

bar-assistant-mcp

by talvola

bar_set_flavor_profile

Set or update an ingredient's flavor profile by merging axis scores over existing values. Create it with a category when none exists, and mark novelty bottles unsuggestable.

Instructions

Set or update the flavor profile for an ingredient.

Partial updates are supported: profile may contain only the axes you want to change — they're merged over the existing profile before saving. If the ingredient has no profile yet, you must pass category (and ideally the full axis set for that category).

Args: ingredient_id: BA ingredient_id of the specific bottle. profile: dict of axis → integer score (0–3). Merged over existing axes. category: required only when the ingredient has no profile yet (e.g. "gin", "amaro"). See bar_list_flavor_axes for valid axes. source: provenance — "tgii", "llm_from_description", "manual", etc. confidence: "high" | "medium" | "low" | None. notes: free-text reasoning. suggestable_for_classics: set False for novelty/allocated bottles the matcher should never surface even if their profile fits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesNo
sourceNomanual
profileYes
categoryNo
confidenceNo
ingredient_idYes
suggestable_for_classicsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it discloses merge-over-existing semantics, the required-first-write case, and the matchability side effect of suggestable_for_classics. It stops short of stating permissions, reversibility, or overwrite/clearing behavior when profile changes an existing axis.

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?

The description is front-loaded with the core semantics and the Args section is efficient and scannable. The title line is redundant with the name, but the body sentences each earn their place with dense, non-repetitive information.

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

Completeness5/5

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

For a 7-parameter mutation tool with 0% schema coverage and an output schema present, the description supplies all the missing parameter detail, the merge/creation behavior, and the downstream effect on the matcher. An agent has everything needed to invoke it correctly; return-value explanation is unnecessary given the output schema.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does: it documents every parameter's meaning, the 0–3 integer range for profile axes, the category requirement condition, allowed confidence/source values, and the specific purpose of suggestable_for_classics for novelty bottles.

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?

The description opens with a specific verb and resource ('Set or update the flavor profile for an ingredient'), and it distinguishes itself from the read-only sibling bar_get_flavor_profile by clarifying that it writes the profile. An agent can tell exactly what this tool does without opening the schema.

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

Usage Guidelines4/5

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

The description clearly explains the partial-update merge behavior and the condition under which 'category' becomes required (no profile yet), and it points to bar_list_flavor_axes for valid axes. It does not explicitly name a competing alternative tool, but the context and prerequisites are clear.

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