- Home
- MCP servers
- Odoo
Odoo
- python
18
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
You can extend your Odoo ERP with an MCP server that exposes Odoo operations through both HTTP streaming for web AI agents and stdio for local assistants. This hybrid server lets you perform searches, reads, creates, updates, and deletes on Odoo models directly from your AI workflows or local tooling.
How to use
To use the server with an MCP client, start the service in either HTTP mode for remote AI agents or stdio mode for local assistants. In HTTP mode, your MCP client connects over HTTP to the exposed endpoint and can issue tool calls to interact with Odoo data. In stdio mode, you run a local Python process that the client can spawn and communicate with through the standard input/output channel. Your flows can perform common data operations like listing models, searching records, creating records, and more.
How to install
Prerequisites you need before installing the MCP server are Python and Docker. You will install either via Docker Compose or directly with Python and pip.
# Docker deployment (recommended for quick setup)
# Clone and configure
git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server
# Copy environment file and configure
cp .env.example .env
# Edit .env with your Odoo credentials
# Start the services
docker-compose up -d
# Access the MCP endpoint
# MCP Endpoint: http://localhost:8000/mcp
# Health endpoint: http://localhost:8000/health
# Local development with Python and pip
# Install the package
pip install odoo-mcp-server
# Or install from source
git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server
pip install -e .
# Set environment variables for Odoo access
export ODOO_URL="https://your-instance.odoo.com"
export ODOO_DB="your-database"
export ODOO_USERNAME="your-email@example.com"
export ODOO_API_KEY="your-api-key"
# Run the HTTP server (for HTTP mode)
python -m mcp_server_odoo.http_server
# Run the stdio server (for local assistant mode)
python -m mcp_server_odoo
```} , {
Configuration and runtime notes
The server supports both HTTP streaming and stdio operation. In HTTP mode, connect via the endpoint exposed by the running HTTP service. In stdio mode, start the Python process and configure your local MCP client to connect to it via the standard input/output channel.
Security, monitoring, and production notes
For production deployment, consider using Docker Compose with profiles for streaming services, Redis for session management, and an Nginx proxy with TLS termination. Regularly monitor health and logs to detect issues early. Always restrict access to the MCP endpoint when exposing it to external agents.
Troubleshooting
If you encounter connectivity problems, verify that the MCP endpoint is reachable and that the correct protocol is used (HTTP/HTTPS for remote agents, stdio for local clients). Check that environment variables are properly set for Odoo access and that the appropriate server process is running.
Sample usage scenarios
Use HTTP mode to integrate with Flowhunt or other AI agents for remote automation of Odoo workflows. Use stdio mode to run a Claude Desktop or similar local assistant that queries Odoo data and triggers actions based on agent prompts.
Notes on available tooling and endpoints
The server provides operations to search, read, create, update, and delete records across Odoo models, list available models, and fetch model fields. You can perform these actions through either the HTTP transport or the local stdio transport.
Available tools
search_records
Search for records in any Odoo model with filters and limits
get_record
Retrieve detailed information for a specific record
create_record
Create new records in a specified Odoo model
update_record
Update existing records in a specified Odoo model
delete_record
Delete records from a specified Odoo model
list_models
List available models in the connected Odoo instance
get_model_fields
Get field definitions for a given model