Workflow Tools
Odoo AI MCP Server

Workflow Tools

odoo_action, odoo_files, odoo_report, odoo_transfer, odoo_dashboard — workflow execution, attachments, reports, and data transfer

Workflow Tools

Workflow tools execute business processes, manage file attachments, generate reports, and transfer data in and out of Odoo.


odoo_action

Category: Workflow | Policy: mapped by method name

Executes workflow button methods on Odoo records — the same methods triggered by UI buttons like Confirm, Validate, Post, or Cancel.

Policy mapping: action_* / button_* / do_* prefix → write policy.

Common Workflow Methods

ModelMethodDescription
sale.orderaction_confirmConfirm a quotation
account.moveaction_postPost a journal entry / invoice
stock.pickingbutton_validateValidate a delivery order
purchase.orderbutton_confirmConfirm a purchase order
sale.orderaction_cancelCancel a sale order

Example — Confirm a Sale Order

{
  "name": "odoo_action",
  "arguments": {
    "model": "sale.order",
    "ids": [42],
    "action": "action_confirm"
  }
}

Response:

{
  "success": true,
  "model": "sale.order",
  "action": "action_confirm",
  "target_ids": [42],
  "result": true
}

Discover Mode

Use action: "discover" to list all available methods on a model without executing anything:

{
  "name": "odoo_action",
  "arguments": {
    "model": "sale.order",
    "action": "discover"
  }
}

odoo_files

Category: Workflow | Policy: read or write on parent model

Manages ir.attachment records linked to any Odoo record.

actionPolicyDescription
listreadList all attachments on a record
downloadreadDownload file content (base64)
uploadwriteUpload a new attachment to a record
deletewriteDelete an attachment (goes through approval)

[!NOTE] File size is capped by Max Attachment Bytes (default: 5 MB).

List Attachments

{
  "name": "odoo_files",
  "arguments": {
    "action": "list",
    "model": "sale.order",
    "res_id": 42
  }
}

Upload a File

{
  "name": "odoo_files",
  "arguments": {
    "action": "upload",
    "model": "sale.order",
    "res_id": 42,
    "filename": "signed_contract.pdf",
    "file_content_base64": "JVBERi0xLjQK...",
    "mimetype": "application/pdf"
  }
}

odoo_report

Category: Workflow | Policy: read on report model

Lists and renders QWeb reports as PDF or HTML.

actionDescription
listList all available reports (optionally filtered by model)
renderRender a specific report for given record IDs

[!NOTE] Rendered report size is capped by Max Report Bytes (default: 10 MB).

List Reports for a Model

{
  "name": "odoo_report",
  "arguments": {
    "action": "list",
    "model": "sale.order"
  }
}

Render a Report as PDF

{
  "name": "odoo_report",
  "arguments": {
    "action": "render",
    "report_id": 3,
    "res_ids": [42],
    "output_format": "pdf"
  }
}

The response includes the rendered content as base64 and a download link if MCP Apps is active.


odoo_transfer

Category: Workflow | Policy: read (export) / write (import)

Exports and imports Odoo records using the native export_data and load engine — the same mechanism used by the Odoo UI’s Import/Export feature.

actionDescription
export_dataExport records as CSV/JSON
validate_importDry-run import to check for errors
loadExecute an import and create/update records

[!NOTE] Export is capped by Max Export Rows (default: 5,000).

Export Sale Orders

{
  "name": "odoo_transfer",
  "arguments": {
    "action": "export_data",
    "model": "sale.order",
    "domain": [["state", "=", "sale"]],
    "fields": ["name", "partner_id/name", "amount_total", "date_order"],
    "format": "csv"
  }
}

odoo_dashboard

Category: Workflow | Policy: Admin only

Admin tool to create and manage live Odoo Spreadsheet Dashboards. Dashboards are created under Dashboards → MCP in the Odoo top menu.

actionDescription
createCreate a new dashboard from a spreadsheet definition
updateUpdate an existing dashboard
listList all MCP-created dashboards
{
  "name": "odoo_dashboard",
  "arguments": {
    "action": "create",
    "name": "Sales KPIs — Q3 2026",
    "spreadsheet_data": "..."
  }
}