# Odoo HR MCP

> Odoo HR MCP connects your AI agent directly to Odoo ERP's Human Resources module. Manage everything from tracking employee attendance and requesting time off to viewing departmental structure and reviewing expense reports—all without clicking through multiple tabs.

## Overview
- **Category:** human-resources
- **Price:** Free
- **Tags:** employee-management, attendance-tracking, leave-management, expense-reporting, workforce-analytics, onboarding

## Description

Need to manage an entire business operation but hate switching between twenty different browser tabs? This MCP lets your AI client talk directly to Odoo HR. You can query the full employee directory, check who's clocked in right now, or quickly generate a list of open job positions. It handles complex workflows like submitting leave requests and tracking total worked hours based on attendance logs. Whether you need to find an individual contact, verify department headcounts, or review pending expense reports, your agent gets the answer instantly. Because Vinkius hosts this MCP, you connect once from any compatible client—Claude, Cursor, Windsurf, etc.—and get access to all of Odoo's HR tools through natural conversation flow.

## Tools

### odoo_create_leave
Submit a formal time off request for an employee, which enters the standard approval workflow in Odoo.

### odoo_list_attendance
Retrieve detailed records of who clocked in and out, showing total worked hours and attendance history.

### odoo_list_departments
List all departments within the organization along with their managers, parent department structure, and staff count.

### odoo_list_employees
Generate a full employee directory listing names, job titles, work emails, and departmental assignments for everyone.

### odoo_list_expenses
List all employee expense reports, showing the total amount, date, and current approval status.

### odoo_list_jobs
Check for open job positions across departments, viewing recruitment status and vacancy counts.

### odoo_list_leave_types
List all available time off categories (like Sick Leave or Paid Time Off) configured in the HR system.

### odoo_list_leaves
Retrieve records of all leave requests, showing who is out, the dates covered, and the current approval status.

### odoo_search_employees
Find a specific employee by name to quickly get their department, job title, and manager details.

## Prompt Examples

**Prompt:** 
```
Search for leads from the website
```

**Response:** 
```
👥 **CRM Leads — Website**
| Name | Email | Stage | Revenue |
|---|---|---|---|
| Acme Corp | info@acme.com | Qualification | $15,000 |
| Beta Inc | hello@beta.io | Proposition | $8,500 |
```

**Prompt:** 
```
Show recent sales orders
```

**Response:** 
```
📋 **Sales Orders**
| SO# | Customer | Amount | Status |
|---|---|---|---|
| S00042 | Acme Corp | $12,500 | Confirmed |
| S00041 | Beta Inc | $3,200 | Draft |
```

## Capabilities

### Manage Employee Records
Search for specific employees or list the entire workforce directory to retrieve contact details and job roles.

### Track Time and Leave Status
Access current attendance logs, check total worked hours, and submit formal requests for time off on behalf of an employee.

### View Organizational Structure
List all departments in the company, noting department managers, parent structures, and overall headcount.

### Process Financial/HR Reports
Review pending expense reports or list job positions and recruitment statuses for workforce planning.

## Use Cases

### I need the current headcount for Q3 planning.
Instead of running reports on multiple dashboards, I ask my agent to list all employees using odoo_list_employees. It returns a clean data sheet with department and job title, letting me immediately calculate departmental totals.

### The team needs to approve last month's time off.
I ask my agent about upcoming absences. It uses odoo_list_leaves to show all pending requests, allowing the manager to review who is out and when, without visiting the leave management module.

### A new department needs a budget allocated.
I ask my agent for an organizational overview. It calls odoo_list_departments, giving me the structure and manager names, which I can then use to estimate resource allocation.

### We're hiring for three new roles next month.
I need to know where we can hire. My agent runs odoo_list_jobs, showing me exactly how many open recruitments exist and which departments are currently active in the hiring pipeline.

## Benefits

- Stop context switching. Instead of opening the Employee Directory, then the Leave module, and then the Attendance tracker, your agent handles all three steps in one prompt.
- Keep accurate records without manual entry. You can use odoo_list_attendance to see worked hours, and when you need to submit a request using odoo_create_leave, it follows the official approval workflow automatically.
- Get a full organizational picture instantly. Listing departments via odoo_list_departments gives you hierarchy details—who reports to whom and how many people are in each division.
- Streamline reporting tasks. You can pull together data from multiple sources, like listing jobs (odoo_list_jobs) and then checking which department that job belongs to (using odoo_list_employees).
- Cut through paperwork clutter. Reviewing expense reports using odoo_list_expenses means you see the status—Draft, Approved, or Refused—without needing to open individual forms.
- Never lose contact info again. Use odoo_search_employees to find any team member's email and job title in seconds.

## How It Works

The bottom line is you talk to your AI client, and it handles all the necessary clicks inside Odoo for you.

1. Tell your AI agent the HR task you need done, like 'Check Jane Doe's PTO balance.'
2. The MCP translates that request into specific Odoo functions (like listing leaves or searching employees) and runs them against your connected account.
3. Your agent receives a structured list of data—for example, confirming her current leave status and the dates it covers.

## Frequently Asked Questions

**Which Odoo versions are supported?**
This server uses the JSON-RPC protocol, which is compatible with Odoo 14, 15, 16, 17, and 18. Both Odoo Community and Enterprise editions are supported.

**Does it work with Odoo.com (SaaS)?**
Yes! Works with both Odoo.com hosted instances and self-hosted Odoo servers. Just provide your instance URL and API key.

**How do I generate an API Key?**
Go to Settings → Users → select your user → API Keys tab → New API Key. Give it a descriptive name and copy the generated key.