Skip to main content
Glama

Search Odoo records

aidoo_query
Read-onlyIdempotent

Search and read Odoo records using domain filters, with sorting, pagination, and offset-based retrieval to access all matching records.

Instructions

Search and read records from an Odoo model using a domain filter. Returns pagination info (total_count, has_more, next_offset) so you know if more records exist. Supports 'order' for sorting. WARNING: results are paginated (default 80 records). For statistics or aggregations, use aidoo_report instead. If you need ALL records, you MUST loop with offset=next_offset while has_more=true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
modelYes
orderNo
domainYes
fieldsNo
offsetNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool read-only and idempotent, and the description adds valuable behavioral context beyond that: results are paginated with a default of 80, pagination info is returned, and callers must handle next_offset to retrieve all records. This fully discloses the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and every sentence earns its place: purpose, pagination behavior, sorting, and the critical pagination warning. Important operational details are front-loaded and clearly flagged with 'WARNING'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations, schema, and presence of an output schema, the description covers what an agent needs to select and invoke the tool correctly. It explains the default limit, how to paginate through all results, when to prefer aidoo_report, and how sorting works, leaving no critical gap for this read-only query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no per-parameter descriptions (0% coverage), so the description carries the burden. It adds meaning to key parameters: 'domain filter' explains domain, 'order' is tied to sorting, and offset/limit behavior is explained through pagination and looping. It does not fully describe domain syntax or the fields parameter, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Search and read records') on a specific resource ('an Odoo model') with an explicit filtering mechanism ('domain filter'). It also distinguishes itself from aidoo_report by directing statistical or aggregation use cases there. This is clear and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to avoid this tool ('For statistics or aggregations, use aidoo_report instead') and gives concrete pagination guidance for when all records are needed ('MUST loop with offset=next_offset while has_more=true'). This is strong, explicit usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.