Skip to main content
Glama

SlickText MCP by usefulapi

Update a contact

slicktext_update_contact
DestructiveIdempotent

WRITE: change fields of an existing contact (only the fields you pass are sent). opt_in_status can mark a contact unsubscribed or blocked; set it to 'subscribed' ONLY when the person explicitly agreed to receive texts. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. PUT /brands/{brand_id}/contacts/{id}.

Input Schema

NameRequiredDescriptionDefault
zipNo
cityNo
emailNo
stateNo
addressNo
countryNo
languageNoPrimary language code, e.g. "en".
timezoneNoContact time zone (SlickText accepts these four).
birthdateNoBirthday, YYYY-MM-DD.
last_nameNo
contact_idYesThe contact id (a positive integer).
first_nameNo
custom_fieldsNoCustom field values keyed by the field's internal_name (see slicktext_list_custom_fields), e.g. {"favorite_color": "blue"}.
mobile_numberNoNew mobile number.
opt_in_statusNoNew opt-in status. 'subscribed' only with the person's explicit consent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that only passed fields are sent, that changing fields can fire brand workflows which may immediately SEND REAL TEXTS, and it names the triggering events. The annotations only flag destructive/openWorld; the description supplies the actual operational hazard.

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 a 'WRITE:' marker and the partial-update rule, then the risk warning. Dense but every clause carries weight; the trailing PUT path is the only mildly redundant element.

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 15-parameter mutation with no output schema and destructive side effects, it covers write semantics, opt-in rules, and workflow fallout well. The remaining gap is that most of the 15 fields are undocumented in both schema and description, but the high-risk behaviors are adequately surfaced.

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

Parameters3/5

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

Schema description coverage is only 47%, so the description must compensate for the 15 parameters. It adds meaningful semantics for opt_in_status (though the schema already states the consent rule) but says nothing about custom_fields, mobile_number, or the other undocumented fields, leaving much of the coverage gap unfilled.

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 (change fields) and resource (an existing contact), and the word 'existing' implicitly distinguishes it from slicktext_create_contact. It does not name the sibling explicitly, and the PUT endpoint is echoed rather than adding routing value, so it stops short of a 5.

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 real conditional guidance: opt_in_status can unsubscribe/block, and 'subscribed' must only be set with explicit consent. However, it never names an alternative tool or states when to prefer slicktext_create_contact or slicktext_add_contact_to_lists over this one.

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.