Odoo MCP Server
Description
# Odoo MCP Server [](https://modelcontextprotocol.org/) [](LICENSE) **High-level, secure access to Odoo 18.0 (JSON-RPC) and Odoo Extract API for OCR document…
About
# Odoo MCP Server [](https://modelcontextprotocol.org/) [](LICENSE) **High-level, secure access to Odoo 18.0 (JSON-RPC) and Odoo Extract API for OCR document parsing.** --- ## 🚀 Quick Start with…
Details
- Author
- onlybets
- Downloads
- 121
- Categories
- Other
Jump to
🚀 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!
---
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
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": "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 LICENSE.
---
> MCP Server — Model Context Protocol
> https://modelcontextprotocol.org/
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



