8.3 KiB
odoo-mpm-plugin
MPM Odoo ERP plugin for Claude Cowork — connects to mpmedia.odoo.com via XML-RPC with proxy-aware transport.
Version: 0.4.1 Author: Message Point Media Repo: https://git.mpm.to/mpm/odoo-mpm-plugin CoWork Project: CW-003 — Odoo V19 MCP Bridge
Overview
This plugin bridges Claude Cowork to MPM's Odoo ERP instance at mpmedia.odoo.com. It runs a local MCP server (odoo-mpm) via uv that exposes read/write access across 13 modules: Products, Knowledge (with Templates), Contacts, Sales, CRM, Project (full CRUD + milestones + subtasks + chatter + followers + stages + checklists), Helpdesk, Purchase, Inventory, Employees, eLearning, Task Checklists (Cybrosys), and Utilities.
Credentials are personal — each user authenticates with their own Odoo API key, stored securely in the OS keystore (macOS Keychain / Windows Credential Manager / Linux Secret Service). Keys are never written to disk.
Skills
| Skill | What It Does |
|---|---|
odoo |
Full read/write access to MPM's Odoo instance. Triggers on: "in Odoo", "our products", "the knowledge base", "find a contact", "sales order", "opportunity", "project tasks", "helpdesk ticket", "purchase order", "stock", "inventory", "employee", "create a task", "update the ticket", "cancel quotation", "archive", "mark lost", "bulk update", "how many records", "stage id for", "lost reasons", "course", "training", "elearning", "lesson", "slide", "quiz", "enroll", "create project", "archive project", "milestone", "subtask", "add follower", "post a note", "task chatter", "create stage", "checklist", "archive task" |
Tools Reference
| Module | Tools |
|---|---|
| Credentials | setup_odoo_credentials, clear_odoo_credentials |
| Products | search_products, get_product, get_product_stock |
| Knowledge | search_knowledge_articles, get_knowledge_article, create_knowledge_article, update_knowledge_article |
| Knowledge Templates | search_knowledge_templates, get_knowledge_template, list_knowledge_template_categories |
| Contacts | search_contacts, get_contact, create_contact |
| Sales | search_sales_orders, get_sales_order, create_sales_order, cancel_sale_orders, cancel_and_archive_quotations |
| CRM | search_crm_leads, get_crm_lead, create_crm_lead, update_crm_lead, list_crm_stages, mark_crm_lead_lost, list_crm_lost_reasons |
| Project — Core | list_projects, get_project, search_tasks, get_task, create_task, update_task, list_task_stages |
| Project — CRUD | create_project (supports parent_id for sub-projects), update_project, archive_project |
| Project — Milestones | list_milestones, create_milestone, update_milestone |
| Project — Task Chatter | post_task_message, get_task_messages |
| Project — Subtasks | get_task_subtasks, create_subtask |
| Project — Lifecycle | archive_task |
| Project — Followers | add_task_follower, remove_task_follower |
| Project — Stages | create_task_stage, update_task_stage |
| Project — Drive Link | link_drive_document_to_project |
| Project — Checklists | list_checklist_templates, get_task_checklists, add_checklist_to_task, update_checklist_item |
| Helpdesk | search_helpdesk_tickets, get_helpdesk_ticket, create_helpdesk_ticket, update_helpdesk_ticket, list_helpdesk_teams |
| Purchase | search_purchase_orders, get_purchase_order |
| Inventory | search_inventory, get_stock_moves, list_internal_locations |
| Employees | search_employees, get_employee, list_departments |
| eLearning — Courses | search_courses, get_course, create_course, update_course, publish_course |
| eLearning — Slides | list_course_slides, get_slide, create_slide, update_slide, publish_slide, reorder_slides |
| eLearning — Quiz | get_quiz_questions, add_quiz_question, generate_quiz |
| eLearning — Enrollment | get_course_enrollment, enroll_in_course, bulk_enroll, send_course_invitation |
| eLearning — Media | set_course_cover, set_slide_cover, link_drive_document, add_course_resource |
| Utilities | odoo_search, odoo_get_record, odoo_search_read, get_record_count, bulk_update_records, archive_records, get_stage_ids, call_odoo_method |
Task Checklists (Cybrosys projects_task_checklists v19.0.1.0.0)
Models: task.checklist (templates), checklist.item (template items), checklist.item.line (per-task instances).
State values: todo / in_progress / done / cancel — no is_done field.
update_checklist_item uses Odoo action methods so task progress % and chatter update automatically.
Primary use case: phase acceptance criteria on Odoo Implementation project tasks.
Project — Drive Link
link_drive_document_to_project attaches a Google Drive URL to a project.project record as an ir.attachment (type=url). Appears in the project's Attachments panel.
Projects Module (v0.4.1 / v0.4.0)
create_project now accepts parent_id (int) to create sub-projects within a programme hierarchy.
Setup Instructions
Full install guide: MPM Odoo Plugin — Install Guide
Quick summary:
- Install the plugin — Claude Desktop: Settings → Plugins → Add Plugin → paste
https://git.mpm.to/mpm/odoo-mpm-plugin. Or double-click the.pluginfile from the CW-003 Drive folder. - Verify
uvis installed — Runwhich uvin terminal. If missing — Mac/Linux:curl -LsSf https://astral.sh/uv/install.sh | sh. - Restart Claude Desktop — Quit and relaunch.
- Generate a personal Odoo API key — Odoo → Avatar → My Profile → Account Security → API Keys → New API Key → set expiration to No Limit.
- Connect — In CoWork, type "Set up my Odoo credentials".
- Verify — Ask Claude: "List my Odoo projects".
Connection Details
| Field | Value |
|---|---|
| Instance | mpmedia.odoo.com |
| Database | mpmedia-odoo-sh-main-13285275 |
| Transport | stdio via uv |
| Auth | Personal API key in OS keystore (odoo-mpm service) |
| MCP server name | odoo-mpm |
Changelog
v0.4.1 (2026-05-29)
create_projectnow acceptsparent_idfor sub-project hierarchy- New tool:
link_drive_document_to_project— attach Drive URL to project.project as ir.attachment - New Cybrosys checklist tools (4):
list_checklist_templates,get_task_checklists,add_checklist_to_task,update_checklist_item - Built against actual Cybrosys module source (task.checklist / checklist.item / checklist.item.line)
- 97 total tools
v0.4.0 (2026-05-28)
- Full Projects module (15 new tools):
create_project,update_project,archive_project,list_milestones,create_milestone,update_milestone,post_task_message,get_task_messages,get_task_subtasks,create_subtask,archive_task,add_task_follower,remove_task_follower,create_task_stage,update_task_stage - SKILL.md description trimmed to ≤100 words (plugin validator hard limit — documented)
- 92 total tools
v0.3.0 (2026-05-28)
- eLearning module (22 new tools): Courses, Slides, Quiz, Enrollment, Media
v0.2.0 (2026-05-28)
- Sales cancellation safety guard, bulk utilities, CRM lost reasons, Knowledge Templates
v0.1.3 (2026-05-18)
- Knowledge article icon support
v0.1.2 (2026-05-05)
- Initial CoWork registration
Requirements
- uv — Python package and environment manager
mcp[cli]— installed automatically by uv on first runkeyring— installed automatically by uv on first run
Troubleshooting
| Symptom | Fix |
|---|---|
| MCP server won't start | Confirm uv is installed: which uv |
| "Credentials not configured" | Run setup_odoo_credentials |
| Authentication failed | Rotate Odoo API key; run clear_odoo_credentials then setup_odoo_credentials |
| Keychain prompt on first use | Normal — allow it |
cancel_sale_orders refused |
Check order state — only draft/sent allowed |
| Plugin validation failed | Check SKILL.md description word count — must be ≤100 words |