Skip to main content
Glama

Add a photo or document to an item

add_photo

Attach a photo or document (receipt, manual, warranty) to an existing inventory item; the vision model reads it and suggests fields to confirm and apply.

Instructions

Attaches a photo — or a receipt, manual or warranty card as kind "document" — to an item that already exists. The vision model reads it in the background; about 20 seconds later get_item shows what it saw and any suggested fields: confirm them with the person before applying them with update_item. To add a new thing from its photo use add_item_from_photo instead. Counts as AI actions when the AI is on.

Input Schema

NameRequiredDescriptionDefault
dataYesThe image (or PDF, for a document) as base64; no data: prefix
kindNophoto: a picture of the thing; document: a receipt, manual or warranty card (photo or PDF)photo
itemIdYesThe item's id, from search_inventory
filenameNoThe file's name, with its extension ("receipt.pdf")photo.jpg

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.1
    • addedInput schema / properties / filename / description
      Added value: +"The file's name, with its extension (\"receipt.pdf\")"
    • addedInput schema / properties / itemId / description
      Added value: +"The item's id, from search_inventory"
    • addedInput schema / properties / kind / description
      Added value: +"photo: a picture of the thing; document: a receipt, manual or warranty card (photo or PDF)"
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only declare readonly=false, destructive=false, openWorld=false; the description adds genuinely new behavior — asynchronous background vision processing, roughly a 20-second latency before results appear, and that suggestions are advisory rather than auto-applied. It also notes the call counts as AI actions when AI is on, which is quota-relevant context absent from the annotations. It does not cover payload size limits or failure behavior for unreadable images.

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?

Four sentences, all load-bearing: purpose first, then the async read-back flow, then the sibling exclusion, then the AI-action billing note. No restatement of the title or filler.

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 four-parameter mutation tool with no output schema, the description covers the key unknowns: that the call returns immediately while analysis is deferred, where the results surface (get_item), and how to commit them (update_item). Nothing an agent needs to invoke it correctly is missing.

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 every property is described, so the schema already carries parameter meaning; the description only reinforces the kind="document" case with concrete examples. It adds no encoding detail, default behavior, or filename semantics beyond what the schema states, so baseline 3 applies.

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?

States a specific verb and resource — attaches a photo or a document (receipt, manual, warranty card) to an item that already exists — and explicitly contrasts with add_item_from_photo for creating a new thing. An agent can distinguish it from the creation sibling without opening either schema.

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?

Gives an explicit alternative for the adjacent intent ("To add a new thing from its photo use add_item_from_photo instead") and lays out the downstream workflow: wait ~20s, read results via get_item, confirm with the person, then apply with update_item. The when-to-use and what-happens-next path is fully spelled out.

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