Skip to main content
Glama
odoo19-mcp-server

odoo19-mcp-server

by twtrubiks

Read Records

read_records
Read-onlyIdempotent

Retrieve specific Odoo records by model and record IDs, optionally limiting returned fields. Use it to fetch exact ERP data without full searches.

Instructions

Read specific records by their IDs.

Input Schema

NameRequiredDescriptionDefault
idsYesList of record IDs to read
modelYesModel name (e.g., 'res.partner')
fieldsNoFields to return (None = auto-exclude dangerous fields like binary/image/html)

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / fields / description
      Added value: +"Fields to return (None = auto-exclude dangerous fields like binary/image/html)"
    • addedInput schema / properties / ids / description
      Added value: +"List of record IDs to read"
    • addedInput schema / properties / model / description
      Added value: +"Model name (e.g., 'res.partner')"
  2. First observedv1.0.0

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint and idempotentHint annotations already establish the safety profile, and the description is consistent with them. However it adds no behavioral context beyond the annotations — nothing about behavior for non-existent/duplicate IDs, missing models, or the field-exclusion default that the schema mentions.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler or repetition. It is arguably too terse for a tool with three parameters, but it is not padded, so structure and brevity are good.

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

Completeness3/5

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

An output schema exists, so return-value details need not be explained, and the schema fully documents the inputs. Still, this read tool sits among search_records and list_models without any routing guidance, leaving the agent to work out which read variant to pick.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (ids, model, fields) are already self-documented in the schema, including the dangerous-field auto-exclusion behavior of fields. The description adds no parameter-level detail beyond restating that lookup is by ID, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb plus resource plus the selection mechanism ("Read specific records by their IDs"), which implicitly separates it from the batched search_records sibling. It never names the alternative tool explicitly, so differentiation still requires inference from the sibling list.

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

Usage Guidelines3/5

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

The phrase "by their IDs" implies the precondition for using this tool (you already have IDs) versus searching, but there is no explicit when-to-use/when-not statement and no mention of search_records as the alternative path. Usage is inferable rather than stated.

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