Skip to main content
Glama

Update contact

crm_update_contact

Correct or extend a contact. The relationship-graph fields are human-only. Ordinary fields are open: titles change, confidence firms up, people depart (status=departed — never deleted, CRM-6). Provenance is correctable, never removable (CRM-9). mutual_via, mutual_url and linkedin_path are entered by a person, never an agent — ask your human to fill them in; that is correct behavior, not a limitation to route around. Effects: contact updated.

Input Schema

NameRequiredDescriptionDefault
nameNoCorrecting a name still requires the source to cover it.
emailNoAs publicly listed or personally shared.
notesNo
phoneNoSame rule as email.
titleNo
sourceNoCorrectable, never removable (CRM-9).
statusNodeparted keeps the row and the history.
contact_idYesThe contact, e.g. P-0001.
mutual_urlNoLink to the mutual, from your own account. HUMAN-ONLY: entered by a person, never an agent — do not write this field.
mutual_viaNoWho the mutual connection is. HUMAN-ONLY: entered by a person, never an agent — do not write this field.
linkedin_urlNoThe person's public LinkedIn profile URL.
linkedin_pathNoe.g. "2nd via Alex M." — read off your own LinkedIn. HUMAN-ONLY: entered by a person, never an agent — do not write this field.
confidence_noteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare non-destructive, non-readOnly, non-idempotent. The description goes beyond them with substantive policy: departures set status=departed and never delete the row (CRM-6), and provenance is correctable but never removable (CRM-9) — genuinely useful for an agent deciding whether a call is safe. It does not state whether omitted fields are left untouched, which matters given idempotentHint=false.

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 purpose and effect, and every sentence carries a rule or a constraint; nothing is padding. The rule codes (CRM-6, CRM-9) are cited without definition and the telegraphic phrasing ('confidence firms up') costs a little readability.

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?

There is no output schema, and 'Effects: contact updated' adequately covers the return. However, for a 13-parameter mutation tool the description never says whether the update is partial (omitted fields preserved) or a full replacement — a material omission given idempotentHint=false and the 'Correct or extend' framing.

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 77%, and the description still adds meaning for the highest-risk parameters: it explains the departed semantics, the correctable-but-not-removable rule for source, and reinforces the HUMAN-ONLY constraint on the three relationship-graph fields. Notes, title and confidence_note remain undocumented in both places, but the risky parameters are covered.

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?

Opens with a specific verb+resource ('Correct or extend a contact') and adds a concrete effect line ('Effects: contact updated'), which clearly separates it from crm_add_contact and the read-only crm_get_contact. It does not name those siblings explicitly, so the differentiation is inferable rather than stated.

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?

It sets a clear boundary between what the agent may change ('ordinary fields are open: titles change, confidence firms up, people depart') and what it must not touch (mutual_via, mutual_url, linkedin_path), with an explicit instruction to ask the human. It never mentions the sibling crm_set_path_in, which plausibly covers some of these relationship fields, so alternative routing is left unresolved.

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.