Skip to main content
Glama

Delete Odoo records

aidoo_delete
Destructive

Permanently delete Odoo records by model and IDs. Requires explicit confirmation; consider archiving (setting active=False) when hiding records is sufficient.

Instructions

PERMANENTLY delete records from an Odoo model (unlink). IRREVERSIBLE — there is no undo. Provide 'model' and 'ids'. Requires confirmation (confirmed=true). Prefer archiving via aidoo_write (active=False) when the user only wants to hide records rather than erase them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsNo
modelYes
confirmedNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.9/5.0
Behavior5/5

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

The description goes beyond the destructiveHint annotation by emphasizing that deletion is PERMANENT and IRREVERSIBLE with no undo, and by requiring confirmation (confirmed=true). It also discloses the need to provide 'model' and 'ids'. This adds meaningful behavioral context that the annotation alone does not convey, such as the irreversibility and the confirmation requirement.

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 compact and front-loaded with the most critical information (permanence, irreversibility) before the operational details. Every sentence earns its place: the warning, the required parameters, the confirmation requirement, and the alternative routing. No wasted words.

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?

Given the tool's destructive nature, the description covers all essential context: what it does, what is required, the confirmation flag, and the safer alternative. The output schema exists, so return values need not be described. The description is complete enough for an agent to decide when and how to invoke this tool correctly.

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

Parameters4/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 compensate. It does mention 'model' and 'ids' and the confirmation flag, which covers the key parameters. However, it doesn't explain the exact format of 'ids' (array of integers) or the default behavior when ids is null, but the schema already provides that structure. The description adds the semantic meaning that these parameters are required for a permanent delete operation, which is valuable.

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 ('PERMANENTLY delete'), the resource ('records from an Odoo model'), and the underlying operation ('unlink'). It clearly distinguishes itself from the sibling aidoo_write by explicitly recommending archiving via active=False when deletion is not truly intended. This is a precise, unambiguous purpose statement.

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?

The description explicitly says when to use this tool (when permanently deleting records) and when NOT to use it (when the user only wants to hide records, prefer aidoo_write with active=False). It also names the alternative tool directly. This is exactly the kind of routing guidance an agent needs.

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