iaisep/odoo-mcp-server
If you are the rightful owner of odoo-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This project implements an MCP (Model Context Protocol) server in Python that connects with Odoo 16 via XML-RPC to manage CRM leads and partners, integrated with Anthropic Claude for natural language processing.
MCP Server para Odoo CRM/Partner + Anthropic LLM
Este proyecto implementa un servidor MCP (Model Context Protocol) en Python que conecta con Odoo 16 vía XML-RPC para gestionar leads del CRM y partners, integrado con Anthropic Claude para procesamiento de lenguaje natural.
🚀 Características
- Conexión con Odoo 16: Interacción completa con modelos
crm_leadyres_partner - Integración Anthropic: Procesamiento de consultas en lenguaje natural
- Servidor MCP completo: Compatible con clientes MCP como Claude Desktop
- Herramientas especializadas: 12 herramientas para gestión completa de CRM
📋 Requisitos
- Python 3.8+
- Acceso a Odoo 16 con API XML-RPC habilitada
- API Key de Anthropic
- Cliente MCP (como Claude Desktop)
⚡ Instalación rápida
- Clonar y configurar entorno:
git clone <tu-repo>
cd odoo-mcp-server
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
- Instalar dependencias:
pip install -r requirements.txt
- Configurar variables de entorno:
cp .env.example .env
# Editar .env con tus credenciales
- Probar el servidor:
python main.py
🔧 Configuración
Variables de entorno (.env)
# Odoo Configuration
ODOO_URL=https://tu-odoo-server.com
ODOO_DB=tu_base_de_datos
ODOO_USERNAME=tu_usuario
ODOO_PASSWORD=tu_password
# Anthropic Configuration
ANTHROPIC_API_KEY=sk-ant-api03-...
# MCP Configuration
MCP_SERVER_NAME=odoo-mcp-server
MCP_SERVER_VERSION=1.0.0
Claude Desktop
Agregar en claude_desktop_config.json:
{
"mcpServers": {
"odoo-mcp-server": {
"command": "python",
"args": ["C:\\ruta\\completa\\al\\main.py"],
"cwd": "C:\\ruta\\completa\\al\\directorio"
}
}
}
🛠️ Herramientas disponibles
🔍 Gestión de Leads
get_leads- Consultar leads con filtros avanzadoscreate_lead- Crear nuevos leadsupdate_lead- Actualizar leads existentes
👥 Gestión de Partners
get_partners- Consultar partners/contactoscreate_partner- Crear nuevos partnersupdate_partner- Actualizar partners existentes
🤖 Inteligencia Artificial
natural_language_query- Procesar consultas en lenguaje naturalinterpret_odoo_action- Convertir texto a acciones de Odooexecute_natural_update- 🚀 Actualizaciones masivas con lenguaje natural (NUEVO)
🚀 Actualizaciones Masivas con IA
Nueva funcionalidad revolucionaria que permite ejecutar actualizaciones masivas usando instrucciones en lenguaje natural:
# Ejemplos de instrucciones
"Llenar el email_from con 'info@universidad.edu' para leads con 'Universidad' en el nombre y email vacío"
"Actualizar phone a '+57-1-555-0000' para todos los leads de Bogotá sin teléfono"
"Cambiar stage_id a 2 para leads creados esta semana"
"Asignar user_id = 5 a leads sin asignar con 'Ingeniería' en programa de interés"
Parámetros:
instruction(requerido): Instrucción en lenguaje naturalmodel: Modelo Odoo (defecto: 'crm.lead')dry_run: Modo simulación (defecto: True)max_records: Límite de registros (defecto: 100)
Características de seguridad:
- ✅ Modo simulación por defecto
- ✅ Límites configurables
- ✅ Vista previa antes de ejecutar
- ✅ Interpretación IA con Claude
- ✅ Validación de criterios
🎯 Herramientas auxiliares
test_connections- Probar conectividadget_crm_stages- Obtener etapas del CRMget_crm_teams- Obtener equipos de ventasget_countries- Obtener lista de países
📊 Casos de uso específicos
Contexto universitario
El servidor está optimizado para instituciones educativas con campos específicos:
x_studio_programa_academico- Programa académico de interésx_studio_canal_de_contacto- Canal de primer contactox_studio_programa_de_inters- Programa específico de interésprogress- Progreso del proceso de admisiónmanage_reason- Motivo de gestión del lead
Consultas inteligentes
# Ejemplos de consultas en lenguaje natural:
"Encuentra todos los leads interesados en ingeniería que no han sido contactados"
"Crea un lead para Juan Pérez interesado en Administración de Empresas"
"Actualiza el progreso del lead 123 al 75%"
🔗 Integración con modelos de datos
Basado en el diccionario de datos de UniversidadISep, el servidor maneja:
Tabla crm_lead (103 campos)
- Información básica: name, contact_name, email_from, phone
- Ubicación: street, city, zip, country_id, state_id
- Comercial: user_id, team_id, stage_id, expected_revenue
- Universitario: programas académicos, canales de contacto
Tabla res_partner (Múltiples campos)
- Contactos personales y empresas
- Jerarquías de contactos (parent_id)
- Categorización y segmentación
- Información comercial completa
🚦 Estados y flujo
- Lead → Prospecto inicial
- Opportunity → Oportunidad calificada
- Won/Lost → Ganada o perdida
🧪 Testing
# Probar conexiones
python -c "
from main import initialize_clients, test_connections
initialize_clients()
print(test_connections())
"
# Probar herramientas específicas
python -c "
from main import initialize_clients, get_leads
initialize_clients()
print(get_leads(limit=5))
"
📝 Logging
Los logs se envían a stderr (requerimiento MCP):
- Conexiones y errores de Odoo
- Respuestas de Anthropic
- Estado general del servidor
🔒 Seguridad
- Variables de entorno para credenciales
- Validación de parámetros de entrada
- Manejo seguro de conexiones XML-RPC
- Logs sin información sensible
🤝 Contribuciones
- Fork el proyecto
- Crear rama feature (
git checkout -b feature/nueva-caracteristica) - Commit cambios (
git commit -am 'Agregar nueva característica') - Push a la rama (
git push origin feature/nueva-caracteristica) - Crear Pull Request
📄 Licencia
Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.
📞 Soporte
- Documentación: MCP Protocol
- Issues: Abrir un issue en GitHub
- Odoo API: Documentación oficial
- Anthropic: Documentación Claude
¿Listo para potenciar tu CRM universitario con IA? 🎓✨