Referencia de herramientas¶
El servidor MCP expone 18 herramientas. Todas las operaciones sobre modelos
pasan por la capa de compatibilidad: puedes usar nombres modernos de modelos
y campos, y el servidor los resuelve a lo que exista en la versión destino. Los
campos no disponibles se descartan con una advertencia dropped_fields en lugar
de fallar toda la llamada.
Herramientas de escritura
Cinco herramientas modifican datos: odoo_create, odoo_write,
odoo_unlink, odoo_execute y odoo_translate_set. Están marcadas abajo con
:material-pencil: ESCRIBE. El núcleo público no aplica compuertas de
aprobación (eso vive en una capa de gobernanza privada). Usa un usuario de
mínimo privilegio y revisa cada escritura.
Resumen¶
| Herramienta | Tipo | Qué hace |
|---|---|---|
odoo_search |
lectura | Busca y devuelve ids |
odoo_search_count |
lectura | Cuenta registros |
odoo_read |
lectura | Lee registros por id |
odoo_search_read |
lectura | Busca y lee en una llamada |
odoo_export_records_json |
lectura | Exporta a JSON |
odoo_export_records_csv |
lectura | Exporta a CSV |
odoo_version |
lectura | Versión/edición/despliegue/transporte |
odoo_connections |
lectura | Sesiones activas |
odoo_list_models |
lectura | Lista modelos |
odoo_fields_get |
lectura | Campos de un modelo (cacheado) |
odoo_module_info |
lectura | Estado de un módulo |
odoo_translate_get |
lectura | Lee una traducción |
odoo_report |
lectura | Renderiza un reporte QWeb a base64 |
odoo_create |
escribe | Crea un registro |
odoo_write |
escribe | Actualiza registros |
odoo_unlink |
escribe | Elimina registros |
odoo_execute |
escribe | Llama a cualquier método del modelo |
odoo_translate_set |
escribe | Fija una traducción |
Lectura y consulta¶
odoo_search¶
Busca un modelo y devuelve los ids que coinciden.
| Parámetro | Requerido | Tipo | Notas |
|---|---|---|---|
model |
sí | string | nombre moderno o histórico |
domain |
no | array | dominio de búsqueda de Odoo |
limit / offset / order |
no | — | paginación y orden |
odoo_search_count¶
Cuenta los registros que coinciden con un dominio (sin traer datos).
odoo_read¶
Lee registros por id, opcionalmente limitando los campos.
| Parámetro | Requerido | Tipo |
|---|---|---|
model |
sí | string |
ids |
sí | array de enteros |
fields |
no | array de strings |
odoo_search_read¶
Busca y lee en una sola llamada — la herramienta de consulta principal.
| Parámetro | Requerido | Tipo |
|---|---|---|
model |
sí | string |
domain, fields, limit, offset, order |
no | — |
odoo_search_read {
"model": "account.move",
"domain": [["state","=","posted"]],
"fields": ["name","amount_total","invoice_date"],
"limit": 10, "order": "invoice_date desc"
}
odoo_export_records_json¶
Exporta los registros que coinciden con un dominio como arreglo JSON (solo lectura).
Mismos parámetros que odoo_search_read. Devuelve { model, count, records }.
odoo_export_records_json { "model": "product.template", "fields": ["name","list_price"], "limit": 500 }
odoo_export_records_csv¶
Igual que el anterior pero devuelve texto CSV. Los valores many2one se aplanan a
su nombre visible. Devuelve { model, count, columns, csv }.
odoo_export_records_csv { "model": "res.partner", "domain": [["customer_rank",">",0]], "fields": ["name","email","city"] }
Metadatos e introspección¶
odoo_version¶
Sin parámetros. Devuelve version, raw_version, edition, deployment y el
transport activo.
odoo_connections¶
Sin parámetros. Lista las instancias Odoo con sesión activa en el servidor.
odoo_list_models¶
Lista modelos, opcionalmente filtrados por un fragmento de nombre.
| Parámetro | Requerido | Tipo | Notas |
|---|---|---|---|
like |
no | string | fragmento (case-insensitive) |
limit |
no | integer | default 200 |
odoo_fields_get¶
Devuelve las definiciones de campos de un modelo (cacheado). Acepta nombres históricos o modernos.
| Parámetro | Requerido | Tipo |
|---|---|---|
model |
sí | string |
attributes |
no | array de strings |
odoo_module_info¶
Estado de instalación y metadatos de un módulo por su nombre técnico.
odoo_translate_get¶
Lee el valor de un campo en un idioma específico para un registro.
| Parámetro | Requerido | Tipo | Notas |
|---|---|---|---|
model |
sí | string | |
id |
sí | integer | |
field |
sí | string | |
lang |
sí | string | p. ej. es_MX, en_US, zh_CN |
odoo_report¶
Renderiza una acción de reporte (por report_name) para ciertos ids y devuelve
el documento en base64.
| Parámetro | Requerido | Tipo | Notas |
|---|---|---|---|
report_name |
sí | string | p. ej. account.report_invoice |
ids |
sí | array de enteros |
Escritura :material-pencil:¶
odoo_create :material-pencil: ESCRIBE¶
Crea un registro. Devuelve el nuevo id.
| Parámetro | Requerido | Tipo |
|---|---|---|
model |
sí | string |
values |
sí | object |
odoo_write :material-pencil: ESCRIBE¶
Actualiza registros por id.
| Parámetro | Requerido | Tipo |
|---|---|---|
model |
sí | string |
ids |
sí | array de enteros |
values |
sí | object |
odoo_unlink :material-pencil: ESCRIBE¶
Elimina registros por id.
odoo_execute :material-pencil: ESCRIBE¶
Llama a un método arbitrario del modelo (escape hatch). args/kwargs se
pasan tal cual. No pasa por la resolución de edición, así que úsalo con criterio.
| Parámetro | Requerido | Tipo |
|---|---|---|
model |
sí | string |
method |
sí | string |
args |
no | array |
kwargs |
no | object |
odoo_translate_set :material-pencil: ESCRIBE¶
Fija la traducción de un campo para un idioma. En Odoo 16+ usa la API nativa
update_field_translations; en versiones anteriores escribe el campo bajo el
contexto de idioma. La capa de compatibilidad elige el camino correcto.
| Parámetro | Requerido | Tipo |
|---|---|---|
model |
sí | string |
id |
sí | integer |
field |
sí | string |
lang |
sí | string |
value |
sí | string |
odoo_translate_set { "model": "product.template", "id": 42, "field": "name", "lang": "en_US", "value": "Wireless mouse" }
Para entender cómo se resuelven los nombres entre versiones, ver Compatibilidad entre versiones.