# Odoo Project MCP

> Odoo Project connects your AI agent to Odoo's entire project management suite. You can create projects and tasks, list all ongoing work with detailed status reports, track time by logging hours against specific tasks, and update task details—all through natural conversation. It turns complex module switching into simple commands.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** task-tracking, timesheets, resource-allocation, project-planning, milestone-tracking, collaboration

## Description

You don't gotta jump between a dozen tabs just to manage a client gig or log some hours. This agent plugs your AI client straight into Odoo’s project management suite. You handle the whole lifecycle—from setting up the initial record right through logging the final billable hour—all without ever leaving your chat window. It turns complicated module switching into simple talk.

**Managing Your Projects**

You can start by creating a new project record with `odoo_create_project`, specifying the title and linking it to an existing client or partner if you've already got them set up. Need an overview of everything going on? You use `odoo_list_projects` to get a quick summary of all active projects; this list gives you the manager, customer, task count, and date range for every single one.

**Handling Tasks and Deliverables**

When it's time to kick off work, you add new deliverables or tasks using `odoo_create_task`. You specify which user is assigned it and what the hard deadline is. To get a full picture of where everyone stands, you call `odoo_list_tasks`—you get a detailed list showing every task across all projects, including the assignee, its Kanban stage, priority level, progress percentage completed, and due date. If something changes on an existing job, don't sweat it; you can update attributes using `odoo_update_task`. This lets you rename the task, change its priority, or move the scheduled deadline.

**Tracking Time and Billing**

For logging time, you use `odoo_log_timesheet` to record hours spent. You'll need the specific project ID, the associated task ID, how many hours were worked, and a brief description of what you did. To review what got logged in the first place, you run `odoo_list_timesheets`. This generates a full report detailing who worked on what, for which project and task, showing the total hours worked and the date it was logged.

This agent lets your AI client do all that heavy lifting. You're talking natural conversation to manage everything from initial project setup through detailed time tracking. It’s efficient.

## Tools

### odoo_create_project
Creates a new project record in Odoo, specifying the title and optionally linking it to an existing client/partner.

### odoo_create_task
Adds a new deliverable or to-do item to an Odoo project, assigning it to a user and setting a deadline.

### odoo_list_projects
Retrieves a summary of all active projects, including task count, customer, and date range for quick status checks.

### odoo_list_tasks
Lists all project tasks with details like assignee, Kanban stage, priority level, progress percentage, and due date for tracking work status.

### odoo_list_timesheets
Generates a report detailing all logged timesheet entries by employee, project, task, hours worked, and date for billing review.

### odoo_log_timesheet
Records time spent on a specific project task, requiring the project ID, task ID, hours, and a brief description of work done.

### odoo_update_task
Changes specific properties of an existing task, such as renaming it, changing its priority, or moving the deadline.

## 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

### Create Projects
Sets up a new project record in Odoo, optionally linking it to an existing customer or partner.

### List and Overview Projects
Retrieves a list of all active projects, detailing the manager, customer, task count, and date range for each one.

### Create Tasks within Projects
Adds new to-do items or deliverables to an Odoo project, specifying assignments and deadlines.

### List Task Statuses
Gathers a detailed list of tasks across projects, including assignee, Kanban stage, priority, progress percentage, and due date.

### Update Task Details
Changes existing task attributes like the name, priority level, or scheduled deadline in Odoo.

### Log Work Hours (Timesheets)
Records time spent by logging hours against a specific project and associated task.

### Review Timesheet History
Generates a report of all logged timesheet entries, showing who worked on what, for how many hours, and when.

## Use Cases

### Project Kickoff and Task Assignment
A client signs the deal. Instead of opening Odoo and manually creating a project, you tell your agent: 'Create a new project for Acme Corp.' The agent runs `odoo_create_project`. Next, it adds the first three deliverables using `odoo_create_task` with assigned owners and deadlines.

### End-of-Day Time Reconciliation
You finished a deep dive on Client X's billing model. You tell your agent: 'Log 4 hours for the Project X task, detailing the Q3 revenue analysis.' The agent uses `odoo_log_timesheet`, attaching the time directly to the correct task ID and project.

### Mid-Project Status Check
It's Monday morning. You ask your agent: 'What tasks are overdue for Project Y?' The agent runs `odoo_list_tasks` and returns a filtered list showing all items that have passed their deadline, letting you prioritize.

### Client Meeting Follow-up
You just finished talking to a partner about scope creep. You tell your agent: 'Update the main deliverable task in Project Z; change its name and move the deadline by one week.' The agent uses `odoo_update_task`.

## Benefits

- **Centralized Visibility:** Instead of clicking through 5 different tabs to see project status, `odoo_list_tasks` gathers assignee, Kanban stage, progress %, and deadlines into one list view. You get the full picture instantly.
- **Accurate Time Capture:** Logging hours is simple. Use `odoo_log_timesheet` by referencing the task name and estimated time. This ensures billing records are immediately tied to a project and task ID.
- **Project Lifecycle Management:** Don't forget setup steps. You can kick off work using `odoo_create_project`, then build out the required milestones with `odoo_create_task`—all in sequence without leaving your agent chat.
- **Instant Status Updates:** Need to reschedule a key deliverable? Use `odoo_update_task`. This tool lets you change priority or move the deadline instantly, keeping project timelines accurate for everyone.
- **Full Audit Trail:** Review exactly who worked on what and when. Running `odoo_list_timesheets` provides an immediate, comprehensive view of resource allocation across all current projects.

## How It Works

The bottom line is that this system manages state by chaining API calls together—you don't manually track IDs; the agent does it for you.

1. First, prompt your agent to list or create the relevant project using `odoo_list_projects` or `odoo_create_project`. This establishes the core context.
2. Next, request specific actions—like listing tasks (`odoo_list_tasks`) or logging time (`odoo_log_timesheet`). The agent uses the IDs found in the previous step to execute the action.
3. The server returns the structured data (e.g., a list of overdue tasks or the confirmation of logged hours) directly into your chat, letting you take the next action.

## Frequently Asked Questions

**How do I check all my ongoing projects using odoo_list_projects?**
You run `odoo_list_projects`. This returns a summary list that shows the project name, who manages it, and how many tasks are assigned. It's great for getting an immediate overview of your portfolio.

**What do I need to use odoo_log_timesheet?**
You must provide three key pieces of information: the Project ID, the Task ID, and the hours worked (e.g., '4 hours'). You also need a description of the work done.

**Can I update a task deadline with odoo_update_task?**
Yes. To use `odoo_update_task`, you just provide the Task ID and the new date in YYYY-MM-DD format. You can also change its priority or name.

**What if I want to see tasks across multiple projects? Do I need odoo_list_tasks?**
Yes, use `odoo_list_tasks`. If you omit a Project ID, the tool pulls tasks from all projects. This lets you get a complete list of everything that needs attention.

**Is there a way to find leads using this server?**
No. This MCP Server focuses purely on internal Odoo Project Management (tasks, timesheets, projects). For CRM lead searches, you'll need an agent configured for the dedicated CRM tools.

**When I use odoo_create_project, how do I ensure it links to a specific customer or partner?**
You must provide the target customer's `res.partner` ID when calling odoo_create_project. Including this unique identifier ensures the new project is accurately associated with that client record in your Odoo instance.

**When I call odoo_list_tasks, what metrics can I use to gauge overall project progress?**
The list returns several key data points: the kanban stage (e.g., New, In Progress), priority level, and a numerical progress percentage. This gives you an immediate overview of where tasks stand relative to their completion.

**If I need to log time using odoo_log_timesheet, how do I find the required Project and Task IDs?**
First, run odoo_list_projects to get the necessary project ID. Then, use odoo_list_tasks with that specific project ID to retrieve all task records and pinpoint the exact task ID you need for logging.

**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.