Skip to main content
Glama
erpipe-org

Odoo MCP Server

by erpipe-org

schema_catalog

Read-onlyIdempotent

Build and cache a bounded catalog of Odoo model schemas. Filter models by query, technical names, or instance, and optionally include field metadata for quick schema retrieval.

Instructions

Build and cache a bounded Odoo model schema catalog

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum catalog models to return; capped at 500.
queryNoOptional text used to filter catalog models.
modelsNoOptional technical model names to include in the catalog.
refreshNoWhether to bypass and refresh the cached catalog.
instanceNoOptional configured Odoo instance name; uses the default if omitted.
include_fieldsNoWhether to include field metadata for each model.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toolNoReporting tool name.
countNo
errorNoSanitized error message when success is false.
resultNoModel entries; fields included when requested.
successYesFalse when the call failed; see error.
metadata_usedNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed6 schema fields changedv1.2.1
    • addedInput schema / properties / include_fields / description
      Added value: +"Whether to include field metadata for each model."
    • addedInput schema / properties / instance / description
      Added value: +"Optional configured Odoo instance name; uses the default if omitted."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum catalog models to return; capped at 500."
    • addedInput schema / properties / models / description
      Added value: +"Optional technical model names to include in the catalog."
    • addedInput schema / properties / query / description
      Added value: +"Optional text used to filter catalog models."
    • addedInput schema / properties / refresh / description
      Added value: +"Whether to bypass and refresh the cached catalog."
  2. Changed14 schema fields changedv1.1.0
    • addedOutput schema / $defs
      Added value: +{
      +  "ModelSummary": {
      +    "additionalProperties": true,
      +    "description": "One model entry from list_models / schema_catalog.",
      +    "properties": {
      +      "model": {
      +        "description": "Technical model name, e.g. res.partner.",
      +        "title": "Model",
      +        "type": "string"
      +      },
      +      "name": {
      +        "default": "",
      +        "description": "Human display name.",
      +        "title": "Name",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "model"
      +    ],
      +    "title": "ModelSummary",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / additionalProperties
      Added value: +true
    • addedOutput schema / properties / count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Count"
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Sanitized error message when success is false.",
      +  "title": "Error"
      +}
    • addedOutput schema / properties / metadata_used
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Metadata Used"
      +}
    • removedOutput schema / properties / result / additionalProperties
      Removed value: -true
    • addedOutput schema / properties / result / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "$ref": "#/$defs/ModelSummary"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / result / default
      Added value: +null
    • addedOutput schema / properties / result / description
      Added value: +"Model entries; fields included when requested."
    • removedOutput schema / properties / result / type
      Removed value: -"object"
    • addedOutput schema / properties / success
      Added value: +{
      +  "description": "False when the call failed; see error.",
      +  "title": "Success",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / tool
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Reporting tool name.",
      +  "title": "Tool"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "success"
      +]
    • changedOutput schema / title
      Previous value: -"schema_catalogOutput"New value: +"SchemaCatalogResponse"
  3. Changed1 schema field changedv1.0.0
    • addedInput schema / properties / instance
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Instance"
      +}
  4. First observedv0.2.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds value by stating that the tool builds and caches the catalog, implying that it is a read operation that may return cached data, and that it is bounded. This context enriches the understanding beyond annotations.

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 a single, front-loaded sentence with no unnecessary words. Every word contributes to the purpose, making it highly concise and efficient.

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

Completeness4/5

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

Given that an output schema exists and annotations cover safety, the description is mostly complete. However, it does not explain the caching behavior in detail or mention the bounded nature explicitly, which could be helpful for an agent to understand the tool's scope. Still, it is sufficient for a tool with well-documented parameters and schema.

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 the schema documents all parameters fully. The description does not add any additional meaning or constraints beyond what the schema provides, meeting the baseline expectation.

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?

The description clearly states the action ('Build and cache') and the resource ('bounded Odoo model schema catalog'), which is specific and informative. It distinguishes from sibling tools like 'list_models' or 'get_model_fields' by emphasizing caching and boundedness, but does not explicitly contrast with them.

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?

The description gives no guidance on when to use this tool versus alternatives such as 'list_models', 'get_model_fields', or 'search_records'. No usage context, prerequisites, or exclusions are provided.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/erpipe-org/mcp-odoo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server