Odoo MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ODOO_DB | Yes | Database name | |
| ODOO_URL | Yes | Your Odoo server URL | |
| ODOO_TIMEOUT | No | Connection timeout in seconds | 30 |
| ODOO_PASSWORD | Yes | Password or API key | |
| ODOO_USERNAME | Yes | Login username | |
| ODOO_VERIFY_SSL | No | Whether to verify SSL certificates | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| diagnose_odoo_callC | Diagnose an Odoo model call without executing it |
| generate_json2_payloadB | Build a JSON-2 request preview without network access |
| inspect_model_relationshipsC | Inspect model relationships and required field metadata |
| diagnose_accessB | Diagnose ACL and record-rule visibility for an Odoo model |
| upgrade_risk_reportB | Report Odoo upgrade and JSON-2 migration risks |
| fit_gap_reportB | Classify Odoo requirements into fit/gap implementation buckets |
| get_odoo_profileC | Read a bounded profile of the connected Odoo environment |
| schema_catalogC | Build and cache a bounded Odoo model schema catalog |
| preview_writeA | Preview create, write, or unlink without executing it |
| validate_writeC | Validate a standard write payload against optional fields_get metadata |
| execute_approved_writeC | Execute a previously previewed and confirmed standard write |
| scan_addons_sourceB | Scan local Odoo addon source without importing addon code |
| build_domainB | Build a validated Odoo domain from structured conditions |
| business_pack_reportA | Report expected modules, models, and safe discovery calls for a business pack |
| health_checkA | Report this MCP server's non-secret runtime safety posture |
| execute_methodC | Execute a custom method on an Odoo model |
| list_modelsB | List Odoo models with optional name filtering |
| get_model_fieldsB | Get field metadata for a specific Odoo model |
| search_recordsB | Search Odoo records with read-only search_read |
| read_recordB | Read a single Odoo record by model and ID |
| aggregate_recordsA | Aggregate Odoo records server-side using Postgres groupby/sum/count. Uses formatted_read_group on Odoo 19+ and falls back to read_group. |
| chatter_postA | Post a chatter message on a mail.thread record. Default mode requires an approval token returned from a preview call; set MCP_CHATTER_DIRECT=1 to bypass and post immediately. |
| search_employeeC | Search for employees by name |
| search_holidaysB | Search for holidays within a date range |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| diagnose_failed_odoo_call | Guide an assistant through diagnosing a failed Odoo model call. |
| fit_gap_workshop | Structure an Odoo fit/gap workshop from raw requirements. |
| json2_migration_plan | Plan migration from XML-RPC/JSON-RPC style calls to Odoo JSON-2. |
| safe_write_review | Review a proposed create/write/unlink before execution. |
| custom_module_audit | Guide a local source audit for custom Odoo addons. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_models | List all available models in the Odoo system |
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/tuanle96/mcp-odoo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server