Skip to main content
Glama

Odoo: Create a credit note

odoo_create_credit_note

Odoo: Reverse a posted invoice with a credit note. Uses the Credit Note window of the invoice. In reverse mode the credit note is a draft prefilled from the original invoice. In reverse_and_new mode it is validated, reconciled with the original and a new draft invoice is opened. If money goes back to the customer, register that payment afterwards. By default you confirm each call; you can switch that off for this tool. Reaches other people: confirm with the user before each call. Needs the user's Cotlet API key with access to this app.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoreverse: a draft credit note you can adjust; reverse_and_new: a validated credit note plus a new draft invoice. Default: reverse.
reasonYesReason shown on the credit note.
invoice_idYesInvoice ID from list_invoices or create_draft_invoice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Goes well beyond the annotations: it discloses that reverse mode yields an editable draft prefilled from the original, that reverse_and_new validates and reconciles with the original, the payment follow-up, the per-call confirmation behavior, and the API key requirement. This is rich context even though annotations already flag openWorld and non-read-only.

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?

Front-loads the core purpose and mode behavior in tight sentences. The trailing sentences on confirmation and API keys are useful but read as standing boilerplate, slightly diluting density.

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?

For a mutation tool with no output schema and full param coverage, it covers mode semantics, side effects, follow-up action, confirmation, and auth needs. Nothing critical for calling it correctly is missing.

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%, so the schema already documents all three parameters including the mode enum. The description restates the mode behavior (draft vs validated plus reconciliation), adding slight meaning, but the baseline 3 is appropriate when the schema does the heavy lifting.

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 (reverse a posted invoice with a credit note) and distinguishes itself from read/create siblings like odoo_get_invoice and odoo_create_draft_invoice. An agent can identify the operation 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.

Usage Guidelines4/5

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

Explains the two operating modes and when each is appropriate (draft-to-adjust vs validated-with-new-draft), plus the follow-up step of registering payment if money is refunded. It lacks an explicit comparison against siblings such as editing the invoice, but the mode-selection guidance is clear.

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