MCP tool reference
The thirteen tools Aidoo exposes to your assistant: what each one does, the permission it requires, and whether it is granted by default.
5 min. leestijdBijgewerkt op 7 augustus 2026
Deze pagina is nog niet vertaald naar uw taal en wordt weergegeven in het Engels.
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 | Recht | Standaard |
|---|---|---|
| aidoo_query | query | Ja |
| aidoo_read | read | Ja |
| aidoo_schema | schema | Ja |
| aidoo_report | report | Ja |
| aidoo_print | print | Ja |
| aidoo_create | create | Nee |
| aidoo_write | write | Nee |
| aidoo_delete | delete | Nee |
| aidoo_execute | execute | Nee |
| aidoo_workflow | execute | Nee |
| aidoo_workflow_run | workflow | Nee |
| aidoo_feedback | feedback | Nee |
| aidoo_attach | attach | Nee |
A freshly created API key receives the five read permissions. Everything else must be enabled explicitly under API keys.
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 and has_more, so the assistant knows it is only seeing one page.
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.
It is also the tool that returns hints: your business instructions attached to a model.
aidoo_reportRecht report · standaard actiefAggregates 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.
Write tools
None is granted by default. What bounds them is your key's permissions, not an extra confirmation step, see Writing to Odoo.
aidoo_createRecht create · moet handmatig worden ingeschakeldCreates one or several records. In batch mode, records go out in a single Odoo call, which preserves consistency.
aidoo_writeRecht write · moet handmatig worden ingeschakeldUpdates 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_deleteRecht delete · moet handmatig worden ingeschakeldDeletes permanently: Odoo's unlink. Irreversible, with no recycle bin.
Grant this one with your eyes open
delete is the only permission that destroys information beyond recovery. 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 |
| 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.