From Chat to Confirmed: Real AI Agent Use Cases Across Odoo with Surface MCP

Accounting, Sales, Purchase, Inventory, and Website — what it looks like in practice

The Model Context Protocol (MCP) changes what “AI assistant” means for Odoo users. Instead of exporting CSVs and describing problems to a chatbot, your AI agent has direct, authenticated access to your Odoo instance — the same access a human user has, through the same ORM layer. Odoo Surface MCP is an open-source MCP server that makes this real, today, on Odoo 17+.

Below are concrete use cases across five areas where the impact is immediate. Each example shows the natural language prompt, what the agent does under the hood, and what comes out the other side.


Accounting

Accounting use cases

Aged Receivables Triage

“Show me all overdue customer invoices older than 30 days and post a follow-up reminder on the top 3 by outstanding amount.”

The agent searches account.move for unpaid outgoing invoices past their due date, ranks by outstanding balance, and posts a standardized chatter note on each — all without a human touching the interface. A task that takes 15 minutes of manual filtering becomes a single sentence.

Vendor Bill from a Conversation

“I just received a bill from Acme Ltd for SAR 12,450 for IT services, dated today. Create the draft vendor bill.”

The agent resolves the vendor from res.partner, creates a draft account.move of type in_invoice with the correct line and amount, and leaves it in draft for review and posting. No form navigation, no field hunting.

Month-End Draft Cleanup

“List all journal entries still in draft from last month.”

Instant domain search on account.move filtered by date range and state — a clean list for the accountant to review, without navigating reports or setting filters manually.


Sales

Sales use cases

Quotation from Conversation Notes

“Create a quotation for Saudi Telecom Company: 10 units of Server Rack A and 5 units of UPS Pro, 10% discount, valid for 14 days.”

The agent resolves the customer and products, creates a sale.order with lines, applies the discount, and sets the validity date — from one sentence to a complete draft quotation, ready to send.

Follow-Up on Stale Sent Quotations

“Find all quotations in Sent state not updated in the last 7 days and post a follow-up note on each.”

The agent searches sale.order for stale sent orders and posts a reminder on every chatter. A task that would occupy a salesperson for 20 minutes runs in seconds — and can be triggered before every weekly sales meeting.

Pre-Call Customer Summary

“What is the current order and invoice status for Al Rajhi Trading?”

The agent reads the partner, fetches their open sales orders and associated invoices, and returns amounts, states, and due dates in a clean summary — exactly what a sales manager needs 5 minutes before a client call.


Purchase

Purchase use cases

Purchase Order from a Quote

“Create a PO to Dell Arabia for 5 laptops at SAR 4,200 each, expected delivery in 2 weeks.”

The agent creates a purchase.order with the correct vendor, product line, price, and scheduled date — saved in draft for the procurement manager to confirm. No dropdowns, no page reloads, no copy-paste from an email.

Received but Not Yet Invoiced

“Show me all POs from this month that have been received but not yet invoiced.”

A domain filter on purchase.order for invoice_status = to invoice scoped to the current month. The output is the exact list the AP team needs to chase vendor invoices — no report export required.

Overdue Vendor Deliveries

“Which vendors have open POs with delivery dates that have already passed?”

The agent surfaces overdue purchase order lines grouped by vendor. From there, the AI can immediately post follow-up notes or flag records for escalation — all in the same session.


Inventory

Inventory use cases

Stock Level Check by Category

“What is the current on-hand stock for all products in the Electronics category?”

The agent queries stock.quant filtered by product category and returns on-hand quantities per product and location — faster than opening the Inventory reporting screen and setting filters.

Internal Transfer

“Create an internal transfer of 20 units of Item X from the main warehouse to the Riyadh branch.”

The agent creates a stock.picking of type internal, resolves source and destination locations, adds the move line, and saves in draft — ready for the warehouse operator to validate on the floor.

Below-Reorder-Point Alert

“List all products where on-hand quantity is below the reorder point.”

Combining stock.warehouse.orderpoint rules with live stock.quant data, the agent surfaces every product needing replenishment — a task that normally requires navigating to the Replenishment report, filtering, and exporting.


Website & Blog

Website and Blog use cases

Landing Page from a Brief

“Create an unpublished landing page at /ramadan-offer with a hero section, three feature cards, and a contact CTA.”

The agent creates an ir.ui.view with a fully structured QWeb template using Odoo’s native snippet classes, then creates the linked website.page record — a complete, website-editor-compatible page in seconds. This post was created the same way.

Surgical Content Edits

“Update the hero headline on the /services page to our new tagline.”

The agent fetches the page’s arch_db, edits the exact element in memory, and writes it back in a single update — no website editor session, no accidental snippet deletions, no risk of accidentally publishing a broken draft.

Image Upload and Embedding

“Upload the product image from our server and embed it in the /products/erp page.”

The agent uses fetch_and_upload to store the image as an Odoo ir.attachment, then references it via /web/image/{id} — all assets stay inside Odoo, owned and accessible without external dependencies.


Getting Started

Every use case above runs on any Odoo 17+ instance. Add one block to your MCP client config (Claude Desktop, Cursor, or any MCP-compatible tool) and restart:

{
  "mcpServers": {
    "odoo-surface": {
      "command": "npx",
      "args": ["-y", "@suco/odoo-surface-mcp@latest"],
      "env": {
        "ODOO_URL": "https://your-odoo.com",
        "ODOO_DB": "your_database",
        "ODOO_USER": "admin",
        "ODOO_PASSWORD": "admin"
      }
    }
  }
}

Open source, MIT licensed. The server handles authentication, session management, and caching — your AI agent just talks to it.

View on GitHub View on npm

في AI
# Odoo
شارك هذا المنشور
علامات التصنيف
مدوناتنا
الأرشيف