Odoo-MCP

Integra con sistemas ERP Odoo para gestionar datos y operaciones empresariales. Requiere configuración externa para los parámetros de conexión.

Documentación

Odoo-MCP

Un sistema de puente moderno para interactuar con sistemas ERP de Odoo a través de MCP (Model Context Protocol).

Características

  • Integración integral con Odoo: Acceso completo a modelos, registros y métodos de Odoo
  • Comunicación XML-RPC: Conexión segura a instancias de Odoo mediante XML-RPC
  • Configuración flexible: Soporte para archivos de configuración y variables de entorno
  • Sistema de patrones de recursos: Acceso basado en URI a las estructuras de datos de Odoo
  • Manejo de errores: Mensajes de error claros para problemas comunes de la API de Odoo
  • Operaciones sin estado: Ciclo limpio de solicitud/respuesta para una integración confiable

Herramientas

  • execute_method

    • Ejecuta un método personalizado en un modelo de Odoo
    • Entradas:
      • model (string): El nombre del modelo (p. ej., 'res.partner')
      • method (string): Nombre del método a ejecutar
      • args (arreglo opcional): Argumentos posicionales
      • kwargs (objeto opcional): Argumentos de palabra clave
    • Devuelve: Diccionario con el resultado del método e indicador de éxito
  • search_employee

    • Busca empleados por nombre
    • Entradas:
      • name (string): El nombre (o parte del nombre) a buscar
      • limit (número opcional): El número máximo de resultados a devolver (por defecto 20)
    • Devuelve: Objeto que contiene el indicador de éxito, la lista de nombres e IDs de empleados coincidentes y cualquier mensaje de error
  • search_holidays

    • Busca vacaciones dentro de un rango de fechas especificado
    • Entradas:
      • start_date (string): Fecha de inicio en formato YYYY-MM-DD
      • end_date (string): Fecha de fin en formato YYYY-MM-DD
      • employee_id (número opcional): ID de empleado opcional para filtrar vacaciones
    • Devuelve: Objeto que contiene el indicador de éxito, la lista de vacaciones encontradas y cualquier mensaje de error

Recursos

  • odoo://models

    • Lista todos los modelos disponibles en el sistema Odoo
    • Devuelve: Arreglo JSON con información de los modelos
  • odoo://model/{model_name}

    • Obtiene información sobre un modelo específico, incluidos sus campos
    • Ejemplo: odoo://model/res.partner
    • Devuelve: Objeto JSON con metadatos del modelo y definiciones de campos
  • odoo://record/{model_name}/{record_id}

    • Obtiene un registro específico por ID
    • Ejemplo: odoo://record/res.partner/1
    • Devuelve: Objeto JSON con los datos del registro
  • odoo://search/{model_name}/{domain}

    • Busca registros que coincidan con un dominio
    • Ejemplo: odoo://search/res.partner/[["is_company","=",true]]
    • Devuelve: Arreglo JSON de registros coincidentes (limitado a 10 por defecto)

Configuración

Configuración de la conexión a Odoo

  1. Crea un archivo de configuración llamado odoo_config.json:
{
  "url": "https://your-odoo-instance.com",
  "db": "your-database-name",
  "username": "your-username",
  "password": "your-password-or-api-key"
}
  1. Alternativamente, usa variables de entorno:
    • ODOO_URL: La URL de tu servidor Odoo
    • ODOO_DB: Nombre de la base de datos
    • ODOO_USERNAME: Nombre de usuario de inicio de sesión
    • ODOO_PASSWORD: Contraseña o clave de API
    • ODOO_TIMEOUT: Tiempo de espera de conexión en segundos (por defecto: 30)
    • ODOO_VERIFY_SSL: Si verificar los certificados SSL (por defecto: true)
    • HTTP_PROXY: Forzar que la conexión ODOO use un proxy HTTP

Uso con Claude Desktop

Añade esto a tu 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"
      }
    }
  }
}

Instalación

Paquete de Python

pip install odoo-mcp

Ejecutar el 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 .

Compilación

Compilación de Docker:

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

Guías de formato de parámetros

Al usar las herramientas MCP para Odoo, presta atención a estas guías de formato de parámetros:

  1. Parámetro de dominio:

    • Se admiten los siguientes formatos de dominio:
      • Formato de lista: [["field", "operator", value], ...]
      • Formato de objeto: {"conditions": [{"field": "...", "operator": "...", "value": "..."}]}
      • Cadena JSON de cualquiera de los formatos
    • Ejemplos:
      • Formato de lista: [["is_company", "=", true]]
      • Formato de objeto: {"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}
      • Múltiples condiciones: [["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]
  2. Parámetro de campos:

    • Debe ser un arreglo de nombres de campos: ["name", "email", "phone"]
    • El servidor intentará analizar las entradas de cadena como JSON

Licencia

Este servidor MCP está licenciado bajo la Licencia MIT.