Skip to main content
Glama
Commonpost MCP for Thunderbird

Commonpost MCP for Thunderbird

Update Contact

updateContact
Destructive

Modify an existing Thunderbird contact by ID: only provided fields change, while emails, phones, or addresses replace the full list.

Instructions

Update a contact by id: only passed fields change; emails, phones and addresses replace the whole list

Input Schema

NameRequiredDescriptionDefault
noteNoContact note; may contain multiple lines
emailNoPrimary email address
titleNoJob title
emailsNoAll addresses, replacing the list; primary: the flagged one or the first
phonesNoPhone numbers; replaces the list, [] clears it
birthdayNoBirthday as YYYY-MM-DD or --MM-DD when the year is unknown
lastNameNoLast name
addressesNoPostal addresses; replaces the list, [] clears it
contactIdYesContact UID (from searchContacts results)
firstNameNoFirst name
displayNameNoDisplay name
organizationNoOrganization or company name

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations, the description discloses the two distinct mutation semantics agents most often get wrong: additive/partial field updates and wholesale list replacement for emails, phones and addresses. That explains the destructiveHint=true annotation rather than contradicting it; it stops short of covering failure modes or permission requirements.

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?

A single sentence with two clauses, the identifying key first and the destructive replacement caveat second. Nothing is redundant or padded.

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 destructive mutation with a rich, fully described schema, the description covers the essential contract: what identifies the target and how field values are applied. Error behavior and whether omitted lists are preserved versus the empty-array clear are only inferable, keeping it from a 5.

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 coverage is 100% and the per-property descriptions already state 'replacing the list' and '[] clears it', so the description's list-replacement clause largely restates structured data. Baseline 3 is appropriate for a fully documented 12-parameter schema.

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 and resource plus the keying strategy ('Update a contact by id'), which separates it from searchContacts/getContact/createContact well enough to act on. It does not explicitly name any sibling, but the mutation verb makes the distinction obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'only passed fields change' clarifies the partial-update contract, which is useful context, but there is no explicit guidance on when to use this versus createContact/deleteContact or what to do if the contact does not exist. Usage is implied rather than stated.

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