Skip to main content
Glama

Procurement: Add or update offer

proc_offer_upsert

Record a supplier's price/terms for an item (creates a new version; the old one is kept). Use for terms the user dictates or pastes from a supplier's letter. Stored as UNVERIFIED until a person confirms it in the cabinet; the plan shows it with a warning meanwhile. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.

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": {
      "supplier": "<supplier>",
      "item": "<item>",
      "unit_price": "<unit_price>"
    },
    "name": "proc_offer_upsert"
  }
}

Input Schema

NameRequiredDescriptionDefault
moqNo
itemYesSKU or ERP item id.
noteNoWhere the terms came from.
currencyNoDefault: the supplier's currency.
supplierYesSupplier name or ERP organization id (must already be a supplier in the cabinet).
valid_toNoYYYY-MM-DD
unit_priceYes
lead_time_daysNo
order_multipleNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare it is not read-only and not destructive; the description goes much further, disclosing versioning behaviour, the UNVERIFIED state pending human confirmation, the warning surfaced in the plan, and the full confirmation handshake (status='confirmation_required', action_id, plan_token, write only after confirm_action). That is exactly the context an agent needs to avoid reporting a write that never happened.

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 versioning caveat, then the usage trigger, then the confirmation contract. Sentences are dense and mostly earn their place, though the UNVERIFIED/plan-warning sentence could be tightened without losing information.

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 9-parameter mutation tool with no output schema, the description covers the two things that matter most: nothing is written until confirm_action, and the record stays unverified meanwhile. Given the rich annotation and schema coverage on identity fields, the remaining gap is only in secondary numeric/string parameter formats.

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

Parameters2/5

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

Schema description coverage is 56%, leaving moq, unit_price, lead_time_days, and order_multiple undocumented, and the description adds no meaning for any of them. It spends its words on lifecycle behaviour instead, so an agent must guess at units, formats, and constraints for nearly half the inputs.

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 first clause states a specific verb and resource — recording a supplier's price/terms for an item — and immediately qualifies the semantics with '(creates a new version; the old one is kept)'. That distinguishes it from an in-place update and from read-only siblings such as proc_compare_suppliers or proc_item_explain.

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?

It gives a concrete triggering condition: 'Use for terms the user dictates or pastes from a supplier's letter.' That is enough for an agent to recognize the right moment, but there is no explicit exclusion (e.g. when to prefer a comparison or plan tool instead) and no stated prerequisite about the supplier already existing beyond what the schema says.

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.

Resources