Skip to main content
Glama

get_fields

Fetch Odoo model fields and dotted relation paths to build accurate template expressions, including row_path keys for fields used inside table repeaters.

Instructions

Fields of an Odoo model, plus paths: dotted paths one relation deep (partner_id.name, order_line.price_subtotal). A path with in_table belongs inside a table (repeater) bound to that value, where you write it as row_path (e.g. {{ price_subtotal }}).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "model": "<model>"
    },
    "name": "get_fields"
  }
}

Input Schema

NameRequiredDescriptionDefault
modelYes
searchNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden, and it does partially disclose the response structure (fields plus dotted `paths`, plus the `in_table`/`row_path` relationship for repeaters). However, it says nothing about permissions, behavior on an unknown model, error conditions, or how `search` filters results.

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?

It is short, front-loads the returned data, and every sentence relates to the tool's output. The middle sentence is dense with template-repeater jargon, but it is not padding.

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

Completeness2/5

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

There is no output schema and no annotations, and the tool is moderately complex (model lookup plus structured path/repeater metadata). The description partially covers the return shape but leaves the `search` parameter and the `model` format undocumented, which is insufficient for calling it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain both parameters and does not. `model` is only obliquely implied by the opening phrase, and `search` is never mentioned or explained (no indication of what it searches, whether it matches field names, or its default null behavior).

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

Purpose3/5

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

The description names the resource ("Fields of an Odoo model") and adds that it returns `paths`, but it opens with a noun fragment rather than a verb like list/get and never distinguishes itself from siblings such as `list_models` or `get_values`. An agent can guess the purpose but must infer the verb and the boundary against related tools.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus `list_models`, `get_values`, or `search_records`, and no prerequisites or exclusions. The `paths`/`row_path` explanation is about how to consume the output, not about when the tool applies.

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