Skip to main content
Glama

ShotPulled

Grinder math

grinder_math
Read-onlyIdempotent

Determine steps/clicks difference and directions between setting labels (C3).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
to_labelYes
from_labelYes
grinder_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
stepsYes
directionYes
step_unitYes
burr_gap_travel_micronsYes
relative_coarseness_noteYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description's 'Determine' is consistent with a safe computation. It adds that the result is a steps/clicks difference and direction, but does not reveal additional behavioral nuance such as label assumptions or failure behavior.

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?

A single sentence with no filler, and the key operation is front-loaded. The unexplained 'C3' parenthetical costs it a top score because it is cryptic rather than clarifying.

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

Completeness3/5

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

For a read-only math utility with an output schema, the high-level purpose is enough for selection, but the agent must guess the labeling convention and why grinder_id is required. Combined with no usage routing, the definition is workable but not fully self-sufficient.

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

Parameters2/5

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

With 0% schema description coverage, the description must carry the meaning, but it only loosely connects from_label/to_label as 'setting labels' and never explains the label syntax or the grinder_id parameter. It also doesn't state the mapping between labels and steps/clicks, which is the core semantic the agent needs.

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

Purpose4/5

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

Clearly identifies a calculation: it determines the difference/direction in steps/clicks between two setting labels, so an agent knows what the tool computes. It does not explicitly distinguish itself from siblings like set_grinder_position, and the parenthetical 'C3' is unexplained.

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

Usage Guidelines2/5

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

Provides no guidance on when to call this rather than a sibling such as set_grinder_position or suggest_next_step. It neither states prerequisites (e.g., a registered grinder) nor when the math should be used, so an agent must infer from context.

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.

TDQS

B3.4/5.0
Disambiguation4/5

Most tools sort cleanly into register_*, list_*, set_*, and log_* families with clear resource targets. The main ambiguity is between diagnose_shot and diagnose_preview, which are deliberately similar, and between get_dial_state and suggest_next_step, but the descriptions resolve these reasonably well.

Naming Consistency4/5

Naming is overwhelmingly consistent snake_case verb_noun, such as register_coffee, list_shots, update_shot, and set_active. Minor exceptions like kb_changelog next to get_kb_version and grinder_math break the pattern slightly.

Tool Count2/5

With 34 tools, the surface is well over the 25+ too-many threshold. The resource families are individually clear, but the assistant would be easier to navigate with fewer, more consolidated tools or less KB introspection surface.

Completeness3/5

The core dialing workflow is well covered: registration, shot logging, diagnosis, dial state, recipes, and maintenance. However, most registered entities such as grinders, machines, waters, scales, and programs have create+list but no update/delete, and recipes have no unlock/delete lifecycle.

Resources