Skip to main content
Glama
Pirainuthal

odoo-mcp-server

by Pirainuthal

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ODOO_DBYesOdoo database name
ODOO_URLYesBase URL of the Odoo instance, e.g. https://mycompany.odoo.com
ODOO_API_KEYYesOdoo API key for the configured user (a password also works, but is not recommended)
ODOO_TIMEOUTNoXML-RPC timeout in seconds30
ODOO_USERNAMEYesLogin of the API-key user
ODOO_MCP_MODELSNoComma-separated allowlist of models; globs are allowed, e.g. sale.*. Defaults to all models.
ODOO_MCP_MAX_LIMITNoHard cap on the limit parameter200
ODOO_MCP_ALLOW_WRITENoSet to 1 to register create_record and update_record0
ODOO_MCP_DENY_MODELSNoExtra model denylist on top of the built-in denylist, e.g. hr.*,account.*
ODOO_MCP_ALLOW_DELETENoSet to 1 to register delete_record; requires ODOO_MCP_ALLOW_WRITE=10
ODOO_MCP_DEFAULT_LIMITNoDefault page size when the model does not pass limit50

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_modelsA

List the Odoo models this server can access, optionally filtered by name.

Models blocked by the safety policy are never listed.

describe_modelA

Describe a model's fields (type, label, required, readonly, relation, selection values) and what the current user is allowed to do with it.

Required fields are listed first.

search_recordsA

Search records matching a domain and return selected fields.

Returns the total number of matches, the current page of records and, when more records exist, next_offset for the following page.

read_recordB

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

count_recordsA

Count the records matching a domain (cheap; no data is transferred).

Prompts

Interactive templates invoked by user choice

NameDescription
sales_summarySummarise confirmed sales for a period: totals, top customers, top products.
explore_modelGuided tour of an Odoo model: purpose, key fields and sample records.

Resources

Contextual data attached and managed by the client

NameDescription
server-infoOdoo version, database, user and the active safety settings.

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct role: model discovery, schema description, multi-record search, single-record read, and cheap counting. Although count_records overlaps slightly with search_records' total-match behavior, the explicit cost distinction makes the boundary clear.

Naming Consistency5/5

All tool names follow the same snake_case verb_noun convention: list_models, describe_model, search_records, read_record, count_records. Pluralization is also used predictably for collection vs. single-record operations.

Tool Count5/5

Five tools is a compact, well-scoped set for read-only Odoo data access. Each tool earns its place: discovery, schema introspection, search, single-record read, and count are all non-redundant primitives.

Completeness4/5

The read-only lifecycle is well covered: model listing, field descriptions, paginated search, single-record read, and counting. Write operations are absent, but the safety-policy wording suggests this is intentional; minor gaps include no binary/attachment read or aggregate/group-by support.

Maintenance

ActivityMaintained
ResponsivenessNo issues