Odoo Mcp

io.github.nicolasramos由 GitHub 帳號 nicolasramos 發布v1.0.1更新於 Oct 26, 2026

MCP server for Odoo 18 with 38 business tools

概覽

AI 產生的概覽

本機 MCP 伺服器,將助理連接到 Odoo 18 實例,提供搜尋、讀取與修改客戶、銷售、發票、任務等業務記錄的工具。

可以做什麼
  • 以 Odoo 網域語法在允許的模型中搜尋、讀取與彙整記錄,並檢視模型結構與實例可用能力。
  • 建立與更新記錄,呼叫 action、button 等模型方法。
  • 處理合作夥伴、報價單與銷售訂單、CRM 潛在客戶、採購單、供應商帳單、發票與付款。
  • 管理專案任務、活動、chatter 訊息與工時記錄。
  • 處理客服工單、合約明細、產品庫存數量與行事曆事件。
適用情境
適合需要助理直接操作 Odoo 18 即時業務資料的情境,例如查詢客戶、草擬或確認報價、查看待付發票、更新任務或張貼 chatter 訊息,而不必手動搬移資料。
執行需求
透過 stdio 在本機執行,來自 PyPI 套件 odoo-18-mcp-server(Python)。需設定 ODOO_URL、ODOO_DB、ODOO_USERNAME 與 ODOO_PASSWORD,另可選用 ODOO_MCP_DEFAULT_LIMIT 與 ODOO_MCP_MAX_LIMIT。需要能連線至 Odoo 實例的網路;部分工具需安裝對應的 Odoo 應用程式。
安裝前請注意
伺服器以設定的 Odoo 使用者身分執行,可建立與更新記錄,並觸發確認訂單、登記付款等業務動作。請使用專用的最小權限帳號,並將 ODOO_PASSWORD 存放於環境變數或密鑰管理工具中。刪除操作已被封鎖、敏感欄位已列入黑名單,但寫入仍會變更真實業務資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Odoo Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

OdooClaw MCP

Standalone MCP (Model Context Protocol) server for Odoo 18 over stdio.

MCP name: io.github.nicolasramos/odooclaw-mcp
PyPI package: odooclaw-mcp
Official CLI: odooclaw-mcp

Backward-compatible aliases are also installed:

  • odoo-mcp
  • odoo-mcp-server
  • odoo-18-mcp-server

Quick Start

1) Install

bash
pip install odooclaw-mcp

From source:

bash
git clone https://github.com/nicolasramos/odooclaw-mcp.gitcd odooclaw-mcppip install -e .

2) Configure environment

bash
cp .env.example .env

Required:

env
ODOO_URL=https://yourcompany.odoo.comODOO_DB=your_databaseODOO_USERNAME=your_usernameODOO_PASSWORD=your_password

Optional:

env
ODOO_MCP_DEFAULT_LIMIT=50ODOO_MCP_MAX_LIMIT=80LOG_LEVEL=INFO

3) Validate and run

bash
odooclaw-mcp --check-configodooclaw-mcp

Alternative:

bash
python -m odoo_mcp

MCP Client Configuration (stdio)

json
{  "mcpServers": {    "odoo": {      "command": "odooclaw-mcp",      "env": {        "ODOO_URL": "https://yourcompany.odoo.com",        "ODOO_DB": "your_database",        "ODOO_USERNAME": "your_username",        "ODOO_PASSWORD": "your_password",        "ODOO_MCP_DEFAULT_LIMIT": "50",        "ODOO_MCP_MAX_LIMIT": "80"      }    }  }}

Tool call payload contract

When calling tools through the MCP protocol, arguments must be wrapped in a top-level payload object.

Valid shape:

json
{  "name": "odoo_search",  "arguments": {    "payload": {      "model": "res.partner",      "domain": [["customer_rank", ">", 0]],      "limit": 3    }  }}

If payload is omitted, validation fails with an error equivalent to Field required: payload.

Scope

  • 129 MCP tools for Odoo operations (CRUD + business actions + migration workflows)
  • Pydantic validation for all tool payloads
  • Odoo 18 compatibility helpers (customer_rank / supplier_rank / payment_state)
  • Security guards (model allowlist, denylisted fields, action guard, unlink blocked)
  • Structured logging and audit actions

Available Tools

The server currently exposes 129 MCP tools.

Note: the grouped tables below focus on common/high-value tools. Use MCP list_tools to inspect the full live tool catalog for your installed version.

Core record operations

ToolPurpose
odoo_searchSearch records in an allowed model using Odoo domain syntax.
odoo_readRead selected fields from specific record IDs.
odoo_search_readCombined search + read for efficient retrieval.
odoo_createCreate a new record in an allowed model.
odoo_writeUpdate existing records in an allowed model.
odoo_invoke_actionInvoke an Odoo model method such as action_* or button_*.
odoo_get_record_summaryReturn a compact, human-friendly summary for a record.

Partners, sales, and CRM

ToolPurpose
odoo_find_partnerFind a customer or vendor by name, VAT, or email.
odoo_get_partner_summaryGet a partner overview with useful business context.
odoo_find_sale_orderSearch sale orders by name, partner, or state.
odoo_get_sale_order_summaryRetrieve a sale order summary including lines.
odoo_create_sale_orderCreate a quotation / sale order with product lines.
odoo_confirm_sale_orderConfirm a quotation into a sale order.
odoo_create_leadCreate a CRM lead / opportunity.

Accounting, purchasing, and payments

ToolPurpose
odoo_create_purchase_orderCreate a purchase order from partner and line data.
odoo_create_vendor_invoiceCreate a vendor bill.
odoo_find_pending_invoicesFind posted invoices or bills pending payment using Odoo 18 semantics.
odoo_get_invoice_summaryGet a detailed summary of an invoice or bill.
odoo_register_paymentRegister a payment for a specific invoice.

Projects, activities, and chatter

ToolPurpose
odoo_find_taskSearch project tasks by name, project, or stage.
odoo_create_taskCreate a new project task.
odoo_update_taskUpdate task stage, assignee, or deadline.
odoo_create_activitySchedule an activity on a record.
odoo_list_pending_activitiesList pending activities, optionally filtered by model or assignee.
odoo_mark_activity_doneMark an activity as completed.
odoo_post_chatter_messagePost a chatter message on a record.
odoo_create_activity_summaryCreate a summary-style activity for follow-up.
odoo_close_activity_with_reasonClose an activity and record the reason.
odoo_log_timesheetLog a timesheet entry for a project or task.

Support, contracts, stock, and instance capabilities

ToolPurpose
odoo_get_capabilitiesReport which modules and capabilities are available in the connected instance.
odoo_create_helpdesk_ticketCreate a helpdesk ticket directly.
odoo_create_helpdesk_ticket_from_partnerCreate a helpdesk ticket linked to a partner.
odoo_draft_ticket_emailPrepare a draft support email from a ticket context.
odoo_create_contract_lineAdd a line to a contract.
odoo_replace_contract_lineReplace an existing contract line with a new one.
odoo_close_contract_lineClose a contract line with a reason and close date.
odoo_get_product_stockInspect stock quantities for a product.
odoo_create_calendar_eventCreate a meeting or appointment with attendees.

Introspection

ToolPurpose
odoo_get_model_schemaInspect the fields and schema of a model such as res.partner or account.move.

Available Resources

The server also exposes 5 MCP resources for discovery and context:

ResourcePurpose
odoo://context/odoo18-fields-referenceOdoo 18 field reference for common model/domain pitfalls such as customer_rank, supplier_rank, and payment_state.
odoo://modelsJSON list of models currently allowed by the security policy.
odoo://model/{model_name}/schemaTechnical schema for a specific Odoo model.
odoo://record/{model}/{id}/summaryJSON summary of a specific record.
odoo://record/{model}/{id}/chatter_summarySummary of the chatter history for a specific record.

Guardrails and Runtime Behavior

  • Uses standard Odoo JSON-RPC endpoints; it does not depend on OdooClaw delegation.
  • Tool payloads are validated with Pydantic before execution.
  • Model access is restricted by an allowlist defined in the server configuration.
  • Sensitive write fields are denylisted and unlink is blocked.
  • Search-style tools use default and maximum limits (ODOO_MCP_DEFAULT_LIMIT, ODOO_MCP_MAX_LIMIT).
  • sender_id is treated as audit/context metadata; execution runs as the authenticated Odoo session user.
  • Some tools require the corresponding Odoo apps/modules to be installed (CRM, Helpdesk, Projects, Contracts, Inventory, etc.).

Security Model

The server uses standard Odoo JSON-RPC endpoints and executes operations as the configured Odoo session user.

For production, use a dedicated least-privilege Odoo account.

Production Notes

  • This is a stdio MCP server, not an HTTP API service.
  • Docker/Compose support is mainly for packaging or controlled runtime scenarios.
  • In normal usage, your MCP client launches the server process directly.
  • Keep Odoo credentials in environment variables or a secrets manager.

Known Limitations

  • One Odoo credential context per MCP process.
  • ODOO_DB is currently required by the authentication flow.
  • Some tools require specific Odoo apps/modules (CRM, Helpdesk, Project, etc.).
  • Designed for Odoo 18 field semantics.

Development

bash
pip install -e .[dev]ruff check src testsblack --check src testsmypy src --ignore-missing-importspytest tests -vpython -m buildtwine check dist/*

Docs

License

MIT - see LICENSE.

來源:README.md,提交 828344a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分