Delete contact
delete_contactDelete a contact. Its conversations and their messages go with it and cannot be restored. A contact who is online right now cannot be deleted.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contact_id | Yes |
delete_contactDelete a contact. Its conversations and their messages go with it and cannot be restored. A contact who is online right now cannot be deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| contact_id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered; the description adds genuinely new behavior beyond that — cascade deletion of conversations and messages, irreversibility ('cannot be restored'), and an operational precondition (online contacts cannot be deleted). These are exactly the consequences an agent needs before calling a destructive tool.
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?
Three short sentences, each earning its place: purpose first, then the destructive consequence, then the precondition. No filler, front-loaded with the core action.
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?
For a single-parameter destructive mutation with no output schema, the description covers purpose, cascade effects, irreversibility, and a blocking precondition — near-complete. The only minor gap is not indicating how to source a valid contact_id, which the schema also leaves unstated.
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 0% for the single contact_id parameter and the description says nothing about parameters. The name is largely self-evident, but per the low-coverage rule the description should compensate (e.g., where to obtain the ID) and it does not add any semantic meaning.
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 ('Delete a contact') in the first four words, and the resource ('contact') cleanly separates it from the many sibling delete_* tools (delete_label, delete_macro, delete_team). An agent can identify what it does without opening the schema.
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?
Usage is implied by the verb+resource rather than stated, and no alternative sibling is named (e.g., what to do instead of hard-deleting). The precondition about online contacts is a failure constraint rather than when-to-use guidance, so guidance remains partially inferred.
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.