Skip to main content
Glama

Emailchef MCP by usefulapi

Update contact

emailchef_update_contact
DestructiveIdempotent

WRITE: change a contact's name, state or custom fields in one list. Only the fields you pass change. Setting the status to ACTIVE re-subscribes someone: only do so with their consent. PUT /contacts/{contact_id}.

Input Schema

NameRequiredDescriptionDefault
statusNo
list_idYesNumeric id (as returned by the list tools).
last_nameNo
contact_idYesNumeric id (as returned by the list tools).
first_nameNo
custom_fieldsNoCustom field values keyed by the field's place_holder (see emailchef_list_custom_fields): a string, or true/false for boolean fields.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructive=true, idempotent=true and write access; the description adds genuinely new behavior: partial-update semantics ("Only the fields you pass change") and the consent requirement for re-activation. It stops short of saying whether the custom_fields object is merged key-by-key or replaced wholesale, which matters for a destructive write.

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 short sentences with zero waste: the write/scope statement comes first, then the partial-update rule, then the risky-value warning. Every sentence carries distinct information.

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 6-parameter destructive write with no output schema, the description covers mutation scope, partial-update semantics and the main hazard. The one remaining ambiguity is merge-vs-replace behavior for the nested custom_fields object, which an agent would have to guess.

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 by naming the mutable surface (name, state, custom fields) and giving the ACTIVE enum value real-world meaning. list_id and contact_id are left to the schema, which already documents them as numeric ids, so the description adds value where the schema is thin.

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 and resource ("change a contact's name, state or custom fields"), scopes it to a single list, and prefixes WRITE to separate it from the many read tools. The PUT endpoint confirms the exact resource path, so an agent can distinguish this from create_contact and unsubscribe_contact without opening schemas.

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 a concrete when-not-to-act rule ("Setting the status to ACTIVE re-subscribes someone: only do so with their consent"), which is real operational guidance. It does not, however, route the agent between this tool and the sibling emailchef_unsubscribe_contact for the UNSUBSCRIBED case, so the alternative-selection gap keeps it below a 5.

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.