Skip to main content
Glama

contacts_edit

Update a contact by ID, changing names, job title, organization, emails, and phones. Add details or replace and remove emails/phones; deletes need confirm and dry runs preview changes.

Instructions

Update a contact by id. Emails and phones are added unless replace_emails / replace_phones is set; replacing with an empty list removes them and requires confirm=true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailsNoEmail addresses to add (or to replace with)
phonesNoPhone numbers to add (or to replace with)
confirmNoRequired for deletes and multi-recipient sends; without it the call only previews
dry_runNoPreview only: report what would happen and change nothing (default false)
job_titleNoNew job title
last_nameNoNew last name
contact_idYesContact ID from contacts_search or contacts_lookup (required)
first_nameNoNew first name
email_labelNoLabel for those emails (default work)
phone_labelNoLabel for those phones (default mobile)
organizationNoNew organization
replace_emailsNoRemove existing emails before adding
replace_phonesNoRemove existing phones before adding

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.8

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose genuinely useful traits absent from the schema: that emails/phones are additive by default, that an empty list plus replace removes them, and that confirm=true is required for that removal. However it omits permissions, reversibility of other field changes, and partial-update behavior for unmentioned fields.

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?

Two tight sentences with the core action ('Update a contact by id') front-loaded before the caveats. Every clause earns its place, though the confirm/preview interaction could be surfaced slightly more cleanly.

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 13-parameter mutation tool with no annotations and no output schema, the description is on the thin side. It covers the tricky delete/preview path but says nothing about partial-update behavior for unmentioned fields, permissions, or failure modes that an agent would need before calling it.

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 coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema lacks: the add-vs-replace interaction between emails/phones and their replace_* flags, plus the empty-list-removal rule requiring confirm. That is real meaning beyond the individual parameter descriptions.

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 (Update) and resource (a contact by id), which cleanly separates it from the sibling mutation tools contacts_add and contacts_remove. It doesn't explicitly name those siblings, but the edit/add/remove triad makes the intent unambiguous.

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?

The description never says when to prefer this over contacts_add or contacts_lookup, nor does it state prerequisites beyond the implicit 'need an id'. It describes mutation semantics (add vs replace) rather than offering any usage routing or exclusions.

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