Skip to main content
Glama

update_contact

DestructiveIdempotent

Update a contact's information: name, email, city, country, and the workspace's own contact custom fields (custom_fields: key → value, null clears). Call get_contact first to see which custom field keys exist, their types and allowed options. Only the fields you pass are changed.

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": {
      "phone": "<phone>"
    },
    "name": "update_contact"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNoCity
nameNoNew name for the contact
emailNoNew email
phoneYesPhone number of the contact to update
countryNoCountry
custom_fieldsNoThe workspace's own contact custom fields, as an object of field key → value (e.g. {"ficha_cliente": "Cliente desde 2024, prefiere entregas por la mañana"}). Keys are defined by the workspace, so call get_contact first: its "custom_fields" list shows every available key with its type, label, current value and, for select fields, the allowed option values. Value formats by type: text/textarea/phone/email/url → string; number/currency → number; date → "YYYY-MM-DD"; datetime → "YYYY-MM-DD HH:MM"; boolean → true/false; select → one option value; multiselect → array of option values. Pass null (or "") to clear a field. Fields you leave out are not changed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Adds genuinely useful mutation semantics beyond the annotations: 'Only the fields you pass are changed' discloses patch-style partial update, and 'null clears' discloses the destructive path consistent with destructiveHint=true. It does not state what happens when the required phone matches no contact or on validation failure, which is the remaining gap.

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?

Three short sentences, front-loaded with the resource and its fields, then the get_contact prerequisite, then the partial-update guarantee. No filler.

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 6-param nested mutation tool with annotations covering safety profile and no output schema, the description covers field scope, the custom-field discovery step, and partial-update behavior. Only error/not-found behavior and the shape of the response on success are absent, which is minor.

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

Parameters3/5

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

Schema coverage is 100% and the custom_fields property description already documents key→value typing, formats, and null-clearing in detail. The description's parameter content ('null clears', 'only fields you pass are changed') largely restates that, so it earns the baseline rather than above it.

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 ('Update a contact's information') and enumerates the mutable fields, so an agent can immediately distinguish it from create_contact, get_contact and delete_contact in the sibling list.

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 an explicit prerequisite workflow ('Call get_contact first to see which custom field keys exist, their types and allowed options'), which is the main usage trap for custom fields. It does not spell out when to prefer this over create_contact/archive_contact, but those distinctions are near-obvious from the names.

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