Skip to main content
Glama

Add or update a customer

sef_add_customer

Adds or replaces a customer in the local SEF profile by ID, using a preview-then-confirm flow without sending data to SEF.

Instructions

Adds a customer to the local profile (or replaces the one with the same id). Same preview → confirm flow as sef_setup_company. Nothing is sent to SEF.

Input Schema

NameRequiredDescriptionDefault
idYesKratka oznaka kupca, npr. 'acme' (mala slova, cifre, - i _)
mbNo
pibYes
nameYes
emailNo
jbkjsNoSamo za javni sektor: JBKJS, 5 cifara
notesNo
addressYes
unitCodeNo
sendToCirNo
confirmCodeNoKod iz pregleda; šalje se tek kad korisnik potvrdi pregled
vatRegisteredNoDa li je kupac u sistemu PDV-a (podrazumevano: da)
contractNumberNo
paymentDueDaysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior4/5

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

Beyond the annotations, the description discloses the two traits an agent most needs: writes are local (nothing reaches SEF, consistent with openWorldHint=false) and an existing record with the same id is replaced rather than duplicated. It does not say whether omitted optional fields are wiped on replace, which is a real gap for a destructive-overwrite path, and 'replaces' sits in mild tension with idempotentHint=false and destructiveHint=false.

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?

Three short sentences, front-loaded with the action and the replace behavior, with no filler. The preview/confirm reference and the SEF disclaimer each earn their place, though the flow is referenced rather than explained.

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 14-parameter, nested-object mutation with no output schema and thin schema documentation, the description covers the safety and sequencing story but leaves field-level meaning and the replace-wipe behavior unaddressed. It is enough to start the preview/confirm dance correctly, not enough to fill the payload confidently.

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 only 29% across 14 parameters, including a nested address object, so the schema does little to explain fields like pib, mb, unitCode, sendToCir, or paymentDueDays. The description compensates for none of this — its only parameter-adjacent content is the implicit confirmCode step in the preview/confirm flow.

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 and resource ('Adds a customer to the local profile') and adds crucial upsert semantics ('or replaces the one with the same id'). It also scopes the tool as local-only ('Nothing is sent to SEF'), which distinguishes it from the invoice-sending siblings, though it never names an explicit alternative.

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 mention of 'Same preview → confirm flow as sef_setup_company' gives an agent a usable pattern reference and implies the two-step call sequence. However, there is no explicit statement of when to use this versus sef_list_customers, and no prerequisites or exclusions are given.

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