Skip to main content
Glama
Leov3

Odoo MCP Gateway

by Leov3

Odoo MCP Gateway

MVP funcional en FastAPI para administrar múltiples instancias de Odoo desde un panel simple y exponer tools MCP desde un único servicio.

Requisitos

  • Python 3.12

  • Docker y Docker Compose

Related MCP server: Odoo Dev MCP Server

Generar ENCRYPTION_KEY

python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

Configuración local

  1. Copia .env.example a .env.

  2. Completa estas variables:

    • ADMIN_USER

    • ADMIN_PASSWORD

    • MCP_BEARER_TOKEN

    • ENCRYPTION_KEY

    • APP_SECRET_KEY

Ejecutar con Docker

docker compose up --build

La aplicación queda disponible en:

  • Panel admin: http://localhost:8000/admin

  • Login: http://localhost:8000/admin/login

  • Ajustes de usuario: http://localhost:8000/admin/settings

  • Health check: http://localhost:8000/health

  • MCP por instancia: http://localhost:8000/<instancia>/mcp/

Entrar al panel

Usa el usuario y contraseña definidos en:

  • ADMIN_USER

  • ADMIN_PASSWORD

Desde Settings puedes cambiar el nombre de usuario y la contraseña del único admin.

Configurar Easypanel

Ver Guia de despliegue.

Conectar un cliente MCP

Cada instancia configurada expone su propio endpoint MCP. El formato es:

https://tu-dominio/<instancia>/mcp/

El endpoint requiere este encabezado:

Authorization: Bearer <MCP_BEARER_TOKEN>

Ejemplo:

curl -H "Authorization: Bearer change_me_long_random_token" https://tu-dominio/compraloahora/mcp/

n8n

Para n8n usa MCP Client con:

  • Server Transport: HTTP Streamable

  • MCP Endpoint URL: https://tu-dominio/compraloahora/mcp/

  • Authentication: Bearer Auth o Header Auth

  • Si usas Bearer Auth, pega solo el token.

  • Si usas Header Auth, define exactamente:

    • Authorization: Bearer <MCP_BEARER_TOKEN>

Si el nodo falla con Bearer Auth, cambia a Header Auth para forzar exactamente ese header.

Las tools ya quedan ligadas a la instancia del endpoint, así que no necesitas pasar instance en cada llamada.

Tools expuestas actualmente:

  • odoo_test_connection

  • odoo_search_partners

  • odoo_search_leads

  • odoo_create_lead

  • odoo_search_sale_orders

  • odoo_create_partner

  • odoo_search_products

  • odoo_search_products_by_sku

  • odoo_search_products_by_category

  • odoo_search_product_variants

  • odoo_search_products_by_stock

  • odoo_get_partner

  • odoo_update_partner

  • odoo_get_product

  • odoo_get_product_pricing

  • odoo_get_stock_availability

  • odoo_get_sale_order

  • odoo_create_quotation

  • odoo_add_quotation_line

  • odoo_update_quotation_line

  • odoo_confirm_quotation

  • odoo_send_quotation

  • odoo_cancel_sale_order

  • odoo_update_lead_stage

  • odoo_set_next_activity

  • odoo_log_note

  • odoo_search_pipeline

  • odoo_search_my_activities

Herramientas de negocio para Mario, pensadas para que n8n gestione el flujo comercial y el estado conversacional fuera del MCP:

  • buscar_cliente_por_telefono

  • crear_o_actualizar_cliente_whatsapp

  • buscar_producto_venta

  • consultar_disponibilidad

  • crear_cotizacion_whatsapp

  • actualizar_cotizacion_whatsapp

  • confirmar_cotizacion_whatsapp

  • consultar_estado_pedido

  • crear_actividad_para_vendedor

Prompt recomendado para el agente:

Validado en esta instalación

  • Endpoint MCP: https://dev-odoo-mcp-gateway.ouiteb.easypanel.host/compraloahora/mcp/

  • Instancia activa: Compraloahora

  • URL Odoo: https://odoo-concept-compralo-ahora-staging-compraloahora-33072015.dev.odoo.com

  • Version: 17

  • API mode: xmlrpc

  • odoo_test_connection: OK

Seguridad

  • No compartas el MCP_BEARER_TOKEN.

  • No subas .env al repositorio.

  • El secreto de cada instancia se guarda cifrado con Fernet.

  • En edición, el campo secreto se deja vacío y solo se actualiza si escribes uno nuevo.

  • Este proyecto no incluye multiusuario, OAuth, ni permisos avanzados.

  • El estado conversacional de Mario debe vivir en el agente de n8n, no en el MCP.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An Odoo module that embeds an MCP server, enabling AI agents to directly access Odoo capabilities such as terminal control, database operations, filesystem management, ORM execution, and service administration.
    4
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables ERPNext management, file operations, read-only database access, and ERPNext API integration through a standardized MCP server.
    4
    MIT