Skip to main content
Glama
cacack

mcp-server-brewfather

by cacack

create_inventory_item

Add a new brewing inventory item for fermentables, hops, miscs, or yeasts, with optional stock amount and type-specific fields.

Instructions

Add a new item to the inventory.

``kind`` is fermentables, hops, miscs, or yeasts. ``amount`` is the starting
stock in Brewfather's stored metric units (kg for fermentables, g for hops).
``fields`` keys, all kinds: type, supplier, origin (the name goes in ``name``); plus
- fermentables: color (SRM), potential (SG, e.g. 1.037);
- hops: alpha (percent);
- miscs: unit, use;
- yeasts: attenuation (percent), laboratory, productId, form.

Returns {item_id}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
nameYes
amountNo
fieldsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose the return shape ({item_id}) and the unit conventions for amount, but says nothing about permissions, duplicate-name handling, or idempotency for what is clearly a write operation.

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 action statement is front-loaded in the first line and the per-kind field list is compactly bulleted with no filler. The nested backtick formatting and multi-line layout are slightly noisy, but every sentence carries information.

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 mutation tool with no annotations, the description plus the output schema cover the essential call-time information: valid kinds, units, field vocabulary, and return value. The remaining gap is failure/permission behavior, which is not addressed anywhere.

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%, yet the description fully compensates: it enumerates the valid kind values, pins amount to Brewfather's stored metric units per kind, and lists the allowed fields keys with their units/semantics for each of the four kinds. That is meaning the schema cannot supply on its own.

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?

The first sentence gives a specific verb and resource ('Add a new item to the inventory'), which is enough to separate it from update_inventory_item and set_inventory by implication of creating a new record. It stops short of naming those siblings explicitly, so the differentiation is inferred rather than stated.

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

Usage Guidelines3/5

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

Usage is only implied by 'Add a new item' — the description never says when to create a new item versus calling update_inventory_item or set_inventory, nor what happens if the item already exists. For a create tool in a family with two mutating inventory siblings, an explicit routing rule would be valuable.

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