Skip to main content
Glama

Delete customer

delete_customer
DestructiveIdempotent

Permanently deletes one customer record, chosen by id. Use it to remove a client that was entered by mistake or is no longer needed. It cannot be undone. A customer with a finalized invoice cannot be deleted: the call is rejected and nothing changes, because the debtor number of the record identifies those invoices in export_datev and a recreated record would get a different number. A customer with only drafts, or with no invoices, can be deleted. No invoice is deleted or altered: Invoices and recurring invoice templates keep the recipient details they were created with and only lose their link to the record. Repeating the call deletes nothing further and returns an error. It does not email anyone.

Input Schema

NameRequiredDescriptionDefault
idYesCustomer id, as returned by list_customers

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing irreversibility, the precise rejection rule and its rationale (debtor number anchoring in export_datev), the referential side effect on invoices and recurring templates, and the absence of email side effects. The 'repeating the call deletes nothing further and returns an error' note is consistent with idempotentHint=true (state unchanged) and adds real value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and most sentences carry distinct operational information, but the description runs to eight sentences and includes a marginally relevant closer ('It does not email anyone') plus a lengthy embedded rationale. Slightly tighter phrasing would lose nothing.

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?

Covers preconditions, side effects, repeat-call behavior, and error semantics for a destructive tool with no output schema. The only gap is that it never states what a successful call returns, though for a delete that omission is minor.

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 schema itself explains the id ('as returned by list_customers'), so the description adds nothing beyond 'chosen by id'. Baseline 3 is appropriate when the schema carries the parameter meaning.

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 ('Permanently deletes one customer record') with explicit scope ('one', 'chosen by id'). The domain is clearly separated from siblings like delete_invoice, and the opening sentence alone tells an agent exactly what the tool does.

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?

Gives an explicit when-to-use ('a client that was entered by mistake or is no longer needed') and, more importantly, when-not conditions: customers with finalized invoices are rejected, while those with only drafts or no invoices can be deleted. The eligibility boundary is unambiguous.

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.

Resources