mcpField
O
odoo

odoo

github.com/marcfargas其他44175 次安装2 天前更新
代码仓库

关于 odoo

odoo 是面向 Odoo 操作与自动化的技能,提供命令行和 TypeScript 库两种使用方式。它覆盖记录管理、模式探索及多个业务模块,并明确区分读取、写入和破坏性操作。

主要功能

  1. 01命令行记录增删改查
  2. 02模型与字段模式探索
  3. 03模块生命周期管理
  4. 04会计、考勤与工时操作
  5. 05TypeScript 客户端库

适用场景

  1. 01通过命令行查找或更新 Odoo 记录
  2. 02在脚本中自动化 Odoo 数据处理
  3. 03检查模型字段及已安装模块
  4. 04执行考勤或工时记录操作

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/marcfargas/odoo-toolbox --skill odoo

安装后在 Claude Code 中输入/odoo确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.env.example
CHANGES_V17.md
LICENSE
base/
connection.md
context-keys.md
crud.md
domains.md
field-types.md
introspection.md
modules.md
multi-company.md
properties.md
search.md
translations.md
urls.md
cli/
config.md
records.md
state.md
mail/
activities.md
chatter.md
discuss.md
modules/
accounting.md
attendance.md
contracts.md
product-configurator.md
timesheets.md
oca/
mis-builder-dev.md
mis-builder.md

详细介绍

/odoo

Odoo ERP 集成。两种使用方式:CLI(适用于大多数任务,速度最快)和 库(适用于脚本和自动化)。

两种使用 Odoo 的方式

CLI — 适用于大多数任务,速度最快

odoo CLI 可让你搜索、创建、更新和删除记录,无需编写任何代码。

# 1. Verify connection (always do this first)
odoo config check

# 2. Search records
odoo records search res.partner --fields name,email --limit 5

# 3. Create a record
odoo records create res.partner --data '{"name":"Acme Corp"}' --confirm

# 4. Post a note on a record
odoo mail note crm.lead 42 "Called customer" --confirm
库 — 适用于脚本和自动化
import { createClient } from '@marcfargas/odoo-client';

const client = await createClient();  // reads ODOO_URL, ODOO_DB, ODOO_USER, ODOO_PASSWORD

const partners = await client.searchRead('res.partner', [['is_company', '=', true]], {
  fields: ['name', 'email'],
  limit: 10,
});

await client.mail.postInternalNote('crm.lead', 42, '<p>Called customer.</p>');
await client.modules.isModuleInstalled('sale');

快速入门

步骤 1:配置环境
export ODOO_URL=https://mycompany.odoo.com
export ODOO_DB=mycompany
export ODOO_USER=admin
export ODOO_PASSWORD=yourpassword
步骤 2:验证连接
odoo config check
# ✓ Connected to https://mycompany.odoo.com (db: mycompany)
#   User: Administrator (admin) [id: 2]
#   Installed modules: 143
步骤 3:探索
# Search for records
odoo records search res.partner --fields name,email --limit 10

# Introspect schema
odoo schema fields crm.lead --type many2one

# Check installed modules
odoo modules list --filter installed --search sale

CLI 退出代码

所有 odoo CLI 命令都使用以下标准退出代码:

Code含义
0成功
1用法错误(标志错误、缺少 --confirm、参数无效)
2身份验证 / 网络错误(凭据错误、无法访问 Odoo)
3未找到
4权限被拒绝
5验证错误(Odoo 拒绝了这些值)
6冲突(例如,已打卡上班)
10部分成功

在脚本中使用:

odoo records get crm.lead 42 || echo "Exit code: $?"

CLI 命令参考

CLI 命令技能文档描述
odoo config check/showcli/config.md验证连接,显示解析后的配置
odoo records search/get/create/write/delete/count/callcli/records.md对任意模型执行通用 CRUD 操作
odoo schema models/fields/describe/codegenbase/introspection.md探索模型和字段
odoo modules list/install/uninstall/upgrade/info/statusbase/modules.md管理 Odoo 模块
odoo url record/portalbase/urls.md生成与版本无关的记录 URL
odoo mail note/postmail/chatter.md在聊天记录中发布备注和消息
odoo attendance clock-in/clock-out/status/listmodules/attendance.md员工上下班打卡
odoo timesheets start/stop/running/log/listmodules/timesheets.md时间跟踪
odoo accounting cash-accounts/cash-balance/posted-moves/trace-recon/days-to-paymodules/accounting.md只读会计查询
odoo state plan/apply/diff ⚠cli/state.md实验性:状态管理

库 API

服务访问器

通过客户端上的惰性 getter 访问特定领域的辅助工具:

访问器CLI 命令描述技能文档
client.mail.*odoo mail在聊天记录中发布备注和消息mail/chatter.md
client.modules.*odoo modules安装、卸载和检查模块base/modules.md
client.urls.*odoo url生成与版本无关的记录 URLbase/urls.md
client.properties.*—安全地操作属性字段base/properties.md
client.cdc.*—更改数据捕获 — 通过 mail.tracking.value 查看字段变更历史modules/cdc.md
client.accounting.*odoo accounting现金查询、对账和合作伙伴解析modules/accounting.md
client.attendance.*odoo attendance上下班打卡、考勤跟踪modules/attendance.md
client.timesheets.*odoo timesheets计时器启动 / 停止、时间记录modules/timesheets.md

核心 CRUD(searchRead、create、write、unlink 等)仍可直接通过 client 使用。

安全模型
操作级别备注
client.search(), searchRead(), read(), searchCount()读取
client.create()写入
client.write()写入
client.unlink()破坏性永久删除
client.call()视情况而定取决于方法 — 请查看各技能文档
client.mail.postInternalNote()写入仅限内部,不会发送电子邮件
client.mail.postOpenMessage()破坏性向关注者发送电子邮件(可能是外部人员)
client.modules.isModuleInstalled()读取
client.modules.installModule()破坏性更改架构,难以回滚
client.modules.uninstallModule()破坏性删除模块数据,无法撤销
client.properties.*写入安全更新属性,可防止数据丢失
client.accounting.*读取所有会计辅助工具均为只读
client.timesheets.logTime(), startTimer(), stopTimer()写入
client.attendance.*写入签到/签退
client.urls.*读取仅构建 URL,不进行 RPC

前置条件(请先阅读)

执行任何 Odoo 操作前,请加载以下基础模块:

  1. base/connection.md — createClient()、身份验证和环境变量
  2. base/field-types.md — Odoo 类型系统(读写不对称性)
  3. base/domains.md — 查询筛选语法

其他模块

根据需要阅读 base/{name}.md 加载模块:

模块CLI 覆盖范围说明
introspectionodoo schema发现模型和字段
crudodoo records创建、读取、更新和删除模式
searchodoo records search搜索和筛选模式
properties—动态用户定义字段
modulesodoo modules模块生命周期管理
urlsodoo url生成与版本无关的记录 URL
multi-companyodoo records search --context多公司上下文、allowed_company_ids 和常见问题
translations—读取和写入字段翻译(Odoo 17+,已移除 ir.translation)
context-keys--context 标志邮件/聊天上下文键:tracking_disable、mail_notrack、mail_create_nolog 等

邮件与消息

Odoo 邮件系统的技能。阅读 mail/{name}.md 加载:

模块CLI 覆盖范围说明
chatterodoo mail在记录上发布消息和备注(client.mail.*)
activities—安排和管理活动/任务
discuss—聊天频道和私信

注意: mail 模块是 Odoo 的基础模块,通常始终处于已安装状态。

模块专属技能

需要安装特定 Odoo 模块的技能。加载前,请确认所需模块已安装。

# CLI: check a module is installed
odoo modules status hr_attendance
// Library: check a module is installed
await client.modules.isModuleInstalled('hr_attendance')

读取下方所示路径以加载:

技能路径CLI 命令所需模块描述
会计modules/accounting.mdodoo accountingaccount会计模式、现金流、对账、损益、验证
合同modules/contracts.md—contract (OCA)定期合同、计费计划、收入预测
考勤modules/attendance.mdodoo attendancehr_attendance签到/签退、出勤跟踪(client.attendance.*)
工时表modules/timesheets.mdodoo timesheetshr_timesheet计时器开始/停止、项目工时记录(client.timesheets.*)
mis-builderoca/mis-builder.md—mis_builder, date_range, report_xlsxMIS Builder——读取、计算、导出报表
mis-builder-devoca/mis-builder-dev.md—mis_builder, date_range, report_xlsxMIS Builder——创建和编辑报表模板
产品配置器modules/product-configurator.md—sale_product_configurator销售明细行中的产品属性和变体——no_variant、price_extra、自定义值

评论

支持 Markdown