Odoo-MCP

Integre com sistemas ERP Odoo para gerenciar dados e operações de negócios. Requer configuração externa para parâmetros de conexão.

Documentação

Odoo-MCP

Um sistema de ponte moderno para interagir com sistemas ERP Odoo através do MCP (Model Context Protocol).

Recursos

  • Integração Abrangente com Odoo: Acesso completo a modelos, registros e métodos do Odoo
  • Comunicação XML-RPC: Conexão segura a instâncias Odoo via XML-RPC
  • Configuração Flexível: Suporte a arquivos de configuração e variáveis de ambiente
  • Sistema de Padrão de Recursos: Acesso baseado em URI a estruturas de dados do Odoo
  • Tratamento de Erros: Mensagens de erro claras para problemas comuns da API do Odoo
  • Operações Sem Estado: Ciclo limpo de requisição/resposta para integração confiável

Ferramentas

  • execute_method

    • Executa um método personalizado em um modelo Odoo
    • Entradas:
      • model (string): O nome do modelo (ex.: 'res.partner')
      • method (string): Nome do método a executar
      • args (array opcional): Argumentos posicionais
      • kwargs (objeto opcional): Argumentos de palavra-chave
    • Retorna: Dicionário com o resultado do método e indicador de sucesso
  • search_employee

    • Busca funcionários por nome
    • Entradas:
      • name (string): O nome (ou parte do nome) a ser pesquisado
      • limit (número opcional): O número máximo de resultados a retornar (padrão 20)
    • Retorna: Objeto contendo indicador de sucesso, lista de nomes e IDs de funcionários correspondentes e qualquer mensagem de erro
  • search_holidays

    • Busca feriados dentro de um intervalo de datas especificado
    • Entradas:
      • start_date (string): Data de início no formato YYYY-MM-DD
      • end_date (string): Data de término no formato YYYY-MM-DD
      • employee_id (número opcional): ID de funcionário opcional para filtrar feriados
    • Retorna: Objeto contendo indicador de sucesso, lista de feriados encontrados e qualquer mensagem de erro

Recursos

  • odoo://models

    • Lista todos os modelos disponíveis no sistema Odoo
    • Retorna: Array JSON de informações dos modelos
  • odoo://model/{model_name}

    • Obtém informações sobre um modelo específico, incluindo campos
    • Exemplo: odoo://model/res.partner
    • Retorna: Objeto JSON com metadados do modelo e definições de campos
  • odoo://record/{model_name}/{record_id}

    • Obtém um registro específico por ID
    • Exemplo: odoo://record/res.partner/1
    • Retorna: Objeto JSON com dados do registro
  • odoo://search/{model_name}/{domain}

    • Busca registros que correspondam a um domínio
    • Exemplo: odoo://search/res.partner/[["is_company","=",true]]
    • Retorna: Array JSON de registros correspondentes (limitado a 10 por padrão)

Configuração

Configuração da Conexão Odoo

  1. Crie um arquivo de configuração chamado odoo_config.json:
{
  "url": "https://your-odoo-instance.com",
  "db": "your-database-name",
  "username": "your-username",
  "password": "your-password-or-api-key"
}
  1. Alternativamente, use variáveis de ambiente:
    • ODOO_URL: URL do seu servidor Odoo
    • ODOO_DB: Nome do banco de dados
    • ODOO_USERNAME: Nome de usuário de login
    • ODOO_PASSWORD: Senha ou chave de API
    • ODOO_TIMEOUT: Tempo limite de conexão em segundos (padrão: 30)
    • ODOO_VERIFY_SSL: Se deve verificar certificados SSL (padrão: true)
    • HTTP_PROXY: Força a conexão ODOO a usar um proxy HTTP

Uso com Claude Desktop

Adicione isto ao seu claude_desktop_config.json:

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": ["-m", "odoo_mcp"],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.com",
        "ODOO_DB": "your-database-name",
        "ODOO_USERNAME": "your-username",
        "ODOO_PASSWORD": "your-password-or-api-key"
      }
    }
  }
}

Docker

{
  "mcpServers": {
    "odoo": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ODOO_URL",
        "-e",
        "ODOO_DB",
        "-e",
        "ODOO_USERNAME",
        "-e",
        "ODOO_PASSWORD",
        "mcp/odoo"
      ],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.com",
        "ODOO_DB": "your-database-name",
        "ODOO_USERNAME": "your-username",
        "ODOO_PASSWORD": "your-password-or-api-key"
      }
    }
  }
}

Instalação

Pacote Python

pip install odoo-mcp

Executando o Servidor

# Using the installed package
odoo-mcp

# Using the MCP development tools
mcp dev odoo_mcp/server.py

# With additional dependencies
mcp dev odoo_mcp/server.py --with pandas --with numpy

# Mount local code for development
mcp dev odoo_mcp/server.py --with-editable .

Build

Build Docker:

docker build -t mcp/odoo:latest -f Dockerfile .

Diretrizes de Formatação de Parâmetros

Ao usar as ferramentas MCP para Odoo, preste atenção a estas diretrizes de formatação de parâmetros:

  1. Parâmetro de Domínio:

    • Os seguintes formatos de domínio são suportados:
      • Formato de lista: [["field", "operator", value], ...]
      • Formato de objeto: {"conditions": [{"field": "...", "operator": "...", "value": "..."}]}
      • String JSON de qualquer um dos formatos
    • Exemplos:
      • Formato de lista: [["is_company", "=", true]]
      • Formato de objeto: {"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}
      • Múltiplas condições: [["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]
  2. Parâmetro de Campos:

    • Deve ser um array de nomes de campos: ["name", "email", "phone"]
    • O servidor tentará interpretar entradas de string como JSON

Licença

Este servidor MCP é licenciado sob a Licença MIT.