Skip to main content

MCP Odoo JSON-RPC

CI Python 3.12+ MCP Odoo 17 License: MIT Code style: ruff Security: detect-secrets Conventional Commits

MCP-сервер и CLI для управления задачами и трудозатратами в Odoo ERP через JSON-RPC протокол.


Что это?

Odoo не предоставляет публичного REST/GraphQL API. Этот инструмент использует внутренний JSON-RPC протокол веб-клиента Odoo 17 и предоставляет два способа доступа:

  • mcp-odoo-server — MCP-сервер для Claude Code и других AI-ассистентов
  • mcp-odoo-cli — интерактивный терминальный клиент для человека

Scope: проектные задачи + трудозатраты (timesheets). Другие модули Odoo (CRM, Sales, Inventory) пока не поддерживаются.

Быстрый старт

Установка

pip install mcp-odoo-jsonrpc

Авторизация

mcp-odoo-cli login --url https://odoo.example.com

Откроется браузер — войдите в Odoo. Сессия сохранится автоматически в системное хранилище (Windows Credential Manager / macOS Keychain / GNOME Keyring).

CLI

mcp-odoo-cli

MCP-сервер (для Claude Code)

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": ["-m", "mcp_odoo_jsonrpc"]
    }
  }
}

Docker

docker build -t mcp-odoo .
{
  "mcpServers": {
    "odoo": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "ODOO_BASE_URL",
        "-e", "ODOO_SESSION_ID",
        "-e", "ODOO_UID",
        "-e", "ODOO_COMPANY_IDS",
        "-e", "ODOO_TRUST_MODE",
        "mcp-odoo"
      ],
      "env": {
        "ODOO_BASE_URL": "https://odoo.example.com",
        "ODOO_SESSION_ID": "your_session_id",
        "ODOO_UID": "1",
        "ODOO_COMPANY_IDS": "1",
        "ODOO_TRUST_MODE": "restricted"
      }
    }
  }
}

Возможности

Задачи и трудозатраты

Инструмент Описание
list_tasks Получение списка задач пользователя
get_task Детали задачи с обсуждениями и вложениями
create_task Создание новой задачи в проекте
update_task Обновление задачи (название, описание и пр.)
change_task_stage Смена стадии/статуса задачи
log_timesheet Списание трудозатрат по задаче
get_timesheets Получение трудозатрат по задаче

Wiki (document.page)

Инструмент Описание
list_wiki_pages Список wiki-страниц и категорий
get_wiki_page Содержимое страницы (с фильтром секретов)
create_wiki_page Создание wiki-страницы в категории
search_wiki Поиск страниц по названию

Безопасность

MCP-сервер работает в restricted mode по умолчанию — AI видит только структурные данные без корпоративного контента:

Режим Что видит AI Активация
restricted ID, стадия, часы, дедлайн. Без названий и текста По умолчанию
full Все данные: названия, описания, сообщения ODOO_TRUST_MODE=full

Дополнительные меры:

  • Фильтр проектов: ODOO_ALLOWED_PROJECTS=99,101 — ограничить видимые проекты
  • Wiki: фильтр секретов: страницы с паролями, ключами и токенами цензурируются автоматически даже в full mode (ADR-009)
  • Secure credentials: session_id хранится в системном keyring, не в plaintext
  • detect-secrets: pre-commit hook предотвращает случайный коммит секретов
  • CLI: всегда работает в full mode (пользователь смотрит в свой терминал)

Подробнее: SECURITY.md | ADR-005: Модель безопасности

Конфигурация

Через CLI (рекомендуется)

mcp-odoo-cli login --url https://odoo.example.com

Через переменные окружения

Переменная Обязательная Описание
ODOO_BASE_URL Да Базовый URL инстанса Odoo
ODOO_SESSION_ID Да Значение cookie session_id
ODOO_UID Да ID пользователя в Odoo
ODOO_EMPLOYEE_ID Нет ID сотрудника (по умолчанию = UID)
ODOO_COMPANY_IDS Да ID компаний (через запятую)
ODOO_TRUST_MODE Нет restricted (по умолчанию) или full
ODOO_ALLOWED_PROJECTS Нет Фильтр проектов (ID через запятую)
ODOO_LANG Нет Язык (по умолчанию: ru_RU)
ODOO_TZ Нет Часовой пояс (по умолчанию: Europe/Moscow)

См. .env.example

Архитектура

Odoo ERP (JSON-RPC)
     ↑
Anti-Corruption Layer
  ├── Transport   (httpx + session_id cookie)
  ├── Protocol    (JSON-RPC envelope, specifications)
  └── Mapper  (Odoo records ↔ Domain objects)
     ↑
Service Layer (OdooTaskService)
  ├── MCP Server  (строки для AI)
  └── CLI         (rich таблицы для человека)

DDD-паттерн: Conformist + Anti-Corruption Layer. Подробнее: Context Map | Domain Model

Технологический стек

Компонент Технология
Язык Python 3.12+
MCP SDK mcp v1.12+
HTTP httpx
Модели pydantic v2
TUI rich
Credentials keyring
Browser auth playwright (dev)
Lint ruff
CI GitHub Actions
Odoo 17

Документация

Документ Описание
Context Map Архитектура и DDD-паттерны
Domain Model 14 доменных объектов
JSON-RPC Reference 9 задокументированных эндпоинтов
ADR 9 архитектурных решений
CONTRIBUTING Как внести вклад
SECURITY Политика безопасности

Лицензия

MIT

Metadata

Release files for mcp-odoo-jsonrpc 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-odoo-jsonrpc 0.3.0
File Size Uploaded Provenance Actions
mcp_odoo_jsonrpc-0.3.0.tar.gz 34.7 kB With provenance Details for mcp_odoo_jsonrpc-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mcp-odoo-jsonrpc 0.3.0
File Interpreter ABI Platform Actions
mcp_odoo_jsonrpc-0.3.0-py3-none-any.whl Python 3 none any Details for mcp_odoo_jsonrpc-0.3.0-py3-none-any.whl

Total release size: 65.5 kB

Release files / mcp_odoo_jsonrpc-0.3.0.tar.gz

Download URL mcp_odoo_jsonrpc-0.3.0.tar.gz
Size 34.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ea22aba81834284926127998ab0a435e7c8a4959f5cf734ec46d88467e813be5
BLAKE2b-256 checksum
How to use checksums
8c69292e1f886a06fb3d3389865400355c590669eb23d7e1e2db8b4eb6a37e5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.

Transparency log

Release files / mcp_odoo_jsonrpc-0.3.0-py3-none-any.whl

Download URL mcp_odoo_jsonrpc-0.3.0-py3-none-any.whl
Size 30.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9659e16439f2d8836db0dff68238f9b9cedb9e200fea5ec38a5ea452e631db1c
BLAKE2b-256 checksum
How to use checksums
c4e6e10184a0ddebb132ced97dc1152cd49a5f62cad079c4e71ec6b388423dec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.

Transparency log

Security for mcp-odoo-jsonrpc 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mcp_odoo_jsonrpc-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page