Skip to main content
Glama
Arsel-SA

Arsel MCP Server

Official
by Arsel-SA

Update Contact

update-contact
Destructive

Modify an existing contact's fields and list memberships; omitted fields stay unchanged, null clears a field, and list_ids replaces all lists. Keep an email, phone, or external ID.

Instructions

Update a contact. Omitted fields are unchanged and null clears one, but the contact must keep an email, phone number or external id.

list_ids REPLACES the contact's list memberships: an empty array removes it from every list. To add without removing, use add-contacts-to-list. This can start the organization's active automations, which may send messages.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe contact id.
emailNo
list_idsNoThe complete set of lists the contact should be in.
last_nameNo
first_nameNo
propertiesNoCustom field values to set.
external_idNo
phone_numberNoE.164 format.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover the destructive/idempotent/openWorld profile, and the description adds real behavior beyond them: omitted fields are unchanged, null clears a field, the invariant that an email/phone/external id must remain, and the side effect that automations may fire and send messages. The list_ids REPLACE semantics (empty array removes from all lists) is exactly the kind of non-obvious behavior an agent needs.

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 tightly packed sentences, each earning its place: partial-update semantics first, then the lists replacement rule plus the alternative tool, then the automation side effect. The highest-risk behavior (list replacement, message sending) is surfaced without preamble.

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 a mutation tool with no output schema, the description covers partial-update semantics, field-clearing, validation invariants, replacement semantics, an alternative tool, and the automation side effect. Nothing an agent needs to invoke this safely is missing.

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 50%, and the description compensates meaningfully with the omission/null-clears rule and the required-identifier invariant that the schema doesn't state. It does not explain the custom-field 'properties' object or format expectations for the undescribed fields, so it falls short of full coverage.

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+resource ('Update a contact') and immediately scopes it against siblings by naming add-contacts-to-list and the condition that separates them. An agent can distinguish this from create-contact, get-contact, and the list-membership tools without opening any schema.

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?

Explicitly routes one use case to an alternative ('To add without removing, use add-contacts-to-list'), and warns that the call may start automations that send messages. The when-to-use-this-vs-sibling guidance is concrete rather than implied.

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