Skip to main content
Glama

DripRaven WhatsApp campaigns

add_or_update_contact

Idempotent

Add or update a contact. Idempotent on phone — updates name, tags, and fields if the contact already exists. Phone must be E.164 format (+49171234567). source and external_id enable CRM sync. Set opted_out: false to RE-SUBSCRIBE a contact who previously opted out (only with genuine consent), or true to unsubscribe them; omit it to leave their opt-out status unchanged. If this creates a NEW contact whose tag matches an enabled automation (list_automations), it is queued for that automation's message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
phoneYesE.164 format, e.g. +49171234567
fieldsNoCustom key/value fields
sourceNoe.g. "hubspot", "api"
opted_outNoOmit to leave unchanged; false re-subscribes, true unsubscribes
external_idNoID in the source system

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial context beyond annotations: it names the idempotency key (phone), warns that re-subscribing requires genuine consent, and discloses a side effect (new contact with an automation-matching tag is queued for that automation's message). This side effect is not captured by openWorldHint=false, so the description earns its keep.

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?

Information-dense and front-loaded with the operation and its idempotency key first, followed by parameter guidance and the automation side effect. Every sentence carries weight, though the paragraph is long enough that a break into key behaviors would aid scanning.

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 7-parameter mutation tool with a nested object and no output schema, the description covers the mutation semantics, identity key, and side effects well. It stops short of describing return values or what 'updates fields' implies for unlisted keys, but annotations cover the safety profile.

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?

With 71% schema coverage the baseline is moderate, and the description adds meaning the schema does not fully convey: source/external_id are framed as CRM-sync enablers, and opted_out is fully spelled out with its three states and the consent caveat. It does not clarify the custom fields object beyond what the schema shows.

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 (upsert a contact) and immediately distinguishes the upsert semantics via the idempotency key (phone). An agent can tell this is an add-or-update tool distinct from import_contacts or list_contacts without opening the schema.

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 clear context for conditional behaviors: when opted_out should be set, when to omit it, and the consent precondition for re-subscribing. It references list_automations for the automation-tag path but does not explicitly exclude or compare against siblings like import_contacts for bulk work.

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