mcpField
O
Odoo MCP Server

Odoo MCP Server

Local
github.com/onlybetsBusiness & Marketing0Updated 79w ago

About Odoo MCP Server

Odoo MCP Server connects MCP clients to Odoo 18.0 through JSON-RPC and to the Odoo Extract API for OCR. It supports reading and changing model records as well as submitting documents for extraction.

Key features

  1. 01Inspect available models and fields
  2. 02Search and read records
  3. 03Create, update, and delete records
  4. 04Submit documents for OCR extraction
  5. 05Retrieve extraction results

Use cases

  1. 01Review Odoo model structure before querying
  2. 02Find and update partner records
  3. 03Create or remove Odoo records
  4. 04Extract invoice data from documents

MCP support

Exposes Odoo model discovery and record operations, along with document extraction tools, to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Odoo MCP Server

MCP License: MIT

High-level, secure access to Odoo 18.0 (JSON-RPC) and Odoo Extract API for OCR document parsing.


🚀 Quick Start with Cline

  1. Clone the repo:

    git clone https://github.com/onlybets/odoo-mcp-server-unofficial.git
    cd odoo-mcp-server-unofficial
    
  2. Configure credentials:

    cp .env.example .env
    # Edit .env and fill in your Odoo/Extract credentials
    
  3. Run with Cline (no self-hosting needed):

    • Cline auto-runs the server locally for you.
    • Just open the repo in Cline and start using the tools!

🛠️ Tools & JSON Schemas

1. list_models

Returns models visible to the current user.

Input: none
Output:

[
  {"model": "res.partner", "name": "Contact"},
  {"model": "crm.lead", "name": "Lead"}
]

2. get_fields

Returns fields & metadata for a model.

Input:

{ "model": "res.partner" }

Output:

{
  "id": {"string": "ID", "type": "integer", "required": true, "readonly": true},
  "name": {"string": "Name", "type": "char", "required": true, "readonly": false}
}

3. search_read

Searches and reads records from a model.

Input:

{
  "model": "res.partner",
  "domain": [["is_company", "=", true]],
  "fields": ["id", "name", "email"],
  "limit": 10
}

Output:

[
  {"id": 7, "name": "Acme Corp", "email": "[email protected]"}
]

4. create_record

Creates a new record in a model.

Input:

{
  "model": "res.partner",
  "values": {"name": "New Partner", "email": "[email protected]"}
}

Output:

{ "id": 42 }

5. update_record

Updates one or more records in a model.

Input:

{
  "model": "res.partner",
  "ids": [42],
  "values": {"email": "[email protected]"}
}

Output:

{ "success": true }

6. delete_record

Deletes one or more records in a model.

Input:

{
  "model": "res.partner",
  "ids": [42]
}

Output:

{ "success": true }

7. extract_parse

Launches a document extraction job.

Input:

{
  "document_base64": "<base64-encoded-pdf>",
  "doc_type": "invoice",
  "version": "18.0"
}

Output:

{ "document_token": "abc123", "status": "processing" }

8. extract_get_result

Fetches the result of a document extraction job.

Input:

{
  "doc_type": "invoice",
  "version": "18.0",
  "document_token": "abc123"
}

Output:

{
  "status": "done",
  "data": { "invoice_number": "INV-001", "total": 123.45 }
}

🐳 Docker Compose

  • Run all services with:
    docker-compose up --build
    
  • Works out-of-the-box for local dev and testing.

🧪 CI/CD

  • GitHub Actions workflow (.github/workflows/ci.yml) runs:
    • pylint (with odoo plugin if available)
    • pytest (runs smoke tests)
  • Matrix for Python 3.11+.

📄 License

MIT License. See LICENSE.


MCP Server — Model Context Protocol
https://modelcontextprotocol.org/

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.