Odoo

MCP server to manage Odoo account with AI
  • 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.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

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

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational