Skip to main content
Glama

Odoo MCP Improved

by hachecito
DOCUMENTATION.md8.71 kB
# Documentación MCP-Odoo Mejorado ## Introducción Este documento describe las mejoras implementadas en el MCP (Model Context Protocol) para Odoo, que amplía significativamente las capacidades del repositorio original añadiendo nuevas herramientas, recursos y prompts para las áreas de ventas, compras, inventario y contabilidad. El objetivo de estas mejoras es proporcionar una integración más completa y funcional entre Odoo ERP y los modelos de lenguaje como Claude, permitiendo interacciones más ricas y útiles en contextos empresariales. ## Arquitectura La arquitectura del MCP-Odoo mejorado sigue un diseño modular que facilita la extensión y el mantenimiento: ``` mcp-odoo/ ├── src/ │ └── odoo_mcp/ │ ├── __init__.py # Inicialización del paquete │ ├── server.py # Servidor MCP principal │ ├── odoo_client.py # Cliente para conexión con Odoo │ ├── models.py # Modelos Pydantic para validación │ ├── extensions.py # Registro centralizado de extensiones │ ├── prompts.py # Prompts para análisis y asistencia │ ├── resources.py # Recursos MCP (URIs) │ ├── tools_sales.py # Herramientas para ventas │ ├── tools_purchase.py # Herramientas para compras │ ├── tools_inventory.py # Herramientas para inventario │ └── tools_accounting.py # Herramientas para contabilidad ├── pyproject.toml # Configuración del paquete ├── Dockerfile # Configuración para Docker └── validation.py # Script de validación ``` ## Nuevas Funcionalidades ### 1. Herramientas (Tools) Las herramientas permiten a los modelos de lenguaje realizar acciones específicas en Odoo: #### Ventas - `search_sales_orders`: Busca órdenes de venta con filtros avanzados - `create_sales_order`: Crea una nueva orden de venta - `analyze_sales_performance`: Analiza el rendimiento de ventas por período, producto o cliente - `get_customer_insights`: Obtiene información detallada sobre un cliente específico #### Compras - `search_purchase_orders`: Busca órdenes de compra con filtros avanzados - `create_purchase_order`: Crea una nueva orden de compra - `analyze_supplier_performance`: Analiza el rendimiento de proveedores #### Inventario - `check_product_availability`: Verifica la disponibilidad de stock para productos - `create_inventory_adjustment`: Crea un ajuste de inventario - `analyze_inventory_turnover`: Calcula y analiza la rotación de inventario #### Contabilidad - `search_journal_entries`: Busca asientos contables con filtros - `create_journal_entry`: Crea un nuevo asiento contable - `analyze_financial_ratios`: Calcula ratios financieros clave ### 2. Recursos (Resources) Los recursos proporcionan acceso a datos de Odoo mediante URIs: #### Ventas - `odoo://sales/orders`: Lista órdenes de venta - `odoo://sales/order/{order_id}`: Obtiene detalles de una orden específica - `odoo://sales/products`: Lista productos vendibles - `odoo://sales/customers`: Lista clientes #### Compras - `odoo://purchase/orders`: Lista órdenes de compra - `odoo://purchase/order/{order_id}`: Obtiene detalles de una orden específica - `odoo://purchase/suppliers`: Lista proveedores #### Inventario - `odoo://inventory/products`: Lista productos en inventario - `odoo://inventory/stock/{location_id}`: Obtiene niveles de stock en una ubicación - `odoo://inventory/movements`: Lista movimientos de inventario #### Contabilidad - `odoo://accounting/accounts`: Lista cuentas contables - `odoo://accounting/journal_entries`: Lista asientos contables - `odoo://accounting/reports/{report_type}`: Obtiene informes financieros ### 3. Prompts Se han añadido prompts especializados para diferentes áreas: - **Análisis de ventas**: Prompts para analizar tendencias, rendimiento y oportunidades - **Gestión de inventario**: Prompts para optimización de stock y planificación - **Planificación de recursos humanos**: Prompts para gestión de personal y horarios - **Análisis financiero**: Prompts para interpretación de datos contables y financieros ## Guía de Uso ### Instalación #### Opción 1: Usando el paquete de Python ```bash # Clonar el repositorio git clone https://github.com/tuanle96/mcp-odoo.git cd mcp-odoo # Instalar el paquete pip install -e . # Ejecutar como módulo python -m src.odoo_mcp ``` #### Opción 2: Usando Docker ```bash # Construir la imagen docker build -t mcp/odoo:latest -f Dockerfile . # Ejecutar el contenedor docker run -i --rm \ -e ODOO_URL=https://tu-instancia-odoo.com \ -e ODOO_DB=nombre-de-tu-base-de-datos \ -e ODOO_USERNAME=tu-usuario \ -e ODOO_PASSWORD=tu-contraseña \ mcp/odoo ``` ### Configuración El MCP-Odoo puede configurarse mediante variables de entorno o un archivo de configuración: #### Variables de entorno ```bash export ODOO_URL=https://tu-instancia-odoo.com export ODOO_DB=nombre-de-tu-base-de-datos export ODOO_USERNAME=tu-usuario export ODOO_PASSWORD=tu-contraseña ``` #### Archivo de configuración Crear un archivo `odoo_config.json` en el directorio de trabajo: ```json { "url": "https://tu-instancia-odoo.com", "db": "nombre-de-tu-base-de-datos", "username": "tu-usuario", "password": "tu-contraseña" } ``` ### Integración con Claude Desktop Para usar el MCP-Odoo con Claude Desktop, añade la siguiente configuración a tu `claude_desktop_config.json`: ```json { "mcpServers": { "odoo": { "command": "python", "args": ["-m", "src.odoo_mcp"], "env": { "ODOO_URL": "https://tu-instancia-odoo.com", "ODOO_DB": "nombre-de-tu-base-de-datos", "ODOO_USERNAME": "tu-usuario", "ODOO_PASSWORD": "tu-contraseña" } } } } ``` Para usar la versión Docker: ```json { "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://tu-instancia-odoo.com", "ODOO_DB": "nombre-de-tu-base-de-datos", "ODOO_USERNAME": "tu-usuario", "ODOO_PASSWORD": "tu-contraseña" } } } } ``` ## Ejemplos de Uso ### Ejemplo 1: Análisis de ventas ``` Usando el MCP de Odoo, analiza las ventas del último trimestre y muestra los productos más vendidos. ``` ### Ejemplo 2: Verificación de inventario ``` Verifica la disponibilidad de stock para los productos X, Y y Z en el almacén principal. ``` ### Ejemplo 3: Análisis financiero ``` Calcula los ratios de liquidez y rentabilidad para el año fiscal actual y compáralos con el año anterior. ``` ### Ejemplo 4: Creación de órdenes de compra ``` Crea una orden de compra para el proveedor ABC con los siguientes productos: 10 unidades del producto X y 5 unidades del producto Y. ``` ## Extensión del Sistema El sistema está diseñado para ser fácilmente extensible. Para añadir nuevas funcionalidades: 1. **Nuevas herramientas**: Crea un nuevo archivo `tools_*.py` siguiendo el patrón existente 2. **Nuevos recursos**: Añade nuevos recursos en `resources.py` 3. **Nuevos prompts**: Añade nuevos prompts en `prompts.py` 4. **Registro de extensiones**: Actualiza `extensions.py` para registrar las nuevas funcionalidades ## Solución de Problemas ### Problemas de conexión Si experimentas problemas de conexión con Odoo: 1. Verifica las credenciales en las variables de entorno o archivo de configuración 2. Asegúrate de que la URL de Odoo es accesible desde donde ejecutas el MCP 3. Verifica que el usuario tiene permisos suficientes en Odoo ### Errores en las herramientas Si una herramienta devuelve un error: 1. Revisa los parámetros proporcionados 2. Verifica que los IDs de registros existen en Odoo 3. Comprueba los permisos del usuario para la operación específica ## Validación Se incluye un script de validación (`validation.py`) que puede ejecutarse para verificar que todas las funcionalidades están correctamente implementadas y son compatibles con tu instancia de Odoo: ```bash python validation.py ``` ## Contribución Las contribuciones son bienvenidas. Para contribuir: 1. Haz un fork del repositorio 2. Crea una rama para tu funcionalidad (`git checkout -b feature/nueva-funcionalidad`) 3. Realiza tus cambios y añade pruebas 4. Envía un pull request ## Licencia Este proyecto se distribuye bajo la misma licencia que el repositorio original.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hachecito/odoo-mcp-improved'

If you have feedback or need assistance with the MCP directory API, please join our Discord server