diff --git a/README.md b/README.md index 8960705..33eb126 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,102 @@ # odoo-mpm-plugin -MPM Odoo ERP plugin for Claude Cowork — connects to mpmedia.odoo.com via XML-RPC with proxy-aware transport \ No newline at end of file +MPM Odoo ERP plugin for Claude Cowork — connects to mpmedia.odoo.com via XML-RPC with proxy-aware transport. + +**Version:** 0.1.2 +**Author:** Message Point Media +**Repo:** https://git.alwisp.com/jason/odoo-mpm-plugin +**CoWork Project:** CW-003 — Odoo V19 MCP Bridge + +--- + +## Overview + +This plugin bridges Claude Cowork to MPM's Odoo V19 ERP instance at mpmedia.odoo.com. It runs a local MCP server (`odoo-mpm`) via `uv` that exposes read/write access across 11 modules: Products, Knowledge, Contacts, Sales, CRM, Projects, Helpdesk, Purchase, Inventory, Employees, 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 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", "what stage is", "create a task", "update the ticket" | + +--- + +## 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` | +| **Contacts** | `search_contacts`, `get_contact`, `create_contact` | +| **Sales** | `search_sales_orders`, `get_sales_order`, `create_sales_order` | +| **CRM** | `search_crm_leads`, `get_crm_lead`, `create_crm_lead`, `update_crm_lead`, `list_crm_stages` | +| **Project** | `list_projects`, `get_project`, `search_tasks`, `get_task`, `create_task`, `update_task`, `list_task_stages` | +| **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` | +| **Utilities** | `odoo_search`, `odoo_get_record` | + +--- + +## Setup Instructions + +Full install guide: [MPM Odoo Plugin — Install Guide](https://docs.google.com/document/d/1t0J_r6IT3OsK5W4hdklizshmZ_yb4S7mMnRoud4BYxA/edit) + +**Quick summary:** + +1. **Install the plugin** — Claude Desktop: Settings → Plugins → Add Plugin → paste `https://git.alwisp.com/jason/odoo-mpm-plugin`. Or install from the `.plugin` file (ask Bryan for current build). +2. **Verify `uv` is installed** — Run `which uv` in terminal. If missing: + - Mac/Linux: `curl -LsSf https://astral.sh/uv/install.sh | sh` + - Windows: `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"` +3. **Restart Claude Desktop** — Dependencies download automatically on first launch (a few seconds). +4. **Generate your Odoo API key** — Log in to [mpmedia.odoo.com](https://mpmedia.odoo.com) → Avatar → My Profile → Account Security → API Keys → New API Key. Label it `Claude Cowork`. Set expiration to **No Limit**. Copy the key immediately — it will not be shown again. +5. **Connect Claude to Odoo** — In chat, say "Set up my Odoo credentials". Provide your Odoo login email and API key. Claude stores them in your OS keystore and verifies the connection. Done once per machine. +6. **Verify** — Ask Claude: "List my Odoo projects." A project list confirms a successful connection. + +### Setup Checklist + +- [ ] Plugin installed (URL or `.plugin` file) +- [ ] `uv` installed and available in terminal +- [ ] Claude restarted after install +- [ ] Odoo API key generated (No Limit expiration) +- [ ] `setup_odoo_credentials` run and confirmed +- [ ] "List my Odoo projects" returns data + +--- + +## Connection Details + +| Field | Value | +|---|---| +| Instance | mpmedia.odoo.com | +| Database | mpmedia-odoo-sh-main-13285275 | +| Transport | XML-RPC (proxy-aware) | +| Auth | Personal API key via OS keystore | +| MCP server | `odoo-mpm` (runs via `uv`) | + +--- + +## Requirements + +- Claude Desktop (Cowork mode) +- [`uv`](https://astral.sh/uv) — Python package manager +- macOS Keychain / Windows Credential Manager / Linux Secret Service +- Personal Odoo API key (see Setup Instructions) + +--- + +## Troubleshooting + +| Symptom | Fix | +|---|---| +| MCP server won't start | Confirm `uv` is installed (`which uv`) | +| "Credentials not configured" | Run `setup_odoo_credentials` | +| Tool errors on contacts or CRM | Ensure you have v0.1.2 — earlier versions had field compatibility issues | +| Keychain prompt on first use | Normal — allow it, credentials are stored securely | +| Need to rotate key | Run `clear_odoo_credentials`, generate a new key in Odoo, then run `setup_odoo_credentials` again |