odoo-timesheet-mcp
by tarpediem
README.md
# Odoo Timesheet MCP Server
An MCP (Model Context Protocol) server for managing Odoo 16 timesheets via the External API.
## Features
- List timesheet entries with filtering
- Read detailed timesheet information
- Create new timesheet entries
- Update existing timesheet entries
- Delete timesheet entries
## Prerequisites
- Node.js 18 or higher
- An Odoo 16 instance with External API access
- Odoo API credentials (username/password or API key)
## Installation
```bash
npm install
npm run build
```
## Configuration
Copy the example configuration file:
```bash
cp config.example.json config.json
```
Edit `config.json` with your Odoo instance details:
```json
{
"odoo_url": "https://your-instance.odoo.com",
"odoo_db": "your-database-name",
"odoo_username": "your-username",
"odoo_password": "your-password-or-api-key"
}
```
## Usage
### As MCP Server
Add to your MCP client configuration:
```json
{
"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"
}
}
}
}
```
### Available Tools
#### list_timesheets
List timesheet entries with optional filters.
Parameters:
- `limit` (optional): Maximum number of entries to return
- `offset` (optional): Number of entries to skip
- `employee_id` (optional): Filter by employee ID
- `project_id` (optional): Filter by project ID
- `date_from` (optional): Filter entries from date (YYYY-MM-DD)
- `date_to` (optional): Filter entries to date (YYYY-MM-DD)
#### read_timesheet
Read detailed information for specific timesheet entries.
Parameters:
- `ids`: Array of timesheet entry IDs to read
#### create_timesheet
Create a new timesheet entry.
Parameters:
- `project_id`: Project ID
- `task_id` (optional): Task ID
- `name`: Description of work
- `unit_amount`: Hours worked
- `date`: Date (YYYY-MM-DD)
- `employee_id` (optional): Employee ID
#### update_timesheet
Update existing timesheet entries.
Parameters:
- `ids`: Array of timesheet entry IDs to update
- `values`: Object with fields to update
#### delete_timesheet
Delete timesheet entries.
Parameters:
- `ids`: Array of timesheet entry IDs to delete
## Development
```bash
npm run watch # Watch mode for development
npm run dev # Build and run
```
## API Reference
This server uses the Odoo 16 External API (XML-RPC): https://www.odoo.com/documentation/16.0/developer/reference/external_api.html
The main model used is `account.analytic.line` which represents timesheet entries in Odoo.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues