Skip to main content
Glama

Update customer

update_customer
Destructive

Update fields of an existing customer (cliente). Only the fields you pass are changed. Returns the updated customer's id and name.

Input Schema

NameRequiredDescriptionDefault
nifNo
cityNo
emailNo
notesNointernal notes about the customer
phoneNo
countryNo
email_ccNoAdditional recipients, replaces the whole list. Max 5.
provinceNo
customer_idYes
no_email_ccNoCollective customer: setting it clears the additional recipients and keeps the Zoho sync from refilling them.
postal_codeNo
company_nameNo
contact_nameNo
address_line1No
address_line2No
recipient_typeNokind of recipient, as the user states it; drives the Veri*factu recipient block and Modelo 347/349 assignment
is_public_adminNoTrue if the customer is a Spanish public administration (school, ayuntamiento, university). Enables Facturae/B2G invoicing. Requires the three DIR3 codes below.
dir3_organo_gestorNoDIR3 code of the Órgano Gestor. Provided by the administration.
default_product_groupNoProduct group new invoices of this customer get when create_invoice is called without one. Must be a name from get_product_groups; empty string clears it.
dir3_oficina_contableNoDIR3 code of the Oficina Contable, e.g. L01410950. Provided by the administration.
dir3_unidad_tramitadoraNoDIR3 code of the Unidad Tramitadora. Provided by the administration.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true; the description adds partial-update semantics ('only the fields you pass are changed') and a return shape, which is genuinely useful. However, it does not explain why a field update is destructive (e.g. email_cc replacing the whole list, no_email_cc clearing recipients, empty string clearing default_product_group) or note permission/irreversibility concerns.

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, front-loaded sentences with no filler; the partial-update rule and return value arrive immediately. Slight under-specification rather than verbosity is the issue.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 21-parameter mutation with 43% schema coverage and no output schema, the description is thin: it covers what happens to omitted fields and the response payload, but omits the destructive consequences, required customer_id, and the cross-tool dependencies of several parameters.

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 43%, so the description is expected to compensate, yet it names zero parameters beyond the return fields. Critical semantics for the 21 parameters — recipient_type enum effects, DIR3 requirements tied to is_public_admin, default_product_group needing get_product_groups — are left entirely to the schema.

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?

Specific verb+resource ('Update fields of an existing customer') and the '(cliente)' synonym helps match the Spanish domain term. It implicitly distinguishes itself from create_customer and update_expense, but never names a sibling, so it stops short of a 5.

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

Usage Guidelines2/5

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

No when-to-use / when-not-to-use guidance and no routing to alternatives like create_customer (new records), update_invoice, or get_customer (read-only). The only usage-adjacent content ('only the fields you pass are changed') is a behavioral trait, not selection guidance.

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