Skip to main content
Glama

Odoo MCP by bancada

Run model method

odoo_execute
Destructive

Calls a method of an Odoo model with positional and keyword arguments, for example posting an invoice or confirming a sales order. Returns JSON with model, method and result. When write confirmation is enabled for the account, the method is not called and the result is a pending-action code with a description of the call.

Input Schema

NameRequiredDescriptionDefault
argsNoPositional arguments of the method.
modelYesOdoo model technical name.
kwargsNoKeyword arguments of the method.
methodYesName of the model method to call, e.g. 'action_post'.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / args / description
      Previous value: -"Argumentos posicionales."New value: +"Positional arguments of the method."
    • changedInput schema / properties / kwargs / description
      Previous value: -"Argumentos por nombre."New value: +"Keyword arguments of the method."
    • changedInput schema / properties / method / description
      Previous value: -"Método a llamar, ej. 'action_post'."New value: +"Name of the model method to call, e.g. 'action_post'."
    • changedInput schema / properties / model / description
      Previous value: -"Modelo Odoo."New value: +"Odoo model technical name."
  2. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds real value beyond that: it discloses the return envelope (model, method, result) and, importantly, the pending-action code path when write confirmation is enabled, which the agent could not infer from structured fields. It stops short of stating permission requirements or irreversibility of arbitrary method calls.

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?

Two tight paragraphs, front-loaded with what the tool does, followed by a distinct and non-redundant note on the pending-action outcome. No filler sentences, though the return-value sentence slightly duplicates the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the destructive profile, lowering the burden. Still, for a tool that can invoke any method on any model, the description omits the critical routing guidance against the many specialized siblings and any constraints on which models/methods are permitted, leaving a meaningful gap.

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 description coverage is 100% and already documents args as positional, kwargs as keyword, and method with an example. The description restates the positional/keyword distinction but adds no new semantics such as how args map to Odoo's RPC signature or how kwargs interact with named parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Calls a method of an Odoo model') and gives concrete examples (posting an invoice, confirming a sales order) so the agent knows this is a generic method-invocation escape hatch. However, it never differentiates itself from close siblings such as odoo_confirm, odoo_write, or odoo_create, and its own examples overlap with those siblings' territory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

No statement of when to reach for this generic executor versus the purpose-built siblings (odoo_confirm, odoo_cancel, odoo_write, odoo_create). The examples given actually point toward sibling use cases rather than routing the agent away from them, leaving the choice entirely to inference.

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