MCP Apps & Operator Cards
Odoo AI MCP Server

MCP Apps & Operator Cards

Interactive UI cards rendered inside AI clients — browse, summary, approval, report, and dashboard cards

MCP Apps — Operator Cards

MCP Apps is the UI layer of the Odoo AI MCP Server. When certain tools return structured data, the response includes an _meta block containing operator card data that AI clients can render as interactive UI components.

This allows users to browse records, preview reports, and handle approvals directly inside their AI chat interface — without switching to the Odoo browser tab for routine operations.


How Cards Are Triggered

Cards are included in the tool response when either:

  • The tool argument show_ui: true is set (for query/browse cards), or
  • The operation requires human interaction by design (approvals, reports)

The card data is embedded in the tool result’s _meta key alongside the standard content array.


Card Types

Query / Browse Card

Triggered by: odoo_query, odoo_search_read with show_ui: true

Displays a paginated, sortable table of the returned records inside the AI client. Each row is clickable and can launch a Record Summary Card.

{
  "name": "odoo_query",
  "arguments": {
    "action": "search_read",
    "model": "sale.order",
    "domain": [["state", "=", "sale"]],
    "fields": ["name", "partner_id", "amount_total"],
    "show_ui": true
  }
}

Record Summary Card

Triggered by: odoo_get_record_summary (always rendered if the client supports it)

Displays a compact card for a single record with key field values, relational field previews, and a direct link to the record in Odoo.

{
  "name": "odoo_get_record_summary",
  "arguments": {
    "model": "sale.order",
    "record_id": 42,
    "show_ui": true
  }
}

Approval Card

Triggered by: odoo_unlink, odoo_apps (auto — no extra argument needed)

Displayed whenever a destructive operation is queued for approval. The card includes:

  • Operation description (model, record IDs, reason)
  • Approve and Reject buttons
  • Link to the full approval record in Odoo

This card is the primary way users review and act on AI-requested deletions without leaving their chat client.


Report Card

Triggered by: odoo_report with action: render

Displays a card with:

  • Report name and format (PDF/HTML)
  • Download button for the rendered file
  • Preview button (for HTML reports)
  • Record and report metadata
{
  "name": "odoo_report",
  "arguments": {
    "action": "render",
    "report_id": 3,
    "res_ids": [42],
    "output_format": "pdf",
    "show_ui": true
  }
}

Dashboard Card

Triggered by: odoo_dashboard (auto)

Displays a card with:

  • Dashboard name
  • Open in Odoo link (to Dashboards → MCP)
  • Last updated timestamp

_meta Response Structure

The _meta block is embedded in the MCP tool result alongside the content array:

{
  "content": [
    {
      "type": "text",
      "text": "{\"success\": true, \"records\": [...]}"
    }
  ],
  "_meta": {
    "card_type": "browse",
    "model": "sale.order",
    "records": [...],
    "total": 124,
    "fields": ["name", "partner_id", "amount_total"],
    "odoo_url": "https://your-odoo.com/odoo/sales"
  },
  "isError": false
}

[!NOTE] The _meta block is a hint to the AI client — not all clients render it visually. Claude.ai and compatible clients with MCP Apps support will display the interactive card; other clients will fall back to the plain text in content[0].text.


Card Feature Matrix

Card Typeshow_ui RequiredAuto-triggeredInteractive Buttons
Browse / QueryYesNoPaginate, sort, open record
Record SummaryOptionalYes (if client supports)Open in Odoo
ApprovalNoYes (always)Approve, Reject
ReportOptionalYesDownload, Preview
DashboardNoYesOpen in Odoo