Skip to main content
Glama
Pirainuthal

odoo-mcp-server

by Pirainuthal

Read one Odoo record

read_record
Read-only

Retrieve a single Odoo record by model and record ID, returning all non-binary fields or a specified subset for targeted data access.

Instructions

Read a single record by id (all non-binary fields unless fields is given).

Input Schema

NameRequiredDescriptionDefault
modelYesTechnical model name, e.g. 'res.partner', 'sale.order', 'account.move'.
fieldsNoField names to return. Omit for a compact default set; pass ['*'] for all non-binary fields. Use describe_model to discover field names.
record_idYesThe record id.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description's one behavioral claim — that omitting `fields` returns "all non-binary fields" — conflicts with the schema, which says omitting returns a compact default set and ['*'] is needed for all non-binary fields. That misleading default is a real defect for an agent deciding what to pass.

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?

One short sentence with the core operation front-loaded and no filler. It is arguably too terse given the tool's scope, but nothing in it is wasted.

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 values need no explanation, and the read-only profile is covered by annotations. Still, the field-default discrepancy leaves an agent unsure what a bare call actually returns, which is the one thing this description should have settled.

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 coverage is 100%, so the schema already explains model, record_id and the fields wildcard/default behavior in detail. The description only restates the `fields` behavior, and restates it inaccurately, adding no correct meaning beyond the schema.

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 and resource ("Read a single record by id") and the id-based lookup implicitly separates it from search_records. It never names a sibling tool, so the differentiation is inferred rather than stated.

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?

"by id" implies you must already know the record id, which is a usable usage cue, but there is no explicit when-to-use versus search_records/count_records. The only routing hint ("Use describe_model...") lives in the schema, not the description.

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