Skip to main content

MCP server and CLI for Odoo ERP integration via JSON-RPC (tasks & timesheets)

Project description

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"]
    }
  }
}

Возможности

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

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

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

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

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

  • Фильтр проектов: ODOO_ALLOWED_PROJECTS=99,101 — ограничить видимые проекты
  • 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 11 доменных объектов
JSON-RPC Reference 9 задокументированных эндпоинтов
ADR 6 архитектурных решений
CONTRIBUTING Как внести вклад
SECURITY Политика безопасности

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_odoo_jsonrpc-0.1.0.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_odoo_jsonrpc-0.1.0-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_odoo_jsonrpc-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_odoo_jsonrpc-0.1.0.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_odoo_jsonrpc-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a1622a9cd4ad9fc1910d1f199841a820b069d2fdc0f37cc8d271e573613fca79
MD5 dcab1f97e54dbfe1814139c010c0ba74
BLAKE2b-256 1617ca66ba2aa10cfe81fcab596b6da6587e53329799e55cd1a95797af42cf5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_odoo_jsonrpc-0.1.0.tar.gz:

Publisher: release.yml on daniilpet/mcp-odoo-jsonrpc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_odoo_jsonrpc-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_odoo_jsonrpc-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 764a2e3ae501b6f5d45f77ba28fa39c408ffc8104aa7a6362061c946d4c798c0
MD5 0a3ae3f2b04aa36950a3f5f7a061c6c7
BLAKE2b-256 4b05fd51f2acaf9aba10cc19ea67b125b2e6945bb1429fea95f026db0c9f82c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_odoo_jsonrpc-0.1.0-py3-none-any.whl:

Publisher: release.yml on daniilpet/mcp-odoo-jsonrpc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page