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 分