Skip to main content
Glama
voipbin

VoIPbin MCP Server

Official
by voipbin

update_contact_address

Updates a contact's address (phone or email) by contact and address UUIDs, optionally setting it as primary. Cannot change address type or name/detail labels.

Instructions

Update one of a contact's addresses.

Only the arguments you pass are sent.

Two limitations. The address type cannot be changed. The name and detail labels cannot either, and the way they fail matters: the API gateway accepts them and forwards them, but the layer behind it copies only target and is_primary, so a name or detail sent here is DROPPED with a success response. Nothing reports the loss. This tool therefore does not accept them at all, rather than letting them look like they worked. To change any of those, delete the address and add it again with add_contact_address.

Args: contact_id: The UUID of the contact. address_id: The UUID of the address to update. target: The phone number (E.164) or email address. is_primary: Whether this becomes the primary address of its type.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
targetNo
address_idYes
contact_idYes
is_primaryNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses that only supplied arguments are transmitted, that name/detail labels are silently dropped by the API layer behind the gateway with a success response, and that the tool deliberately omits those fields to avoid false success.

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?

The description is front-loaded with the purpose, followed by the key behavior and limitations, then an Args section. Despite its length, every sentence earns its place by explaining a non-obvious silent failure mode that would otherwise cause incorrect agent behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values need not be described. With no annotations, the description supplies the necessary behavioral caveats, alternatives, and parameter details, making it complete enough for correct invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must document the four parameters. It does: contact_id and address_id are UUIDs, target is a phone number in E.164 or an email address, and is_primary controls whether the address becomes the primary one of its type.

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?

The description states a specific verb and resource: 'Update one of a contact's addresses.' It distinguishes this from add_contact_address and delete_contact_address by naming the alternative for changes it cannot make, and it is immediately clear which contact-address operation this is.

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

Usage Guidelines5/5

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

It gives explicit usage constraints, including that only passed arguments are sent, that address type and labels cannot be changed here, and that changing those requires deleting the address and re-adding it via add_contact_address. This names the alternative and the condition under which it should be used.

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