tuanle96/mcp-odoo

tuanle96/mcp-odoo

от tuanle96
Без установки модулей превращает любую базу Odoo 16+ в MCP-сервер. Предоставляет инструменты для чтения, диагностики и безопасной записи через агентов, IDE. Для разработчиков и администраторов Odoo.

Odoo MCP

The Odoo MCP that is fluent in every Odoo version.
Five-minute install. Zero Odoo-side setup. Safe writes, real diagnostics, JSON-2 ready years before the Odoo 22 XML-RPC removal.

PyPI Python Downloads License CI Stars Forks

Odoo MCP turns any Odoo 16+ database into a Model Context Protocol server — using only your existing credentials. No App Store module, no permission setup, no admin access required. Built for local agents, IDEs, and automation tools that need real Odoo context without hand-rolled scripts or unsafe direct write access.

It speaks XML-RPC for Odoo 16-18 and External JSON-2 for Odoo 19+. It exposes a compact MCP surface with read tools, diagnostics, schema discovery, migration helpers, local addon scanning, and a gated write workflow. One server can serve multiple named Odoo instances at once.

Try it in 30 seconds

Once configured (see Setup), ask your agent things like:

"Show me all customers from Spain with unpaid invoices."

"Find products with stock below 10 units in the main warehouse."

"Audit the custom_billing addon for upgrade risks before we move to Odoo 19."

Инструменты были проиндексированы:
accounting_health_across_instancesтолько чтениеидемпотентныйвнешний мир

AR/AP aging распределяется по инстансам - обход партнерской сети.

Параметры
  • as_ofstring | null

    Optional ISO date used as the aging reference date.

  • directionstring

    Aging direction: 'receivable' or 'payable'.

  • instancesany | null

    Optional instance selector; defaults to all eligible instances.

  • top_partnersinteger

    Maximum top partners to include in each aging report; capped at 100.

accounting_health_summaryтолько чтениеидемпотентныйвнешний мир

Открыть количество позиций по дебиторской/кредиторской задолженности и отставание по черновикам счетов.

Параметры
  • instancestring | null
aggregate_across_instancesтолько чтениеидемпотентныйвнешний мир

Агрегат только для чтения, распределённый по экземплярам, с объединёнными общими итогами.

Параметры
  • domainany | null
  • group_bystring[]обязательный
  • instancesany | null
  • measuresstring[] | null
  • modelstringобязательный
aggregate_recordsтолько чтениеидемпотентныйвнешний мир

Агрегирует записи Odoo на стороне сервера с помощью groupby/sum/count в Postgres. Использует formatted_read_group в Odoo 19+ и read_group в более ранних версиях.

Параметры
  • domainany | null
  • group_bystring[]обязательный
  • instancestring | null
  • lazyboolean
  • limitinteger | null
  • measuresstring[] | null
  • modelstringобязательный
  • offsetinteger
  • orderstring | null
analyze_upgrade_logтолько чтениеидемпотентный

Классифицирует ошибки в журналах установки/обновления Odoo в рабочий список миграции (no_action / needs_review / needs_script) с предложениями по исправлению.

Параметры
  • log_textstringобязательный
  • source_versionstring | null
  • target_versionstring | null
build_domainтолько чтениеидемпотентный

Строит проверенный домен Odoo из структурированных условий.

Параметры
  • conditionsobject[]обязательный
  • fields_metadataobject | null
  • logical_operatorstring
business_pack_reportтолько чтениеидемпотентныйвнешний мир

Сообщает ожидаемые модули, модели и безопасные вызовы обнаружения для бизнес-пакета.

Параметры
  • instancestring | null

    Optional configured Odoo instance name; uses the default if omitted.

  • packstringобязательный

    Business pack to report, such as sales, crm, inventory, accounting, or hr.

  • use_live_metadataboolean

    Whether to inspect live models and installed modules.

cancel_async_taskтолько чтениеидемпотентный

Отменяет ожидающую или выполняющуюся фоновую задачу.

Параметры
  • task_idstringобязательный
chatter_postвнешний мир

Публикует сообщение chatter в записи mail.thread. Обычный режим требует токен одобрения, который возвращает вызов предпросмотра; чтобы обойти это и опубликовать сразу, установите MCP_CHATTER_DIRECT=1.

Параметры
  • approvalobject | null
  • attachment_idsinteger[] | null
  • bodystringобязательный
  • confirmboolean
  • instancestring | null
  • message_typestring
  • modelstringобязательный
  • partner_idsinteger[] | null
  • record_idintegerобязательный
  • subtype_xmlidstring | null
data_quality_reportтолько чтениеидемпотентныйвнешний мир

Выполняет проверки качества данных в режиме только для чтения для одной модели Odoo: дубликаты, отсутствующие обязательные значения, осиротевшие ссылки, аномалии формата.

Параметры
  • checksstring[] | null
  • instancestring | null
  • key_fieldsstring[] | null
  • modelstringобязательный
  • sample_limitinteger
diagnose_accessтолько чтениеидемпотентныйвнешний мир

Диагностирует видимость ACL и record-rule для модели Odoo.

Параметры
  • domainany | null

    Optional Odoo domain used for the visibility check.

  • expected_countinteger | null

    Optional expected visible record count for comparison.

  • include_rulesboolean

    Whether to include matching record-rule metadata.

  • instancestring | null

    Optional configured Odoo instance name; uses the default if omitted.

  • limitinteger

    Maximum metadata rows to inspect; capped at 500.

  • modelstringобязательный

    Technical Odoo model name to inspect.

  • observed_errorany | null

    Optional error text or structured error to classify.

  • operationstring

    Access operation to diagnose, such as read or write.

  • record_idsinteger[] | null

    Optional record IDs to check directly.

diagnose_odoo_callтолько чтениеидемпотентный

Диагностирует вызов модели Odoo, не выполняя его.

Параметры
  • argsany[] | null

    Optional positional call arguments.

  • include_debugboolean

    Whether to include additional diagnostic details.

  • kwargsobject | null

    Optional keyword call arguments.

  • metadataobject | null

    Optional model or method metadata used by the diagnosis.

  • methodstringобязательный

    Odoo model method name to diagnose.

  • modelstringобязательный

    Technical Odoo model name to diagnose.

  • observed_errorany | null

    Optional error text or structured error to classify.

  • target_versionstring | null

    Optional target Odoo version for compatibility checks.

  • transportstring

    Transport to assess, such as 'auto', 'xmlrpc', or 'json2'.

  • use_live_metadataboolean

    Whether to request live metadata; this preview tool does not fetch it.

execute_approved_writeвнешний мир

Выполняет предварительно просмотренную и подтверждённую стандартную запись.

Параметры
  • approvalobjectобязательный
  • confirmboolean
execute_methodвнешний мир

Выполняет пользовательский метод на модели Odoo.

Параметры
  • argsany[] | null

    Optional positional method arguments.

  • instancestring | null

    Optional configured Odoo instance name; uses the default if omitted.

  • kwargsobject | null

    Optional keyword method arguments.

  • methodstringобязательный

    Odoo model method to call; direct create, write, and unlink are blocked.

  • modelstringобязательный

    Technical Odoo model name, for example 'res.partner'.

fit_gap_reportтолько чтениеидемпотентный

Классифицирует требования Odoo по категориям внедрения fit/gap.

Параметры
  • available_fieldsobject | null
  • available_modelsstring[] | null
  • business_contextobject | null
  • installed_modulesany[] | null
  • requirementsany[]обязательный
  • use_live_metadataboolean
generate_json2_payloadтолько чтениеидемпотентный

Создай предпросмотр JSON-2 запроса без доступа к сети.

Параметры
  • argsany[] | null
  • base_urlstring | null
  • databasestring | null
  • include_database_headerboolean
  • kwargsobject | null
  • methodstringобязательный
  • modelstringобязательный
get_async_taskтолько чтениеидемпотентный

Опрашивает статус и результат фоновой задачи.

Параметры
  • task_idstringобязательный
get_model_fieldsтолько чтениеидемпотентныйвнешний мир

Получает метаданные полей для конкретной модели Odoo.

Параметры
  • field_namesstring[] | null
  • instancestring | null
  • max_fieldsinteger
  • modelstringобязательный
  • relevancestring | null
get_odoo_profileтолько чтениеидемпотентныйвнешний мир

Читает ограниченный профиль подключенного окружения Odoo.

Параметры
  • include_modulesboolean

    Whether to include installed-module metadata.

  • instancestring | null

    Optional configured Odoo instance name; uses the default if omitted.

  • module_limitinteger

    Maximum installed modules to include; capped at 500.

health_checkтолько чтениеидемпотентный

Сообщите о несекретном состоянии безопасности выполнения этого MCP-сервера.

Параметры

Без параметров.

index_knowledgeтолько чтениеидемпотентныйвнешний мир

Извлекает ограниченный срез записей и строит локальный индекс знаний BM25.

Параметры
  • domainany | null
  • fieldsstring[] | null
  • instancestring | null
  • limitinteger
  • modelstringобязательный
  • replaceboolean
inspect_model_relationshipsтолько чтениеидемпотентныйвнешний мир

Проверяет связи модели и метаданные обязательных полей.

Параметры
  • fields_metadataobject | null
  • include_computedboolean
  • include_readonlyboolean
  • instancestring | null
  • modelstringобязательный
  • use_live_metadataboolean
knowledge_statsтолько чтениеидемпотентный

Сообщает размеры локального индекса знаний и бюджет документов.

Параметры

Без параметров.

list_async_tasksтолько чтениеидемпотентный

Перечисляет последние фоновые задачи, начиная с самых новых.

Параметры

Без параметров.

list_instancesтолько чтениеидемпотентный

Перечисляет имена настроенных экземпляров Odoo без учётных данных.

Параметры

Без параметров.

list_modelsтолько чтениеидемпотентныйвнешний мир

Перечисляет модели Odoo с необязательной фильтрацией по имени.

Параметры
  • instancestring | null
  • limitinteger
  • querystring | null
lookup_model_historyтолько чтениеидемпотентный

Ищет историю переименования/удаления моделей Odoo по старому или новому имени модели (например, account.invoice -> account.move)

Параметры
  • namestringобязательный
preview_writeтолько чтениеидемпотентный

Отображает предварительный просмотр операций создания, записи или удаления без их выполнения.

Параметры
  • contextobject | null
  • instancestring | null
  • modelstringобязательный
  • operationstringобязательный
  • record_idsinteger[] | null
  • valuesobject | null
  • values_listobject[] | null
read_attachmentтолько чтениеидемпотентныйвнешний мир

Читает метаданные и ограниченное по размеру base64-содержимое записи ir.attachment.

Параметры
  • attachment_idintegerобязательный
  • include_databoolean
  • instancestring | null
read_recordтолько чтениеидемпотентныйвнешний мир

Читает одну запись Odoo по модели и ID.

Параметры
  • fieldsstring[] | null
  • instancestring | null
  • modelstringобязательный
  • record_idintegerобязательный
receivable_payable_agingтолько чтениеидемпотентныйвнешний мир

Отчёт по дебиторской и кредиторской задолженности с группировкой по количеству дней просрочки.

Параметры
  • as_ofstring | null

    Optional ISO date used as the aging reference date.

  • directionstring

    Aging direction: 'receivable' or 'payable'.

  • instancestring | null

    Optional configured Odoo instance name; uses the default if omitted.

  • limitinteger

    Maximum open-item lines to inspect.

  • top_partnersinteger

    Maximum top partners to include; capped at 100.

scan_addons_sourceтолько чтениеидемпотентный

Сканирует локальный исходный код аддонов Odoo, не импортируя код аддонов.

Параметры
  • addons_pathsstring[] | null
  • max_file_bytesinteger
  • max_filesinteger
schema_catalogтолько чтениеидемпотентныйвнешний мир

Строит и кэширует ограниченный каталог схем моделей Odoo.

Параметры
  • include_fieldsboolean

    Whether to include field metadata for each model.

  • instancestring | null

    Optional configured Odoo instance name; uses the default if omitted.

  • limitinteger

    Maximum catalog models to return; capped at 500.

  • modelsstring[] | null

    Optional technical model names to include in the catalog.

  • querystring | null

    Optional text used to filter catalog models.

  • refreshboolean

    Whether to bypass and refresh the cached catalog.

search_across_instancesтолько чтениеидемпотентныйвнешний мир

Поиск только для чтения, распределённый по настроенным экземплярам Odoo, объединённый и атрибутированный

Параметры
  • domainany | null
  • fieldsstring[] | null
  • instancesany | null
  • limit_per_instanceinteger
  • modelstringобязательный
search_employeeтолько чтениеидемпотентныйвнешний мир

Ищет сотрудников по имени.

Параметры
  • instancestring | null
  • limitinteger
  • namestringобязательный
search_holidaysтолько чтениеидемпотентныйвнешний мир

Ищет праздники в диапазоне дат.

Параметры
  • employee_idinteger | null

    Optional employee ID used to filter holidays.

  • end_datestringобязательный

    End date in YYYY-MM-DD format.

  • instancestring | null

    Optional configured Odoo instance name; uses the default if omitted.

  • start_datestringобязательный

    Start date in YYYY-MM-DD format.

search_knowledgeтолько чтениеидемпотентный

Локальный поиск BM25 с ранжированием по релевантности среди ранее проиндексированных записей.

Параметры
  • instancestring | null
  • limitinteger
  • modelstringобязательный
  • querystringобязательный
search_recordsтолько чтениеидемпотентныйвнешний мир

Ищет записи Odoo через read-only search_read; необязательный query в свободной форме ищет совпадения в полях name/ref/email-like.

Параметры
  • domainany | null
  • fieldsstring[] | null
  • instancestring | null
  • limitinteger
  • modelstringобязательный
  • offsetinteger
  • orderstring | null
  • querystring | null
submit_async_taskтолько чтениеидемпотентный

Запускает в фоне разрешённую длительную операцию чтения.

Параметры
  • instancestring | null
  • operationstringобязательный
  • paramsobject | null
upgrade_risk_reportтолько чтениеидемпотентный

Сообщает о рисках обновления Odoo и миграции JSON-2.

Параметры
  • include_debugboolean

    Whether to include additional diagnostic details.

  • methodsobject[] | null

    Optional model method metadata to assess for compatibility.

  • modulesobject[] | null

    Optional module metadata to assess for upgrade risks.

  • observed_errorsany[] | null

    Optional observed upgrade or migration errors to classify.

  • source_findingsobject[] | null

    Optional source-code findings to include in the risk report.

  • source_versionstring | null

    Optional current Odoo version.

  • target_versionstring | null

    Optional target Odoo version.

  • use_live_metadataboolean

    Whether to request live metadata; this preview tool does not fetch it.

validate_writeтолько чтениеидемпотентныйвнешний мир

Проверяет стандартный payload записи на соответствие необязательным метаданным fields_get.

Параметры
  • contextobject | null
  • fields_metadataobject | null
  • instancestring | null
  • modelstringобязательный
  • operationstringобязательный
  • record_idsinteger[] | null
  • use_live_metadataboolean
  • valuesobject | null
  • values_listobject[] | null

Похожие MCP-сервера

ivnvxd/mcp-server-odoo

ivnvxd/mcp-server-odoo

MCP-сервер для подключения ИИ-ассистентов к Odoo ERP. Доступны поиск, создание, обновление и удаление записей на естественном языке. Поддерживаются агрегация, вызов методов и YOLO-режим для быстрог...

Python383
tracegazer/invgate-service-desk-mcp

tracegazer/invgate-service-desk-mcp

MCP-сервер для InvGate Service Desk: AI-помощник получает доступ к 96 инструментам - управление инцидентами, поиск в базе знаний, работа с активами. По умолчанию только чтение, с опциональной запис...

Python3
STiFLeR7/memex

STiFLeR7/memex

memex — MCP-сервер с битемпоральным графом знаний для AI-агентов. Он превращает каждый коммит и изменение файлов в структурированную память: модули, решения и проблемы. Помогает Claude Code, Cursor...

Python12
Perspective-AI/mcp

Perspective-AI/mcp

MCP-сервер для Perspective AI превращает статические формы в адаптивные диалоги. Помогает бизнесу квалифицировать лиды, структурировать данные и запускать автоматизацию прямо из Claude, Cursor или ...

Shell5
Markgatcha/universal-mcp-toolkit

Markgatcha/universal-mcp-toolkit

Универсальный MCP инструмент с 27 готовыми серверами для GitHub, Slack и Notion, а также для баз данных и облачных платформ. С CLI для установки и запуска - идеален для разработчиков, ищущих единый набор качественных серверов.

TypeScript13
vercel/next-devtools-mcp

vercel/next-devtools-mcp

официальный

MCP сервер для разработки Next.js: предоставляет AI-ассистентам доступ к runtime диагностике живого сервера (ошибки, маршруты, логи), автоматизации (апгрейд до 16, Cache Components) и документации....

TypeScript819
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин