Skip to main content
Glama

Adjust after tasting

dial_in
Read-only

The next grind setting to try after the user brewed and tasted: "I used 18 on my Encore and it was sour", "my espresso is bitter at 4.5 on the Ode". Sour, weak or fast means grind finer; bitter, harsh or slow means coarser. Returns one move on that grinder's own dial. Call again after each cup, and with result "good" once it tastes right, which also adds an anonymous report (grinder, method, setting, taste, coffee) to BrewMark's per-coffee data.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "grinder": "<grinder>",
      "setting": "<setting>",
      "result": "<result>"
    },
    "name": "dial_in"
  }
}

Input Schema

NameRequiredDescriptionDefault
roastNoOptional roast level of that coffee, if known. Recorded with the report; it does not change the suggestion.
coffeeNoThe coffee as the user named it, roaster and name: "Stumptown Hair Bender". Only the coffee: never the user's name or other personal details. Leave out if they have not said.
methodNoBrew method, e.g. "espresso", "V60", "Kalita Wave". Pass it whenever the user has said it; the card shows that method's recipe.
resultYesHow it tasted: sour (also weak, thin, ran fast), bitter (also harsh, dry, ran slow), or good
grinderYesGrinder name as the user said it, e.g. "Baratza Encore"
settingYesThe setting they brewed at as written on the grinder, e.g. 18. On Fellow dials 4.2 is the second mark after 4; a Baratza Forte is macro number and micro letter, e.g. "4R".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true, but the description states the call 'adds an anonymous report (grinder, method, setting, taste, coffee) to BrewMark's per-coffee data' — a data-submitting side effect. That is a direct conflict with the readOnly claim, so it is flagged. The disclosure itself is valuable and privacy-relevant (anonymous, and the coffee param warns against personal details), but it contradicts the structured safety signal an agent would otherwise rely on.

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?

Two sentences, front-loaded with the trigger situation and the returned value before the taste-mapping and the repeating/report instructions. The two quoted user utterances earn their place by showing the expected input shape, though the description is dense and slightly overpacked for its length.

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?

With no output schema, the description does the necessary work of saying what comes back ('one move on that grinder's own dial') and what the terminal 'good' call does. It is thin on edge cases — an unrecognized grinder or a setting that can't be parsed — and never points to find_grinder or get_grinder_chart, which are plausible prerequisites.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real semantics: it explains what 'result' means operationally (sour → grind finer, bitter → coarser, good → stop and report) and clarifies that the returned move is expressed in the grinder's own numbering. The 'good' behavior in particular is not derivable from the schema alone.

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?

Names a specific verb and resource ('the next grind setting to try after the user brewed and tasted') and immediately scopes it: 'Returns one move on that grinder's own dial.' This distinguishes it from convert_grind_setting, which would translate between grinders rather than advance a single dial, and the two concrete user utterances make the input shape unambiguous.

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?

Gives clear trigger conditions ('after the user brewed and tasted'), a repeat protocol ('call again after each cup'), and a terminal condition ('with result "good" once it tastes right'). It also maps user vocabulary to the enum (sour/weak/fast → finer, bitter/harsh/slow → coarser). It does not name siblings, e.g. what to do if the grinder is unknown (find_grinder) or settings need converting.

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