Skip to main content
Glama

Update contact

keap_update_contact
Destructive

UPDATE an existing contact by id. Provide any of given_name, family_name, email_addresses, phone_numbers, company_id, plus an optional extra object of any other Keap fields (only supplied fields are changed). Keap: PATCH /contacts/{contact_id}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
extraNoAny other Keap fields to merge into the request body verbatim.
company_idNoId of the company to associate the contact with.
contact_idYesThe contact id to update.
given_nameNoThe contact's first name.
family_nameNoThe contact's last name.
phone_numbersNoPhone numbers to set on the contact.
email_addressesNoEmail addresses to set on the contact.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, so the mutation risk is disclosed. The description adds the key behavioral trait that unprovided fields remain unchanged, and it maps the operation to Keap PATCH /contacts/{contact_id}, preventing an agent from assuming a full replace. No contradiction with annotations.

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?

Two concise sentences front-load the core action and then pack the essential behavior and endpoint into a compact second sentence. No wasted words.

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?

Given the tool's moderate complexity (7 params, nested objects, no output schema), the description covers the target, allowed fields, partial-update behavior, and the HTTP endpoint. It omits response shape details, but no output schema exists, and the schema handles parameter documentation.

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 description coverage is 100%, so the baseline is 3. The description adds meaning by explaining that the named fields are the updatable set and, crucially, that only supplied fields are changed—this is not evident from the individual property descriptions. It also hints at how the 'extra' object merges other Keap fields, though this is mostly repeated from the schema.

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 ('UPDATE an existing contact by id') and clarifies partial-update semantics with 'only supplied fields are changed'. This clearly differentiates it from keap_create_contact since it targets an existing contact.

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?

The description makes the usage context clear: update an existing contact by id, and only supplied fields are modified, implying a PATCH-like partial update. It does not explicitly mention alternatives such as keap_create_contact or when a different tool should be used, but the context is sufficient.

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.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a clearly distinct resource and action: list_* tools are separated by entity, get_* tools retrieve individual records, and create_/update_/apply_ tools perform unique mutations. There is no meaningful overlap or ambiguity between tools.

Naming Consistency5/5

All tools consistently use the keap_ prefix followed by a verb_noun pattern, such as list_contacts, get_company, create_task, and update_contact. The naming convention is uniform across all 18 tools.

Tool Count3/5

At 18 tools, the count falls into the borderline 16-25 range and feels somewhat heavy for a single server. Each tool does have a distinct purpose, but the set is larger than ideal and includes many read-only list/get operations.

Completeness3/5

Contacts and tasks have reasonable lifecycle coverage, but most other entities such as opportunities, companies, orders, products, and subscriptions are read-only. Notable operations like removing a tag, updating/deleting tasks, and updating opportunities are missing, creating potential dead ends.