Skip to main content
Glama

Update Customer

updateCustomer
DestructiveIdempotent

Update Customer

Partially update a customer by id. Only fields present in the body are changed: email, phone, first_name, last_name, location_slug, and address fields. Phone is stored and normalized to E.164 the same way as POST /customers. Returns 409 when the new email or phone already belongs to a different customer in this project. Updating a customer to its own current email or phone is allowed. To create or match by contact fields without an id, use POST /customers (email first, then phone).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesUnique numeric identifier for the customer.
cityNoCity for the address.
emailNoEmail address for the person or customer.
phoneNoPhone number for the person or customer. Normalized to E.164 when saved, the same way as create/upsert.
stateNoState, province, or region for the address.
address1NoPrimary street address line.
address2NoSecondary street address line, such as suite or apartment.
last_nameNoCustomer last name.
first_nameNoCustomer first name.
postal_codeNoPostal or ZIP code for the address.
location_slugNoSlug of an existing project location. Returns 404 if the slug is not found.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoApplication-level status code returned by this API.
dataNoCustomer record with optional nested entities.
successNoIndicates whether the request completed successfully.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

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 (destructiveHint, idempotentHint) by disclosing partial-update semantics, E.164 phone normalization, the 409 conflict condition and its exception when the value matches the customer's own current data, and the 404 for an unknown location_slug. These are exactly the behavioral traits an agent needs before mutating a record.

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 operation and the partial-update rule, then conflict behavior, then the alternative. Efficient overall, though the leading 'Update Customer' line merely repeats the title field and could be dropped.

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?

An output schema exists so return values need not be described, and the description still covers the failure modes (409, 404) an agent must handle. For an 11-parameter mutation tool this is complete enough to invoke correctly.

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 description coverage is 100%, so the baseline is 3; the description adds real meaning by specifying that only fields present in the body are changed and by enumerating the mutable set (email, phone, name, location_slug, address fields). It does not add format or constraint detail beyond normalization, which the schema already covers for phone.

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 ('Partially update a customer by id') and immediately clarifies the PATCH-style semantics that only body-present fields change. It also names the sibling operation it is not (POST /customers for create/match), so an agent can distinguish it without opening another schema.

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?

Gives a clear routing rule: to create or match by contact fields without an id, use POST /customers (email first, then phone). That is explicit context for choosing between the two. It stops short of addressing the neighboring update siblings (updateCustomerNotes, updateCustomerPhoto, updateCustomerTags), so it is clear but not fully exhaustive.

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