工时表管理服务器

一个用于通过外部API管理Odoo 16工时表的MCP(模型上下文协议)服务器,支持列出、读取、创建、更新和删除工时表条目。

  • by tarpediem
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 tarpediem/odoo-timesheet-mcp

使用说明

Odoo时间表MCP服务器

MCP(模型上下文协议)服务器,用于通过外部API管理Odoo 16时间表。

特性

  • 列出带有筛选功能的时间表条目
  • 阅读详细的时间表信息
  • 创建新的时间表条目
  • 更新现有时间表条目
  • 删除时间表条目

先决条件

  • Node.js 18或更高版本
  • 具有外部API访问权限的Odoo 16实例
  • Odoo API凭据(用户名/密码或API密钥)

安装

npm install
npm run build

配置

复制示例配置文件:

cp config.example.json config.json

编辑 config.json 使用您的Odoo实例详细信息:

{
  "odoo_url": "https://your-instance.odoo.com",
  "odoo_db": "your-database-name",
  "odoo_username": "your-username",
  "odoo_password": "your-password-or-api-key"
}

用法

作为MCP服务器

添加到MCP客户端配置中:

{
  "mcpServers": {
    "odoo-timesheet": {
      "command": "node",
      "args": ["/path/to/odoo-timesheet-mcp/dist/index.js"],
      "env": {
        "ODOO_URL": "https://your-instance.odoo.com",
        "ODOO_DB": "your-database",
        "ODOO_USERNAME": "your-username",
        "ODOO_PASSWORD": "your-password"
      }
    }
  }
}

可用工具

list_时间表

列出带有可选筛选器的时间表条目。

参数:

  • limit (可选):要返回的最大条目数
  • offset (可选):要跳过的条目数
  • employee_id (可选):按员工ID筛选
  • project_id (可选):按项目ID筛选
  • date_from (可选):从日期(YYYY-MM-DD)筛选条目
  • date_to (可选):筛选迄今为止的条目(YYYY-MM-DD)

读取时间表

阅读特定时间表条目的详细信息。

参数:

  • ids:要读取的时间表条目ID数组

创建时间表

创建新的时间表条目。

参数:

  • project_id:项目ID
  • task_id (可选):任务ID
  • name:工作描述
  • unit_amount:工作时间
  • date:日期(YYYY-MM-DD)
  • employee_id (可选):员工ID

update_timesheet

更新现有时间表条目。

参数:

  • ids:要更新的时间表条目ID数组
  • values:具有要更新的字段的对象

删除时间表

删除时间表条目。

参数:

  • ids:要删除的时间表条目ID数组

发展

npm run watch  # Watch mode for development
npm run dev    # Build and run

API 参考

此服务器使用Odoo 16外部API(XML-RPC):https://www.odoo.com/documentation/16.0/developer/reference/external_api.html

使用的主要模型是 account.analytic.line 它表示Odoo中的时间表条目。