# Odoo — MCP server on mcp.ai > Connect your Odoo account and use 12 tools for CRM straight from your AI agent. Connect with your own API key. Open-source ERP and CRM platform for business management, including sales, accounting, inventory, and project management. By: mcp.ai · official Page: https://mcp.ai/odoo ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_odoo?ms=1787296080000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/odoo/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/odoo/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/odoo/skill.md Postman collection (v2.1): https://mcp.ai/odoo/postman.json ## Tools - odoo_call_odoo_jsonrpc(args?: string|integer|number|boolean|object|string[][], method: string, service: string, database?: string, request_id?: integer) — JSON-RPC endpoint for Odoo external API calls. Provides the same functionality as XML-RPC but with JSON encoding. DEPRECATED in v19.0 and scheduled for removal in v20.0 (Fall 2026). Use JSON-2 API at - odoo_create_contact(tz?: string, ref?: string, vat?: string, city?: string, lang?: string, name: string, email?: string, phone?: string, title?: integer, mobile?: string, street?: string, comment?: string, street2?: string, website?: string, function?: string, state_id?: integer, zip_code?: string, parent_id?: integer, country_id?: integer, is_company?: boolean, company_type?: string, customer_rank?: integer, supplier_rank?: integer) — Create a new contact (customer, supplier, or generic partner) in Odoo's res.partner model. Use this action when you need to add a new person or company to the Odoo database. Set customer_rank > 0 to m - odoo_get_applicant_result(version?: integer, account_token: string, document_token: string) — Tool to retrieve parsing results for a previously submitted resume/applicant document. Use when you need to check the status and get extracted fields (name, email, phone, mobile) from a resume that wa - odoo_get_bank_statement_result(version: integer, account_token: string, document_token: string) — Tool to retrieve parsing results for a previously submitted bank statement. Returns extracted fields including balance_start, balance_end, date, and bank_statement_lines. Use when you need to check th - odoo_get_expense_result(version: integer, account_token: string, document_token: string) — Retrieve parsing results for a previously submitted expense document. Returns extracted fields including description, country, date, total, and currency. Use this after submitting an expense document - odoo_get_invoice_result(version: integer, account_token: string, document_token: string) — Tool to retrieve parsing results for a previously submitted invoice from Odoo Extract API. Use when you need to check the status and get extracted data from an invoice. Poll this endpoint until the st - odoo_list_databases() — Tool to list all available Odoo databases on the server. Use when you need to see which databases are available on the Odoo instance. - odoo_parse_applicant(version?: integer, document: string, request_id?: string, account_token: string) — Tool to submit a resume/CV document for OCR parsing and data extraction via Odoo Extract API. Extracts name, email, phone, and mobile from applicant resumes. Returns a document_token to poll for resul - odoo_parse_bank_statement(version: integer, documents: string[], request_id?: string, account_token: string) — Tool to submit a bank statement document for OCR parsing and data extraction via Odoo Extract API. Extracts balance_start, balance_end, date, and bank_statement_lines. Returns a document_token to poll - odoo_parse_expense(version: integer, documents: string[], account_token: string) — Tool to submit an expense document for OCR parsing and data extraction. Extracts description, country, date, total, and currency from expense receipts. Returns a document_token to poll for results. Us - odoo_parse_invoice(dbuuid?: string, version: integer, documents: string[], request_id?: string, user_infos?: object, webhook_url?: string, account_token: string) — Tool to submit an invoice document for OCR parsing and data extraction via Odoo Extract API. Uses AI-based algorithms to extract fields like total, due date, invoice lines, VAT numbers, IBAN, supplier - odoo_update_record(model: string, values: object, record_ids: integer[]) — Generic tool to update records across any Odoo model via the JSON-2 API write endpoint. Updates one or more records with the specified field values. Supports all Odoo field types including relational ## Example prompts - "What can I do in Odoo?" - "Show me a summary of my Odoo account" ## Links Docs: https://mcp.ai/docs/mcps/odoo Website: https://mcp.ai/mcps/odoo