Skip to main content
Glama

Update a contact

contacts_update
Idempotent

Update an existing Google contact by replacing specific fields like emails, phones, or name. Read the contact first with contacts_get to send complete field lists and prevent accidental data loss.

Instructions

Change an existing contact. ⚠️ Each field you name is REPLACED, not merged: passing "emails" with one address removes every other address that contact had. Fields you do not name are left alone. Read the contact first with contacts_get and send back the full list of whichever field you are editing. The current version is re-read before writing, so a change made elsewhere in the meantime cannot be silently overwritten.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesNoFree-text note stored on the contact.
emailsNoEmail addresses, in full. On update this REPLACES the existing list.
phonesNoPhone numbers, in full. On update this REPLACES the existing list.
accountYesConfigured account: the email address, or the alias given at setup.
job_titleNoRole within that organisation.
given_nameNoFirst name.
family_nameNoSurname.
organizationNoCompany or organisation.
resource_nameYesContact id as returned by contacts_search or contacts_list, e.g. "people/c123456".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A5/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description goes far beyond these: it warns that named fields are REPLACED not merged, advises reading the contact first, and explains the optimistic concurrency mechanism. No contradiction with annotations; it adds critical behavioral context.

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?

The description is a single well-organized paragraph, front-loading the critical warning about replacement semantics. Each sentence adds essential value, and there is no redundancy or filler.

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 an update tool with replace semantics, the description covers all key aspects: the replacement warning, the need to read first, the concurrent write protection, and the handling of omitted fields. It does not need to explain the return format (no output schema) and the sibling tools are clear enough. The description is complete for an agent to use it correctly.

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

Parameters5/5

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

Schema coverage is 100% with descriptions for all parameters, but the description adds crucial semantics beyond the schema, particularly the replacement behavior for emails and phones and the 'full list' requirement. This clarifies usage of parameters in a way the schema alone does not.

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 description states 'Change an existing contact' with a specific verb and resource, clearly distinguishing it from siblings like contacts_create and contacts_get. It also mentions the field-level replacement semantics, which differentiates it from a generic update.

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

Usage Guidelines5/5

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

The description explicitly instructs the agent to read the contact first via contacts_get and send back the full list of the field being edited, and warns against the merge pitfall. It also notes the re-read before writing, which guides safe concurrent usage. This is explicit when/how guidance.

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