Skip to main content
Glama

delete_product

Permanently remove a product with zero stock from your Grocy catalog. Refuses deletion if any stock remains, ensuring safe cleanup of duplicate or test products.

Instructions

Permanently remove a product with zero stock from the catalog.

Refuses if any stock is on hand — consume_product it down to zero first. This is for cleaning up mistakes (a test product, a typo'd duplicate caught by search_products or create_product's possible_duplicates), not for retiring a product still in use.

Args: product: Product name, description fragment, or barcode. Must identify exactly one product.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
productYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses irreversibility ('Permanently remove'), the hard precondition that stock must be zero, that the tool refuses otherwise, and that the identifier must resolve to exactly one product. That is strong disclosure for a destructive operation.

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

Conciseness5/5

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

The description is compact and front-loaded: core behavior, refusal condition, intended use cases, and argument semantics each get one clear statement. Every sentence earns its place by either constraining usage or preventing foreseeable misuse.

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 one-parameter destructive mutation with no annotations and no output schema, this describes purpose, constraints, refusal behavior, alternatives, and argument semantics. Nothing critical is missing for an agent to decide when to call it and how to call it safely.

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%, with the schema only defining 'product' as a required string. The description fully compensates by specifying the accepted identifier forms (name, description fragment, or barcode) and the uniqueness requirement. It gives the agent exactly the semantic information needed to supply a valid argument.

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 states a specific verb ('Permanently remove') and resource ('a product with zero stock from the catalog'), and immediately distinguishes the tool from sibling operations by saying what it is not for. It is immediately clear how delete_product differs from consume_product, update_product, or search_products.

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?

It explicitly says when to use this tool (cleaning up mistakes, test products, typo'd duplicates) and when not to use it (retiring a product still in use). It also names the prerequisite workflow: use consume_product to bring stock to zero first. This is model alternative routing.

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