odoo-mcp-server-unofficial
If you are the rightful owner of odoo-mcp-server-unofficial and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
High-level, secure access to Odoo 18.0 (JSON-RPC) and Odoo Extract API for OCR document parsing.
Odoo MCP Server
High-level, secure access to Odoo 18.0 (JSON-RPC) and Odoo Extract API for OCR document parsing.
๐ Quick Start with Cline
-
Clone the repo:
git clone https://github.com/onlybets/odoo-mcp-server-unofficial.git cd odoo-mcp-server-unofficial
-
Configure credentials:
cp .env.example .env # Edit .env and fill in your Odoo/Extract credentials
-
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": "info@acme.com"}
]
4. create_record
Creates a new record in a model.
Input:
{
"model": "res.partner",
"values": {"name": "New Partner", "email": "new@partner.com"}
}
Output:
{ "id": 42 }
5. update_record
Updates one or more records in a model.
Input:
{
"model": "res.partner",
"ids": [42],
"values": {"email": "updated@partner.com"}
}
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 .
MCP Server โ Model Context Protocol
https://modelcontextprotocol.org/