Add to list
add_to_listAdd contacts to a list by contact_ids and/or phone_numbers (up to 1,000; numbers must already be contacts).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | List id | |
| contact_ids | No | ||
| phone_numbers | No |
add_to_listAdd contacts to a list by contact_ids and/or phone_numbers (up to 1,000; numbers must already be contacts).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | List id | |
| contact_ids | No | ||
| phone_numbers | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds genuine context beyond them — the 1,000-item batch cap and the requirement that phone numbers resolve to existing contacts — but says nothing about duplicate handling or partial-failure behavior, which matters for a non-idempotent mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, with the constraints packed into a parenthetical. No filler and nothing that could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should ideally say what a successful add returns or what happens to already-present contacts. Annotations carry the safety profile and the schema carries the field types, so what remains missing is duplicate/partial-success semantics — a real gap for a bulk mutation but not a crippling one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only `id` is documented), so the description must compensate, and it does: it establishes that contact_ids and phone_numbers are both optional, mutually combinable selectors, and that the batch is capped at 1,000. It leaves ambiguity about whether the 1,000 limit applies per array or combined, and never documents `id` itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Add contacts to a list") and immediately names the two input channels, so an agent can distinguish it from create_list, update_list, and remove_from_list by name alone. It stops short of explicitly contrasting with the closest sibling (remove_from_list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real prerequisite ("numbers must already be contacts") that determines whether the call will succeed, plus the fact that contact_ids and phone_numbers are combinable. It does not state what to do when a contact is already on the list or point at alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.