Skip to main content
Glama
harristeeter-mcp
by chrischall

ht_remove_from_shopping_list

Idempotent

Removes selected UPCs from a specified Harris Teeter shopping list; use the add tool to re-add items if needed.

Instructions

Remove items from a Harris Teeter shopping list by UPC. Re-add with ht_add_to_shopping_list.

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": {
      "listId": "<listId>",
      "upcs": "<upcs>"
    },
    "name": "ht_remove_from_shopping_list"
  }
}

Input Schema

NameRequiredDescriptionDefault
upcsYes
listIdYeslistId from ht_list_shopping_lists.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false; the description adds the useful behavioral fact that removal is recoverable via ht_add_to_shopping_list, which explains why it is non-destructive. It omits edge-case behavior such as what happens when a UPC is absent from the list or whether removal is all-or-nothing across up to 50 UPCs.

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?

Two short sentences with the core action front-loaded and the recovery hint second; nothing is redundant or padded.

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 two-parameter mutation with annotations covering the safety profile, the description is serviceable but thin: it says nothing about partial failures, the 50-UPC cap, or ownership/auth requirements. It is adequate to invoke the tool but not to predict its behavior in edge cases.

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

Parameters3/5

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

Schema description coverage is only 50%, but both fields carry inline descriptions pointing to their source tools (listId from ht_list_shopping_lists, upcs from ht_search_products). The description reinforces the UPC selector but adds no format, limit, or matching semantics beyond what the schema already supplies.

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?

States a specific verb ('Remove') and resource ('items from a Harris Teeter shopping list') plus the key selector ('by UPC'), so the action is unambiguous. It does not explicitly contrast with the near-sibling ht_remove_from_cart, but the resource name 'shopping list' vs. cart is embedded in the sentence itself.

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?

The sentence 'Re-add with ht_add_to_shopping_list' gives a recovery path but not a when-to-use rule; it never states prerequisites (list must exist, item must be on the list) or when to prefer ht_remove_from_cart. Usage is implied by the resource name rather than spelled out.

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