mcpField
O
odoo-mcp

odoo-mcp

本地服务
github.com/nicolasramos商业与营销52 周前更新

关于 odoo-mcp

odoo-mcp 是面向 Odoo 18 的 stdio MCP 服务,供希望通过 MCP 客户端查询和操作业务数据的团队使用。它提供经过校验的业务工具、资源发现能力及访问保护。

主要功能

  1. 01搜索、读取、创建和更新记录
  2. 02支持 CRM、销售、会计与项目操作
  3. 03提供模型结构和记录摘要资源
  4. 04Pydantic 校验工具参数
  5. 05模型白名单与敏感写入保护

适用场景

  1. 01查询客户、订单和待付款发票
  2. 02创建销售订单、任务或支持工单
  3. 03检查 Odoo 模型字段及记录上下文

MCP 相关

该服务通过 stdio 连接 MCP 客户端,公开 Odoo 操作工具和用于模型、字段及记录上下文的资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nicolasramos-odoo": {
"command": "uvx",
"args": [
"odoo-18-mcp-server"
],
"env": {
"ODOO_URL": "<ODOO_URL>",
"ODOO_DB": "<ODOO_DB>",
"ODOO_USERNAME": "<ODOO_USERNAME>",
"ODOO_PASSWORD": "<ODOO_PASSWORD>",
"ODOO_MCP_DEFAULT_LIMIT": "<ODOO_MCP_DEFAULT_LIMIT>",
"ODOO_MCP_MAX_LIMIT": "<ODOO_MCP_MAX_LIMIT>"
}
}
}
}
启动命令uvx odoo-18-mcp-server
需要配置的环境变量
ODOO_URLURL of your Odoo instance (e.g., https://yourcompany.odoo.com)
ODOO_DBName of your Odoo database
ODOO_USERNAMEOdoo username for authentication
ODOO_PASSWORD密钥Odoo password for authentication
ODOO_MCP_DEFAULT_LIMITDefault limit for search results (default: 50)
ODOO_MCP_MAX_LIMITMaximum limit for search results (default: 80)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiodoo-18-mcp-server1.0.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

OdooClaw MCP

适用于 Odoo 18、通过 stdio 运行的独立 MCP(Model Context Protocol)服务。

MCP 名称: io.github.nicolasramos/odooclaw-mcp
PyPI 包: odooclaw-mcp
官方 CLI: odooclaw-mcp

同时也会安装向后兼容的别名:

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

快速开始

1) 安装
pip install odooclaw-mcp

从源码安装:

git clone https://github.com/nicolasramos/odooclaw-mcp.git
cd odooclaw-mcp
pip install -e .
2) 配置环境
cp .env.example .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
LOG_LEVEL=INFO
3) 验证并运行
odooclaw-mcp --check-config
odooclaw-mcp

替代方式:

python -m odoo_mcp

MCP 客户端配置(stdio)

{
  "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"
      }
    }
  }
}
工具调用负载约定

通过 MCP 协议调用工具时,参数必须封装在顶层的 payload 对象中。

有效格式:

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

如果省略 payload,验证会失败,并返回类似 Field required: payload 的错误。

范围

  • 129 个用于 Odoo 操作的 MCP 工具(CRUD + 业务操作 + 迁移工作流)
  • 对所有工具负载进行 Pydantic 验证
  • Odoo 18 兼容性辅助工具(customer_rank / supplier_rank / payment_state)
  • 安全防护措施(模型允许列表、禁止字段列表、操作防护、禁用 unlink)
  • 结构化日志记录和审计操作

可用工具

该服务目前提供 129 个 MCP 工具。

注意:下方的分组表格重点介绍常用且价值较高的工具。请使用 MCP list_tools 查看已安装版本的完整实时工具目录。

核心记录操作
工具用途
odoo_search使用 Odoo 域语法搜索允许的模型中的记录。
odoo_read从指定记录 ID 读取选定字段。
odoo_search_read合并搜索和读取,高效获取数据。
odoo_create在允许的模型中创建新记录。
odoo_write更新允许的模型中的现有记录。
odoo_invoke_action调用 Odoo 模型方法,例如 action_* 或 button_*。
odoo_get_record_summary返回简洁易读的记录摘要。
合作伙伴、销售和 CRM
工具用途
odoo_find_partner按名称、VAT 或电子邮件查找客户或供应商。
odoo_get_partner_summary获取合作伙伴概览及实用的业务背景信息。
odoo_find_sale_order按名称、合作伙伴或状态搜索销售订单。
odoo_get_sale_order_summary获取包含订单行的销售订单摘要。
odoo_create_sale_order创建包含产品行的报价单 / 销售订单。
odoo_confirm_sale_order将报价单确认为销售订单。
odoo_create_lead创建 CRM 线索 / 商机。
会计、采购和付款
工具用途
odoo_create_purchase_order根据合作伙伴和订单行数据创建采购订单。
odoo_create_vendor_invoice创建供应商账单。
odoo_find_pending_invoices按照 Odoo 18 的语义查找已过账且待付款的发票或账单。
odoo_get_invoice_summary获取发票或账单的详细摘要。
odoo_register_payment为指定发票登记付款。
项目、活动和 chatter
工具用途
odoo_find_task按名称、项目或阶段搜索项目任务。
odoo_create_task创建新的项目任务。
odoo_update_task更新任务阶段、负责人或截止日期。
odoo_create_activity在记录上安排活动。
odoo_list_pending_activities列出待处理的活动,可按模型或负责人筛选。
odoo_mark_activity_done将活动标记为已完成。
odoo_post_chatter_message在记录上发布 chatter 消息。
odoo_create_activity_summary创建摘要式活动以供后续跟进。
odoo_close_activity_with_reason关闭活动并记录原因。
odoo_log_timesheet为项目或任务记录工时表条目。
支持、合同、库存和实例功能
工具用途
odoo_get_capabilities报告已连接实例中可用的模块和功能。
odoo_create_helpdesk_ticket直接创建帮助台工单。
odoo_create_helpdesk_ticket_from_partner创建关联到合作伙伴的帮助台工单。
odoo_draft_ticket_email根据工单上下文准备支持邮件草稿。
odoo_create_contract_line向合同添加一行。
odoo_replace_contract_line用新行替换现有合同条目。
odoo_close_contract_line根据原因和关闭日期关闭合同条目。
odoo_get_product_stock查看产品的库存数量。
odoo_create_calendar_event创建包含参会者的会议或预约。
自省
工具用途
odoo_get_model_schema查看模型的字段和架构,例如 res.partner 或 account.move。

可用资源

该服务还公开了 5 个 MCP 资源,用于发现和获取上下文:

资源用途
odoo://context/odoo18-fields-referenceOdoo 18 字段参考,涵盖 customer_rank、supplier_rank 和 payment_state 等常见模型/域问题。
odoo://models当前受安全策略允许的模型 JSON 列表。
odoo://model/{model_name}/schema特定 Odoo 模型的技术架构。
odoo://record/{model}/{id}/summary特定记录的 JSON 摘要。
odoo://record/{model}/{id}/chatter_summary特定记录的聊天记录摘要。

防护措施和运行时行为

  • 使用标准 Odoo JSON-RPC 端点;不依赖 OdooClaw 委派。
  • 工具负载在执行前使用 Pydantic 进行验证。
  • 模型访问受服务配置中定义的允许列表限制。
  • 敏感写入字段列入拒绝列表,且禁用 unlink。
  • 搜索类工具使用默认和最大限制(ODOO_MCP_DEFAULT_LIMIT、ODOO_MCP_MAX_LIMIT)。
  • sender_id 被视为审计/上下文元数据;操作以经过身份验证的 Odoo 会话用户身份执行。
  • 部分工具需要安装相应的 Odoo 应用/模块(CRM、Helpdesk、Projects、Contracts、Inventory 等)。

安全模型

该服务使用标准 Odoo JSON-RPC 端点,并以配置的 Odoo 会话用户身份执行操作。

在生产环境中,请使用专用的最小权限 Odoo 账户。

生产环境说明

  • 这是一个 stdio MCP 服务,而非 HTTP API 服务。
  • Docker/Compose 支持主要用于打包或受控运行场景。
  • 在常规用法中,MCP 客户端会直接启动服务进程。
  • 请将 Odoo 凭据保存在环境变量或密钥管理器中。

已知限制

  • 每个 MCP 进程仅支持一个 Odoo 凭据上下文。
  • 身份验证流程目前要求设置 ODOO_DB。
  • 部分工具需要特定的 Odoo 应用/模块(CRM、Helpdesk、Project 等)。
  • 针对 Odoo 18 字段语义设计。

开发

pip install -e .[dev]
ruff check src tests
black --check src tests
mypy src --ignore-missing-imports
pytest tests -v
python -m build
twine check dist/*

文档

许可证

MIT - 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。