MCP tool reference
The tools Aidoo exposes to your assistant: what each one does, the permission it requires, and whether it is granted by default.
7 min readUpdated October 1, 2026
Aidoo exposes your Odoo as tools. The assistant picks one, Aidoo checks it is allowed to use it, then runs the call against your database.
This page is the full inventory. Each tool links to the page that covers it in depth.
The full matrix
| Tool | Permission | Default |
|---|---|---|
| aidoo_query | query | Yes |
| aidoo_read | read | Yes |
| aidoo_schema | schema | Yes |
| aidoo_report | report | Yes |
| aidoo_print | print | Yes |
| aidoo_create | create | No |
| aidoo_write | write | No |
| aidoo_delete | delete | No |
| aidoo_execute | execute | No |
| aidoo_workflow | execute | No |
| aidoo_workflow_run | workflow | No |
| aidoo_feedback | feedback | No |
| aidoo_attach | attach | No |
| aidoo_document | document | No |
A freshly created API key receives the five everyday read permissions: query, read, schema, report and print. The consent screen pre-ticks the same ones when you connect Claude or ChatGPT. Everything else, document included, must be enabled explicitly: under API keys, or by ticking the matching box on the consent screen.
Read tools
They cannot change anything: the tool → Odoo method binding is locked server-side, and aidoo_query can only ever call search_read and search_count.
Searches and reads records. The most used tool, the one behind "which quotations…", "how many customers…", "the list of invoices…".
Parameters: model, domain (the Odoo filter), fields, limit (80 by default), offset, order. It returns the records, but also total_count, has_more and next_offset, so the assistant knows it is only seeing one page and where to resume.
Reads records whose identifiers are already known. More direct than aidoo_query when the assistant has just found an id.
Discovers the shape of your database: the list of models, or the fields of one model with their types and relations. No business data is read. The public equivalent for stock Odoo: the Odoo model explorer, with the fields of every model.
It is also the tool that returns hints: your business instructions attached to a model.
aidoo_reportPermission report · on by defaultAggregates without pulling data. Groups by one or more fields and computes a measure: revenue by month, outstanding by salesperson, quantities by category.
Always prefer it to aidoo_query for totals: Odoo does the maths, and only the results travel.
Generates a PDF through Odoo's QWeb report engine and returns a download link. Invoice, quotation, delivery note, manufacturing order.
It counts as read-only: it produces a document, it changes no record.
aidoo_documentPermission document · must be enabled manuallyReads the content of an Odoo attachment: PDF, image (scans included) or Word document. It returns a transcription and a structured analysis: signed or not, dates, amounts, parties, ticked boxes. This is the tool that answers "is this quotation signed?" without you opening the file.
- Target: a specific attachment, a document from Odoo Documents, or the attachments of a record (the assistant asks you which one when there are several).
- Actions:
extractreads the document,askasks a precise question about a document already read,statusfollows the reading of a long document, processed in the background. - Limits: 30 pages and 20 MB per document. A Word file is read from its text: signature detection is not available for it.
- Cost: 1 credit per block of 20 pages, charged only once per document. Reading the same file again within 30 days, or asking it a question, costs nothing.
Two locks apply: the document permission on the key, and the workspace setting Settings → AI document reading (on by default, changeable by the owner and admins). The file is read under your Odoo identity: the tool only reaches the attachments you can see. The content read is passed to the assistant as data, never as an instruction to follow. Details in Attachments and OCR.
Write tools
None is granted by default. What bounds them is your key's permissions, not an extra confirmation step, see Writing to Odoo.
What they write can be undone for 7 days from Aidoo: creations always, changes and deletions when the snapshot before writes is enabled. The business actions of aidoo_workflow and aidoo_execute cannot be undone.
Creates one or several records. In batch mode, records go out in a single Odoo call, which preserves consistency.
aidoo_writePermission write · must be enabled manuallyUpdates existing records. In batch mode, each group of identifiers gets its own values, and the result details the success or failure of each group.
aidoo_deletePermission delete · must be enabled manuallyDeletes permanently: Odoo's unlink, with no recycle bin. Only Aidoo's "Snapshot before writes" setting can recreate deleted records, with new identifiers, see Undo.
Grant this one with your eyes open
delete is the permission that destroys information: without a snapshot there is no way back, and even with one, linked lines and attachments do not come back. In most deployments it stays off: archiving a record through aidoo_write answers the same need and can be undone.
Triggers an Odoo business action, the buttons on your screens: confirm a quotation, validate an invoice, receive a transfer. Only methods prefixed action_ or button_ are allowed.
Calls an arbitrary Odoo method, for the cases the other tools do not cover. Methods that would duplicate a dedicated tool are blocked (create, write, unlink, read, search_read…), so that one permission cannot be used to bypass another.
It is the most powerful tool, and therefore the one to grant most sparingly.
Specialised tools
Three tools, one shared word
Three tools carry "workflow" in their name and do entirely different things. This is the most common confusion in the whole catalogue.
| Tool | What it runs | Permission |
|---|---|---|
aidoo_workflow | An Odoo button: confirm a quotation, post an invoice. Nothing to do with Aidoo workflows | execute |
aidoo_workflow_list | Nothing. It lists your saved Aidoo workflows | workflow |
aidoo_workflow_run | An Aidoo workflow: the sequence of steps you saved | workflow |
The dividing line: aidoo_workflow acts inside Odoo, the other two act on what you saved in Aidoo.
aidoo_workflow_run
Runs an Aidoo workflow: a sequence of steps saved once, replayed with a sentence, with variables.
A saved workflow can perform operations the individual tools would refuse: you validated it when you created it.
The assistant calls aidoo_workflow_list at the start of a conversation to see what exists, then aidoo_workflow_run to execute the matching one.
Updates a model's hint when you correct the assistant. This is Aidoo's learning mechanism, see Hints and learning.
Requires the feedback permission and the canUpdateHints flag on your member profile.
Sends a file into Odoo without routing it through the AI: the assistant gives you a single-use upload link, you drop the file, Odoo receives it. Also handles vendor bill digitization.
Choosing which permissions to grant
A progression that works
Start read-only for a week. Add create when a concrete need appears. Only open execute for an identified use case, and keep delete closed.
| Use case | Permissions |
|---|---|
| Consultation, reporting, analysis | The five read permissions, by default |
| Assisted data entry (contacts, notes, activities) | + create, write |
| End-to-end processing (confirm, validate) | + execute |
| Reading PDFs and scans (signatures, amounts) | + document |
| Data cleanup, bulk corrections | + delete, temporarily |
Each permission is set per key and per environment: you can allow writes on your test database and refuse them in production.
What the assistant knows before it tries
On startup, aidoo_context returns the list of genuinely available tools. The assistant therefore knows in advance what it cannot do, and says so instead of attempting the operation and failing.
If an action is refused when you expected it to work, check in this order: the key's permission, then the Odoo account's rights, then the blocked models under Security & permissions. For aidoo_document, also check that the AI document reading setting is on.