Panda Odoo

Un servidor MCP para integrarse con el sistema ERP Odoo.

Documentación

mcp-odoo-panda

License: MIT Python 3.10+ MCP

Un servidor MCP para Odoo — permite que Claude, Cursor o cualquier cliente MCP busque, lea, cree, actualice y llame métodos en tu ERP Odoo.

Para desarrolladores e integradores que quieren herramientas de Odoo dentro de un cliente LLM sin escribir un conector personalizado.

Odoo MCP Server

Inicio rápido

Requisitos: Python 3.10+, una instancia de Odoo 15+ a la que puedas acceder (local o remota).

  1. Instalar

    git clone https://github.com/pandeussilvae/mcp-odoo-panda.git
    cd mcp-odoo-panda
    pip install .
    
  2. Configurar desde el ejemplo

    cp odoo_mcp/config/config.example.yaml odoo_mcp/config/config.yaml
    # edit config.yaml — set odoo_url, database, username, api_key
    
  3. Elegir cómo se conectan los clientes (solo MCP protocolVersion 2026-07-28)

    ModoCuándo usarlo
    stdio (predeterminado)Claude Desktop / Cursor en la misma máquina (SDK oficial mcp)
    mcp_2026_07_28HTTP Streamable remoto (POST /mcp vía mcp_sdk_server)

    Establece connection_type en config.yaml (consulta stdio vs Streamable HTTP).

  4. Ejecutar

    odoo-mcp-server --config odoo_mcp/config/config.yaml
    # or: python -m odoo_mcp.core.mcp_server --config odoo_mcp/config/config.yaml
    
  5. Conecta tu cliente MCP (Claude Desktop / Cursor) — consulta Conectar Claude o Cursor.

Alternativa con Docker: docker compose up -d (stack de laboratorio; valores predeterminados solo para desarrollo).

Configuración mínima

Punto de partida de copiar y pegar (odoo_mcp/config/config.yaml):

odoo_url: http://localhost:8069
database: your_database
username: your_username
api_key: your_password_or_api_key

protocol: xmlrpc
connection_type: stdio
transport_type: stdio

Las variables de entorno sobrescriben el archivo cuando están definidas: ODOO_URL, ODOO_DB, ODOO_USER, ODOO_PASSWORD.

stdio vs Streamable HTTP

Ambos transportes hablan MCP protocolVersion: 2026-07-28 mediante el SDK oficial de Python mcp (≥2.1.1).

  • stdio — el cliente MCP inicia este proceso y se comunica a través de stdin/stdout (solo SDK moderno). Ideal para aplicaciones de escritorio (Claude, Cursor). Sin puerto abierto.
  • mcp_2026_07_28 (alias http) — HTTP Streamable en POST /mcp (mcp_sdk_server + uvicorn). Úsalo para remoto / Docker.

Nota de migración

Se eliminaron SSE / HTTP pre-2026-07-28. connection_type: sse, streamable_http y modern_http fallan al iniciar. Actualiza los clientes a sobres 2026-07-28 (server/discover, _meta por solicitud).

Ejemplo HTTP (desarrollo):

connection_type: mcp_2026_07_28
http:
  host: 127.0.0.1   # prefer loopback; 0.0.0.0 is DEV-ONLY
  port: 8080

Conectar Claude o Cursor

Cursor — agrega una entrada de servidor MCP (Configuración → MCP), por ejemplo:

{
  "mcpServers": {
    "odoo": {
      "command": "odoo-mcp-server",
      "args": ["--config", "/absolute/path/to/mcp-odoo-panda/odoo_mcp/config/config.yaml"]
    }
  }
}

Claude Desktop — misma estructura en su archivo de configuración MCP (claude_desktop_config.json): command + args apuntando a tu instalación y configuración.

Usa rutas absolutas. No confirmes configuraciones de cliente que incluyan contraseñas reales.

Qué obtienes

  • Buscar / leer / crear / escribir / desvincular registros de Odoo
  • Llamar métodos personalizados de modelos
  • Manejo de sesiones, límite de velocidad, CORS HTTP opcional
  • MCP Streamable HTTP mediante SDK oficial (CONNECTION_TYPE=mcp_2026_07_28; protocolo 2026-07-28)

Seguridad

  • Nunca confirmes contraseñas reales o claves API. Mantén config.yaml local (está en gitignore); solo config.example.yaml se rastrea.
  • Los valores predeterminados de contraseña de Compose / Dockerfile admin son SOLO PARA DESARROLLO para un laboratorio local.
  • El enlace 0.0.0.0 y CORS allowed_origins: ["*"] son SOLO PARA DESARROLLO. En producción usa loopback o una interfaz privada y orígenes explícitos.
  • Prefiere variables de entorno o un administrador de secretos para credenciales.

Independiente

Este proyecto es un servidor MCP MIT independiente para una sola conexión de Odoo. No es una puerta de enlace SaaS multiinquilino. Consulta ODWARD_BOUNDARY.md.

Opcional: utilizado por Odward Connect como motor ascendente; esa integración vive fuera de este repositorio.

Documentación más detallada

DocumentoTema
CONFIGURATION.mdReferencia completa de configuración
docs/API_REFERENCE.mdHerramientas / API
docs/DEVELOPER_GUIDE.mdArquitectura para colaboradores
docs/DOCKER_DEPLOYMENT.mdNotas de Docker
docs/server_usage.mdUso del servidor
LEGGIMI.mdInicio rápido en italiano

Notas históricas de refactorización (cuando existan) viven bajo docs/archive/.

Licencia

MIT — consulta LICENSE.


Desarrollado por Paolo Nugnes y TechLab · info@techlab.it · support@techlab.it