Tools Overview
Odoo AI MCP Server

Tools Overview

Complete reference for all 16 MCP tools exposed by Odoo AI MCP Server

MCP Tools Overview

The server exposes 16 curated MCP tools via tools/list and tools/call on POST /mcp. All tool calls share the same authorize → execute → audit pipeline.

Tool Dispatch Pipeline

Rendering diagram…

All Tools

ToolCategoryExecutorPolicy ORM MethodDescription
odoo_statusMeta_execute_statusnoneUser identity, companies, model policies, available tools
odoo_discoverData_execute_discoverfields_get / noneInspect models, fields, methods, actions, reports
odoo_queryData_execute_querymapped by actionUnified read: search_read, count, read, read_group, name_search
odoo_search_readData_execute_search_readsearch_readSearch and read records with domain + fields
odoo_search_countData_execute_search_countsearch_countCount records matching a domain
odoo_get_record_summaryData_execute_get_record_summaryreadCompact single-record summary with M2O/O2M formatting
odoo_createData_execute_createcreateCreate a new record
odoo_writeData_execute_writewriteUpdate, archive, or unarchive records
odoo_unlinkData_execute_unlinkunlinkDelete records — always requires approval
odoo_execute_kwData_execute_execute_kwargs.methodCall any mapped public ORM method
odoo_communicationCommunication_execute_communicationmapped by sub_actionChatter notes, messages, activities, subscriptions
odoo_emailCommunication_execute_emailmail.mail / mail.templateSend email, render templates, list templates
odoo_actionWorkflow_execute_actionmethod nameExecute workflow button methods
odoo_filesWorkflow_execute_filesparent model read/writeList, download, upload, delete ir.attachment
odoo_transferWorkflow_execute_transferexport_data / loadExport/import records via Odoo’s native engine
odoo_reportWorkflow_execute_reportreport model readList and render QWeb PDF/HTML reports

Response Shape

Every tools/call response uses this structure regardless of success or failure (HTTP 200 is always returned; errors use isError: true):

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"success\": true, \"model\": \"sale.order\", \"records\": [...]}"
      }
    ],
    "isError": false
  }
}

[!NOTE] Permission denials return HTTP 200 with isError: true in the MCP content — not a JSON-RPC error object. Only pre-execution validation errors (bad JSON, unknown method) return JSON-RPC error objects.

JSON-RPC Error Codes

These codes appear in the JSON-RPC error object for pre-execution failures:

CodeHTTP StatusMeaning
-32700400Invalid JSON in request body
-32000503Gateway inactive (ai_integration.enabled = False)
-32001401Unauthorized — no valid token or session
-32002429Rate limit exceeded
-32601404Unknown JSON-RPC method or tool name
-32602400Invalid params (missing required argument)
-32603500Unhandled server exception

Optional Parameters (All Tools)

ParameterLocationDescription
user_promptarguments or params._metaOriginal user message text — stored in audit log
_meta.clientInfo.nameparams._metaAI client name — logged in audit trail

The client name is also read from the X-Client-Name HTTP header or User-Agent as fallbacks.