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
npm install
npm run build
Configuration
Copy the example configuration file:
cp config.example.json config.json
Edit config.json with your Odoo instance details:
{
"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:
{
"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 returnoffset(optional): Number of entries to skipemployee_id(optional): Filter by employee IDproject_id(optional): Filter by project IDdate_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 IDtask_id(optional): Task IDname: Description of workunit_amount: Hours workeddate: Date (YYYY-MM-DD)employee_id(optional): Employee ID
update_timesheet
Update existing timesheet entries.
Parameters:
ids: Array of timesheet entry IDs to updatevalues: Object with fields to update
delete_timesheet
Delete timesheet entries.
Parameters:
ids: Array of timesheet entry IDs to delete
Development
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.











