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

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/Leov3/Odoo-MCP-gateway'

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