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 |
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
| 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 |
|---|---|
| data_quality_reportA | Run read-only data-quality checks on one Odoo model: duplicates, missing required values, orphaned references, format anomalies |
| diagnose_odoo_callA | Diagnose an Odoo model call without executing it |
| generate_json2_payloadB | Build a JSON-2 request preview without network access |
| inspect_model_relationshipsB | Inspect model relationships and required field metadata |
| diagnose_accessA | Diagnose ACL and record-rule visibility for an Odoo model |
| upgrade_risk_reportB | Report Odoo upgrade and JSON-2 migration risks |
| analyze_upgrade_logA | Classify Odoo install/update log errors into a migration worklist (no_action / needs_review / needs_script) with fix suggestions |
| lookup_model_historyA | Look up Odoo model rename/removal history by old or new model name (e.g. account.invoice -> account.move) |
| fit_gap_reportC | Classify Odoo requirements into fit/gap implementation buckets |
| scan_addons_sourceA | 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 |
| get_odoo_profileA | Read a bounded profile of the connected Odoo environment |
| schema_catalogA | Build and cache a bounded Odoo model schema catalog |
| health_checkA | Report this MCP server's non-secret runtime safety posture |
| list_instancesA | List configured Odoo instance names without credentials |
| list_modelsC | List Odoo models with optional name filtering |
| get_model_fieldsB | Get field metadata for a specific Odoo model |
| search_recordsC | Search Odoo records with read-only search_read; optional free-text |
| read_recordC | Read a single Odoo record by model and ID |
| read_attachmentB | Read an ir.attachment's metadata and size-capped base64 content |
| aggregate_recordsB | Aggregate Odoo records server-side using Postgres groupby/sum/count. Uses formatted_read_group on Odoo 19+ and read_group on earlier versions. |
| search_employeeB | Search for employees by name |
| search_holidaysA | Search for holidays within a date range |
| preview_writeA | Preview create, write, or unlink without executing it |
| validate_writeB | Validate a standard write payload against optional fields_get metadata |
| execute_approved_writeC | Execute a previously previewed and confirmed standard write |
| 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. |
| execute_methodC | Execute a custom method on an Odoo model |
| index_knowledgeB | Fetch a bounded slice of records and build a local BM25 knowledge index |
| search_knowledgeC | Relevance-ranked local BM25 search over previously indexed records |
| knowledge_statsA | Report local knowledge index sizes and document budget |
| receivable_payable_agingA | Aged receivable/payable report bucketed by days overdue |
| accounting_health_summaryC | Open receivable/payable item counts and draft invoice backlog |
| search_across_instancesA | Read-only search fanned out across configured Odoo instances, merged and attributed |
| aggregate_across_instancesB | Read-only aggregate fanned out across instances with combined grand totals |
| accounting_health_across_instancesC | AR/AP aging fanned out across instances — the partner-network sweep |
| submit_async_taskA | Run an allowlisted long-running read operation in the background |
| get_async_taskA | Poll a background task's status and result |
| cancel_async_taskC | Cancel a pending or running background task |
| list_async_tasksA | List recent background tasks newest-first |
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. |
| invoice_approval_chain | Find, validate, and gated-post draft customer invoices with human checkpoints. |
| po_to_receipt | Three-way match a purchase order against its receipt and vendor bill; flag discrepancies. |
| customer_onboarding | Dedup-check then create a customer with contacts and payment terms via the write gate. |
| expense_claim_review | Review pending expense claims against policy and gated-approve or refuse them. |
| accounting_close_checklist | Read-only month-end close checklist: aging, unreconciled items, draft backlog, lock-date guidance. |
| pre_migration_data_quality | Data-quality gate before an Odoo version upgrade or big import |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_models | List all available models in the Odoo system (default Odoo instance) |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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