Skip to main content
Glama

PHP Point of Sale MCP by usefulapi

Update item

phppos_update_item
DestructiveIdempotent

WRITE: change fields of an existing item (for example its price, category or active state); only the fields you pass are sent. Overwrites the current values, and a price change applies to the next sale. Needs a Read/Write API key. The store's 'edit item' webhook, if configured, fires. POST /items/{item_id}.

Input Schema

NameRequiredDescriptionDefault
nameNoItem name.
sizeNoSize.
tagsNoTag names.
item_idYesItem id (find it with phppos_list_items).
cost_priceNoCost price.
is_serviceNoTrue for a service (no stock tracking).
product_idNoProduct id / SKU.
unit_priceNoSelling price.
category_idNoCategory id - see phppos_list_categories.
descriptionNoShort description.
item_numberNoBarcode / item number (UPC).
promo_priceNoPromotional price.
supplier_idNoSupplier person id - see phppos_list_suppliers.
item_inactiveNoTrue to deactivate the item (it can no longer be sold).
reorder_levelNoStock level at which the item shows as low.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses that values are overwritten, that a price change takes effect on the next sale, that a Read/Write API key is required, that the 'edit item' webhook fires, and gives the endpoint. The overwrite and side-effect disclosure meaningfully enriches the destructiveHint=true and openWorldHint=true flags.

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?

Front-loaded with 'WRITE:', then packs semantics, side effects, auth, and endpoint into a few dense clauses with no filler. Every sentence carries information an agent needs.

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 15-parameter mutation tool with no output schema, it covers the mutation model, side effects, and auth. Minor gaps remain: no mention of behavior when item_id is invalid or whether partial updates can conflict with webhook/propagation timing.

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

Parameters4/5

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

Schema coverage is 100%, so per-field meanings are already documented; the description's real contribution is the PATCH-style semantics that only supplied fields are sent, plus the concrete field examples. It doesn't restate parameter-level detail, which is appropriate here.

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 ('change fields of an existing item') and immediately scopes it as a partial update, which cleanly separates it from phppos_create_item and phppos_get_item. The examples of changeable fields (price, category, active state) make the operation concrete.

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

Usage Guidelines4/5

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

'Change fields of an existing item' plus 'only the fields you pass are sent' tells the agent this is the edit path for records that already exist, implying creation belongs elsewhere. It does not explicitly name a when-not alternative, but the existing-vs-new distinction is clear from the phrasing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.