Skip to main content
Glama

Add an item

create_item

Add a new item to a home inventory with its name, quantity, location, category, tags, and value, then return the new item’s ID.

Instructions

Adds a new item. Search first (search_inventory) so you don't add a duplicate; if it's already there, update_item or adjust_stock instead. Put it somewhere with locationId (list_locations) or in a box with containerItemId, and give it a categoryId and tags (list_categories; new tag names are created). Prices in cents. For a collection, collectionId (list_collections) starts it from the collection's template; wanted: true puts it on the want list (looked for, not owned yet), and update_item with wanted: false once it's got. From a photo, use add_item_from_photo. Returns the new item with its id.

Input Schema

NameRequiredDescriptionDefault
heirNoWho should have it one day
nameYesWhat it is, the way people would look for it: "Cordless drill"
tagsNoTag names; new ones are created. When updating, the full new list
brandNoWho made it
linksNoWeb links: the maker's page, the manual online… When updating, the full new list
modelNoModel name or number, as on its label
notesNoAnything else worth keeping: where the spare key is, quirks, settings
originNoWhich of the app's ways added it; ignored for Claude and API keys (recorded by the server)
wantedNoOn the want list: not owned yet — left out of totals, the report, stock and search unless asked for
barcodeNoIts UPC/EAN barcode (also learned into the household's barcode book)
favoriteNoStarred, to find quickly in the app
quantityNoHow many there are; to count stock up or down, adjust_stock logs the change
conditionNoWhat shape it's in
usageUnitNoWhat its counter measures, for maintenance by use (a car's miles, a mower's hours)
categoryIdNoA category id from list_categories
disposedOnNoWhen it went, yyyy-mm-dd
locationIdNoWhere it's kept: a location id from list_locations (null: nowhere in particular)
templateIdNoThe item template it's made from (list_categories), whose fields it then has
valueCentsNoWhat one is worth now, in cents — used for the insurance report
descriptionNoA longer description: colour, size, what it's for
dispositionNoNo longer had: sold, given, discarded, lost or stolen (null: still have it). Gone items leave lists and totals
isContainerNoA box, bin or case that holds other items (they set containerItemId to it)
minQuantityNoKeep at least this many: at or below it, it goes on the shopping list
collectionIdNoThe collection it's part of (list_collections)
customFieldsNoValues for its category's or template's extra fields, by their keys (list_categories shows them)
disposalNoteNoWho it went to, or what happened (for a lost or stolen claim)
purchaseDateNoWhen it was bought, yyyy-mm-dd
serialNumberNoIts serial number, for warranty claims and insurance
disposalCentsNoWhat it sold for, in cents
containerItemIdNoThe box it's in: an item id with isContainer; it's then wherever the box is
purchasePriceCentsNoWhat was paid for one, in cents (12999 = $129.99)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed31 schema fields changedv0.1.1
    • addedInput schema / properties / barcode / description
      Added value: +"Its UPC/EAN barcode (also learned into the household's barcode book)"
    • addedInput schema / properties / brand / description
      Added value: +"Who made it"
    • addedInput schema / properties / categoryId / description
      Added value: +"A category id from list_categories"
    • addedInput schema / properties / collectionId / description
      Added value: +"The collection it's part of (list_collections)"
    • addedInput schema / properties / condition / description
      Added value: +"What shape it's in"
    • addedInput schema / properties / containerItemId / description
      Added value: +"The box it's in: an item id with isContainer; it's then wherever the box is"
    • addedInput schema / properties / customFields / description
      Added value: +"Values for its category's or template's extra fields, by their keys (list_categories shows them)"
    • addedInput schema / properties / description / description
      Added value: +"A longer description: colour, size, what it's for"
    • addedInput schema / properties / disposalCents / description
      Added value: +"What it sold for, in cents"
    • addedInput schema / properties / disposalNote / description
      Added value: +"Who it went to, or what happened (for a lost or stolen claim)"
    • addedInput schema / properties / disposedOn / description
      Added value: +"When it went, yyyy-mm-dd"
    • addedInput schema / properties / disposition / description
      Added value: +"No longer had: sold, given, discarded, lost or stolen (null: still have it). Gone items leave lists and totals"
    • addedInput schema / properties / favorite / description
      Added value: +"Starred, to find quickly in the app"
    • addedInput schema / properties / heir / description
      Added value: +"Who should have it one day"
    • addedInput schema / properties / isContainer / description
      Added value: +"A box, bin or case that holds other items (they set containerItemId to it)"
    • addedInput schema / properties / links / description
      Added value: +"Web links: the maker's page, the manual online… When updating, the full new list"
    • addedInput schema / properties / locationId / description
      Added value: +"Where it's kept: a location id from list_locations (null: nowhere in particular)"
    • addedInput schema / properties / minQuantity / description
      Added value: +"Keep at least this many: at or below it, it goes on the shopping list"
    • addedInput schema / properties / model / description
      Added value: +"Model name or number, as on its label"
    • addedInput schema / properties / name / description
      Added value: +"What it is, the way people would look for it: \"Cordless drill\""
    • addedInput schema / properties / notes / description
      Added value: +"Anything else worth keeping: where the spare key is, quirks, settings"
    • addedInput schema / properties / origin / description
      Added value: +"Which of the app's ways added it; ignored for Claude and API keys (recorded by the server)"
    • addedInput schema / properties / purchaseDate / description
      Added value: +"When it was bought, yyyy-mm-dd"
    • addedInput schema / properties / purchasePriceCents / description
      Added value: +"What was paid for one, in cents (12999 = $129.99)"
    • addedInput schema / properties / quantity / description
      Added value: +"How many there are; to count stock up or down, adjust_stock logs the change"
    • addedInput schema / properties / serialNumber / description
      Added value: +"Its serial number, for warranty claims and insurance"
    • addedInput schema / properties / tags / description
      Added value: +"Tag names; new ones are created. When updating, the full new list"
    • addedInput schema / properties / templateId / description
      Added value: +"The item template it's made from (list_categories), whose fields it then has"
    • addedInput schema / properties / usageUnit / description
      Added value: +"What its counter measures, for maintenance by use (a car's miles, a mower's hours)"
    • addedInput schema / properties / valueCents / description
      Added value: +"What one is worth now, in cents — used for the insurance report"
    • addedInput schema / properties / wanted / description
      Added value: +"On the want list: not owned yet — left out of totals, the report, stock and search unless asked for"
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive write, so the safety profile is covered. The description adds real behavioral context beyond them: new tag names are created implicitly, collectionId seeds fields from a template, wanted items are excluded from totals/report/stock/search, and the new item with its id is returned. It stops short of error/failure behavior or what happens on a duplicate name.

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?

Front-loaded with the core action and the dedup rule, then grouped by concern (placement, categorization, pricing, collection/wanted, photo path, return value). It is dense and semi-colon heavy, but nearly every clause carries a distinct decision-relevant fact; a small amount of parenthetical tool-name repetition could be trimmed.

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 31-parameter creation tool with no output schema this covers what an agent most needs: the one required field, dedup avoidance, the id-lookup prerequisites, the wanted/owned lifecycle, and a stated return value. Remaining gaps are minor because the schema itself documents the long-tail fields (serialNumber, disposition, purchaseDate) thoroughly.

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 coverage is 100% and each parameter already carries a rich description, so the baseline is 3. The description does add routing value the schema lacks — telling the agent which sibling tool to call to obtain locationId, categoryId, collectionId and tag context, and reinforcing that prices are in cents and that new tags are auto-created — but it does not explain most of the 31 parameters itself.

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?

Opens with a specific verb+resource ('Adds a new item') and immediately frames it against siblings (search_inventory, update_item, adjust_stock, add_item_from_photo). An agent can tell exactly which of the ~39 tools this is and which it is not.

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?

Explicit when-to-use logic with named alternatives: search first to avoid duplicates, update_item/adjust_stock if it exists, add_item_from_photo for photo origin. Also states the wanted:true → update_item with wanted:false lifecycle, which is a non-obvious workflow rule.

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