Odoo MCP Server
Odoo MCP
Odoo MCP превращает базу данных Odoo в сервер протокола Model Context Protocol. Он создан для локальных агентов, IDE и инструментов автоматизации, которым нужен реальный контекст Odoo без написанных вручную скриптов или небезопасного прямого доступа на запись.
Он использует XML-RPC для Odoo 16-18 и External JSON-2 для Odoo 19. Он предоставляет компактную поверхность MCP с инструментами чтения, диагностики, обнаружения схемы, помощниками по миграции, сканированием локальных аддонов и контролируемым рабочим процессом записи.
Основные возможности
Возможность | Что вы получаете |
22 MCP-инструмента | Чтение записей, проверка схемы, создание доменов, сканирование аддонов, диагностика вызовов, правила доступа и проверка записей. |
5 агентских промптов | Повторно используемые рабочие процессы для неудачных вызовов, анализа соответствия (fit/gap), миграции JSON-2, безопасной записи и аудита модулей. |
Поддержка Odoo 16-19 | XML-RPC по умолчанию, JSON-2 по выбору для Odoo 19. |
Потоковый HTTP | Поддержка локального HTTP/SSE для клиентов, которые не используют stdio. |
Безопасная запись | Прямые |
Реальные дымовые тесты | Валидация Docker Compose запускает временные стеки Odoo 16.0, 17.0, 18.0 и 19.0, включая ограниченных пользователей, пользовательские правила записей и установку/обновление упакованных XML-аддонов. |
Related MCP server: Odoo MCP Server
Установка
pip install odoo-mcpДля локальной разработки:
git clone https://github.com/tuanle96/mcp-odoo.git
cd mcp-odoo
uv sync --extra devНастройка
Установите значения подключения в окружении:
export ODOO_URL="https://your-odoo-instance.com"
export ODOO_DB="your-database"
export ODOO_USERNAME="your-user"
export ODOO_PASSWORD="your-password-or-api-key"
export ODOO_TRANSPORT="xmlrpc"Для Odoo 19 JSON-2:
export ODOO_TRANSPORT="json2"
export ODOO_API_KEY="your-odoo-api-key"
export ODOO_JSON2_DATABASE_HEADER="1"ODOO_JSON2_DATABASE_HEADER=1 отправляет X-Odoo-Database при вызовах JSON-2. Установите значение 0 только в том случае, если маршрутизация хоста или dbfilter уже выбирает нужную базу данных.
Вы также можете использовать odoo_config.json:
{
"url": "https://your-odoo-instance.com",
"db": "your-database",
"username": "your-user",
"password": "your-password-or-api-key"
}Запуск
Запустите MCP-сервер через stdio:
odoo-mcpили:
python -m odoo_mcpЗапустите потоковый HTTP для локальных клиентов:
odoo-mcp --transport streamable-http --host 127.0.0.1 --port 8000 --path /mcpНелокальные HTTP-привязки отклоняются, если вы не передадите --allow-remote-http или не установите MCP_ALLOW_REMOTE_HTTP=1. Этот сервер не включает встроенную HTTP-аутентификацию. Размещайте удаленные HTTP-развертывания за собственной аутентификацией, TLS и сетевой политикой.
Проверьте состояние среды выполнения без запуска цикла сервера:
odoo-mcp --healthMCP-инструменты
Инструмент | Назначение |
| Выполнение проверенного метода модели. Прямые |
| Список технических имен и меток моделей Odoo. |
| Чтение метаданных полей для одной модели. |
| Выполнение ограниченного поиска |
| Чтение одной записи по модели и ID. |
| Поиск сотрудников по имени. |
| Поиск записей об отпусках по диапазону дат. |
| Диагностика вызова модели без его выполнения. |
| Диагностика видимости ACL и правил записей для текущих учетных данных Odoo. |
| Группировка полей связей, обязательных полей и подсказок для создания/записи. |
| Преобразование входных данных в формате XML-RPC в эндпоинт JSON-2, заголовки и именованное тело. |
| Выявление рисков транспорта, методов и миграции между версиями Odoo. |
| Классификация требований на стандартные, конфигурационные, Studio, пользовательские модули, исключаемые или неизвестные. |
| Чтение версии сервера, контекста пользователя, транспорта, базы данных и сводки установленных модулей. |
| Создание ограниченного каталога моделей с дополнительными метаданными полей. |
| Создание невыполняемого полезного контента для подтверждения |
| Валидация полезного контента записи на основе доверенных актуальных метаданных |
| Выполнение только подтвержденной записи в рамках той же сессии при установленном |
| Сканирование исходного кода локальных аддонов без импорта кода аддонов. |
| Создание и валидация домена Odoo на основе структурированных условий. |
| Отчет об ожидаемых модулях, моделях и вызовах обнаружения для продаж, CRM, инвентаризации, учета или HR. |
| Отчет о состоянии среды выполнения MCP без секретных данных. |
Ресурсы
URI | Описание |
| Список доступных моделей. |
| Чтение метаданных и полей модели. |
| Чтение одной записи. |
| Поиск записей с ограниченным доменом. |
Промпты
Промпт | Использовать для |
| Поиск первопричины неудачного вызова Odoo перед повторной попыткой. |
| Преобразование необработанных требований в категории fit/gap для Odoo. |
| Планирование миграции с XML-RPC или JSON-RPC на External JSON-2. |
| Проверка предлагаемого |
| Аудит исходного кода локального аддона со сканированием, рисками и бизнес-обоснованием. |
Модель безопасной записи
Записи намеренно сделаны «скучными».
preview_writeсоздает канонический, невыполняемый полезный контент.validate_writeпроверяет метаданные модели, обязательные поля, поля только для чтения, подсказки связей, ID записей и форму полезного контента.execute_approved_writeвыполняется только при прохождении всех шлюзов:одобрение получено от
validate_writeв том же процессе сервера,валидация использовала доверенные, непустые актуальные метаданные
fields_getOdoo,токен не истек и не был использован,
передано
confirm=true,установлено
ODOO_MCP_ENABLE_WRITES=1.
Правила доступа Odoo, правила записей и серверные ограничения по-прежнему определяют окончательный результат.
Проверенные методы с побочными эффектами, такие как sale.order.action_confirm, могут быть включены по одному:
export ODOO_MCP_ALLOWED_SIDE_EFFECT_METHODS="sale.order.action_confirm,res.partner.message_post"ODOO_MCP_ALLOW_UNKNOWN_METHODS=1 по-прежнему поддерживается для доверенных развертываний, но health_check сообщает об этом как о широком режиме. Предпочитайте точный список разрешенных методов, если вам нужно лишь небольшое количество проверенных методов.
Настройка клиента
Claude Desktop на macOS считывает конфигурацию MCP из:
~/Library/Application Support/Claude/claude_desktop_config.jsonИспользуйте абсолютный путь к Python, так как графические приложения могут не наследовать ваш PATH из оболочки:
{
"mcpServers": {
"odoo": {
"command": "/opt/homebrew/bin/python3",
"args": ["-m", "odoo_mcp"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_DB": "your-database",
"ODOO_USERNAME": "your-user",
"ODOO_PASSWORD": "your-password-or-api-key",
"ODOO_TRANSPORT": "xmlrpc"
}
}
}
}Больше примеров находится в docs/client-configs.md.
Docker
Соберите образ:
docker build -t mcp/odoo:latest -f Dockerfile .Запустите через stdio из MCP-клиента:
{
"mcpServers": {
"odoo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "ODOO_URL",
"-e", "ODOO_DB",
"-e", "ODOO_USERNAME",
"-e", "ODOO_PASSWORD",
"-e", "ODOO_TRANSPORT",
"-e", "ODOO_API_KEY",
"mcp/odoo:latest"
]
}
}
}Запустите потоковый HTTP локально:
docker run --rm \
-p 127.0.0.1:8000:8000 \
-e ODOO_URL \
-e ODOO_DB \
-e ODOO_USERNAME \
-e ODOO_PASSWORD \
-e ODOO_TRANSPORT \
-e ODOO_API_KEY \
mcp/odoo:latest \
--transport streamable-http \
--host 0.0.0.0 \
--port 8000 \
--allow-remote-httpТестирование
Запустите стандартные проверки качества:
uv run python -m ruff check .
uv run python -m mypy src
uv run python -m pytestЗапустите реальные дымовые тесты Odoo:
uv run --python 3.12 --with-editable . scripts/odoo_compose_smoke.py \
--versions 16.0 17.0 18.0 19.0 \
--timeout 360 \
--inspector-smokeОбвязка для дымовых тестов запускает временные стеки Docker Compose, проверяет прямой доступ к Odoo, проверяет MCP stdio, а для Odoo 19 также проверяет JSON-2 и потоковый HTTP.
Совместимость
XML-RPC остается транспортом по умолчанию для широкой совместимости. Odoo 19 поддерживает External JSON-2 через ODOO_TRANSPORT=json2. Odoo задокументировала устаревание XML-RPC и JSON-RPC для Odoo 20, поэтому новые интеграции должны планироваться с учетом JSON-2.
Участие в разработке
Проблемы, пулл-реквесты и отчеты о совместимости приветствуются. Начните с CONTRIBUTING.md, укажите вашу версию Odoo, транспорт, тип клиента и выполненную вами проверку.
Безопасность
Не публикуйте логи, содержащие учетные данные Odoo, API-ключи, имена баз данных из частных сред или полные трассировки отладки Odoo. Сообщайте об уязвимостях через SECURITY.md.
Лицензия
MIT. См. LICENSE.
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tuanle96/mcp-odoo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server