ERPipe is the managed Odoo MCP gateway from the maintainer of erpipe-org/mcp-odoo, formerly tuanle96/mcp-odoo; the Python project remains the self-hosted server.
Odoo is an MCP project maintained in the erpipe-org/mcp-odoo repository. The maintainer describes its purpose as “ERPipe is the managed Odoo MCP gateway from the maintainer of erpipe-org/mcp-odoo, formerly tuanle96/mcp-odoo; the Python project remains the self-hosted server”. Read the project documentation for the complete scope.
The project provides a local client configuration using /opt/homebrew/bin/python3. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.
The example declares ODOO_URL, ODOO_DB, ODOO_USERNAME, ODOO_PASSWORD, ODOO_TRANSPORT. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| list_models | List Odoo model technical names and labels. |
| get_model_fields | Read field metadata for one model. |
| search_records | Run bounded read-only search_read. Smart-field selection when caller omits fields. |
| read_record | Read one record by model and ID. Smart-field selection when caller omits fields. |
| aggregate_records | Server-side groupby/aggregation via formatted_read_group (Odoo 19+) or read_group (16-18). |
| search_employee | Search employees by name. |
| search_holidays | Search leave records by date range. |
| get_odoo_profile | Read server version, user context, transport, database, and installed module summary. |
| schema_catalog | Build a bounded model catalog with optional field metadata. |
| build_domain | Build and validate an Odoo domain from structured conditions. |
| read_attachment | Read an ir.attachment's metadata and size-capped base64 content (ODOO_MCP_MAX_ATTACHMENT_BYTES, default 1 MiB). |
| preview_write | Produce a non-executing approval payload for create, write, or unlink. |
| validate_write | Validate a write payload against trusted live fields_get metadata. |
| execute_approved_write | Execute only a same-session, live-validated, confirmed write when ODOO_MCP_ENABLE_WRITES=1. |
| execute_method | Execute a reviewed model method. Direct create, write, and unlink are blocked. Side-effect methods require an exact allowlist or… |
| chatter_post | Post a chatter message on a mail.thread record. Default mode requires the approval-token preview/execute flow. |
| diagnose_odoo_call | Diagnose a model call without executing it. |
| diagnose_access | Diagnose ACL and record-rule visibility for the current Odoo credential. |
| inspect_model_relationships | Group relationship fields, required fields, and create/write hints. |
| generate_json2_payload | Convert XML-RPC-shaped input into JSON-2 endpoint, headers, and named body. |
| upgrade_risk_report | Surface transport, method, and migration risks across Odoo versions. |
| lookup_model_history | Resolve outdated model names (account.invoice → account.move) against a curated per-version rename catalog. |
| scan_addons_source | Scan local addon source without importing addon code. |
| fit_gap_report | Classify requirements into standard, configuration, Studio, custom module, avoid, or unknown. |
| business_pack_report | Report expected modules, models, and discovery calls for sales, CRM, inventory, accounting, or HR. |
| index_knowledge | Fetch a bounded record slice once and build a local BM25 index (accent-insensitive; data never leaves the machine). |
| search_knowledge | Relevance-ranked free-text search over indexed records with zero further RPC calls. |
| knowledge_stats | Report per-model index sizes and the ODOO_MCP_KNOWLEDGE_MAX_DOCS budget. |
| receivable_payable_aging | Aged AR/AP report bucketed by days overdue (not due / 1-30 / 31-60 / 61-90 / 90+), with per-partner totals. |
| accounting_health_summary | Open receivable/payable item counts plus the draft invoice backlog. |
| submit_async_task | Run an allowlisted long read operation (scan_addons_source, index_knowledge, receivable_payable_aging) on a bounded worker pool. Writes are never accepted. |
| get_async_task | Poll a task's status and result. |
| cancel_async_task | Cancel a pending or running task. |
| list_async_tasks | List live and recently finished tasks. |
| search_across_instances | Search every opted-in instance (or a list/tag selection); rows tagged with _instance, partial results on per-instance failure. |
| aggregate_across_instances | Group/aggregate per instance plus additive grand totals across the fleet. |
| accounting_health_across_instances | AR/AP aging across every client DB with combined buckets — the partner-network sweep. |
| health_check | Report non-secret MCP runtime posture, including rate-limit counters and field-ACL status when enabled. |
| list_instances | List configured Odoo instance names, URLs, databases, transports, and cross-instance tags — never credentials. |
{
"mcpServers": {
"odoo": {
"command": "/opt/homebrew/bin/python3",
"args": [
"-m",
"odoo_mcp"
],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_DB": "your-database",
"ODOO_USERNAME": "your-user",
"ODOO_PASSWORD": "YOUR_ODOO_PASSWORD",
"ODOO_TRANSPORT": "xmlrpc"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
| Variable | Description | Required |
|---|---|---|
| ODOO_URL | Declared in the maintainer’s client configuration. | Check documentation |
| ODOO_DB | Declared in the maintainer’s client configuration. | Check documentation |
| ODOO_USERNAME | Declared in the maintainer’s client configuration. | Check documentation |
| ODOO_PASSWORD | Declared in the maintainer’s client configuration. | Check documentation |
| ODOO_TRANSPORT | Declared in the maintainer’s client configuration. | Check documentation |
Access Stripe billing and payment tools through its MCP server. Connect with OAuth or a supported agent API key and choose the intended account.
Provides access to real-time and historical stock market data for AI assistants through the Model Context Protocol (MCP).
Give your AI assistant a supervised window into your Interactive Brokers account — balances, positions, live quotes and orders.
Automates trading operations on the Zerodha platform using a natural language interface.
Integrates Binance spot and futures trading operations, enabling automated trading strategies.
Retrieves stock market data and provides trading capabilities using the yfinance library.