Servidor MCP de Odoo
Una implementación de servidor MCP que se integra con los sistemas ERP de Odoo, lo que permite que los asistentes de IA interactúen con los datos y la funcionalidad de Odoo a través del Protocolo de Contexto de Modelo.
Características
Integración completa con Odoo : acceso completo a los modelos, registros y métodos de Odoo
Comunicación XML-RPC : Conexión segura a instancias de Odoo a través de XML-RPC
Configuración flexible : Compatibilidad con archivos de configuración y variables de entorno
Sistema de patrones de recursos : acceso basado en URI a las estructuras de datos de Odoo
Manejo de errores : mensajes de error claros para problemas comunes de la API de Odoo
Operaciones sin estado : ciclo limpio de solicitud/respuesta para una integración confiable
Related MCP server: MCP-Odoo
Herramientas
registros de búsqueda
Buscar registros en cualquier modelo de Odoo
Entradas:
model(cadena): el nombre del modelo (por ejemplo, 'res.partner')domain(matriz): dominio de búsqueda (por ejemplo, [['is_company', '=', true]])fields(matriz opcional): campos opcionales para obtenerlimit(número opcional): Número máximo de registros a devolver
Devoluciones: registros coincidentes con los campos solicitados
leer_registro
Leer detalles de un registro específico
Entradas:
model(cadena): el nombre del modelo (por ejemplo, 'res.partner')id(número): El ID del registrofields(matriz opcional): campos opcionales para obtener
Devuelve: Registra datos con los campos solicitados
crear_registro
Crear un nuevo registro en Odoo
Entradas:
model(cadena): el nombre del modelo (por ejemplo, 'res.partner')values(objeto): Diccionario de valores de campo
Devuelve: Diccionario con el nuevo ID de registro
actualizar_registro
Actualizar un registro existente
Entradas:
model(cadena): el nombre del modelo (por ejemplo, 'res.partner')id(número): El ID del registrovalues(objeto): Diccionario de valores de campo a actualizar
Devuelve: Diccionario que indica éxito
eliminar_registro
Eliminar un registro de Odoo
Entradas:
model(cadena): el nombre del modelo (por ejemplo, 'res.partner')id(número): El ID del registro
Devuelve: Diccionario que indica éxito
método_de_ejecución
Ejecutar un método personalizado en un modelo de Odoo
Entradas:
model(cadena): el nombre del modelo (por ejemplo, 'res.partner')method(cadena): Nombre del método a ejecutarargs(matriz opcional): argumentos posicionaleskwargs(objeto opcional): argumentos de palabras clave
Devuelve: Diccionario con el resultado del método
obtener_campos_del_modelo
Obtener definiciones de campo para un modelo
Entradas:
model(cadena): el nombre del modelo (por ejemplo, 'res.partner')
Devuelve: Diccionario con definiciones de campos
búsqueda_empleado
Buscar empleados por nombre.
Entradas:
name(cadena): el nombre (o parte del nombre) que se buscará.limit(número opcional): el número máximo de resultados a devolver (predeterminado 20).
Devuelve: Lista de nombres e identificaciones de empleados coincidentes.
buscar_vacaciones
Busca días festivos dentro de un rango de fechas específico.
Entradas:
start_date(cadena): Fecha de inicio en formato AAAA-MM-DD.end_date(cadena): Fecha de finalización en formato AAAA-MM-DD.employee_id(número opcional): ID de empleado opcional para filtrar días festivos.
Devoluciones: Listado de días festivos encontrados.
Recursos
odoo://modelos
Enumera todos los modelos disponibles en el sistema Odoo
Devuelve: matriz JSON de información del modelo
odoo://modelo/{nombre_del_modelo}
Obtenga información sobre un modelo específico, incluidos los campos
Ejemplo:
odoo://model/res.partnerDevuelve: objeto JSON con metadatos del modelo y definiciones de campo
odoo://registro/{nombre_del_modelo}/{id_del_registro}
Obtener un registro específico por ID
Ejemplo:
odoo://record/res.partner/1Devuelve: objeto JSON con datos de registro
odoo://search/{nombre_del_modelo}/{dominio}
Buscar registros que coincidan con un dominio
Ejemplo:
odoo://search/res.partner/[["is_company","=",true]]Devuelve: matriz JSON de registros coincidentes (limitada a 10 de forma predeterminada)
Configuración
Configuración de la conexión a Odoo
Cree un archivo de configuración llamado
odoo_config.json:
{
"url": "https://your-odoo-instance.com",
"db": "your-database-name",
"username": "your-username",
"password": "your-password-or-api-key"
}Alternativamente, utilice variables de entorno:
ODOO_URL: URL de su servidor OdooODOO_DB: Nombre de la base de datosODOO_USERNAME: Nombre de usuario de inicio de sesiónODOO_PASSWORD: Contraseña o clave APIODOO_TIMEOUT: Tiempo de espera de conexión en segundos (predeterminado: 30)ODOO_VERIFY_SSL: Si se deben verificar los certificados SSL (valor predeterminado: verdadero)HTTP_PROXY: Fuerza la conexión ODOO a utilizar un proxy HTTP
Uso con Claude Desktop
Agregue esto a su claude_desktop_config.json :
{
"mcpServers": {
"odoo": {
"command": "python",
"args": [
"-m",
"odoo_mcp"
],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_DB": "your-database-name",
"ODOO_USERNAME": "your-username",
"ODOO_PASSWORD": "your-password-or-api-key"
}
}
}
}Estibador
{
"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://your-odoo-instance.com",
"ODOO_DB": "your-database-name",
"ODOO_USERNAME": "your-username",
"ODOO_PASSWORD": "your-password-or-api-key"
}
}
}
}Instalación
Paquete Python
pip install odoo-mcpEjecución del servidor
# Using the installed package
odoo-mcp
# Using the MCP development tools
mcp dev odoo_mcp/server.py
# With additional dependencies
mcp dev odoo_mcp/server.py --with pandas --with numpy
# Mount local code for development
mcp dev odoo_mcp/server.py --with-editable .Construir
Compilación de Docker:
docker build -t mcp/odoo:latest -f Dockerfile .Pautas de formato de parámetros
Al utilizar las herramientas MCP para Odoo, preste atención a estas pautas de formato de parámetros:
Parámetro de dominio :
Se admiten los siguientes formatos de dominio:
Formato de lista:
[["field", "operator", value], ...]Formato del objeto:
{"conditions": [{"field": "...", "operator": "...", "value": "..."}]}Cadena JSON de cualquier formato
Ejemplos:
Formato de lista:
[["is_company", "=", true]]Formato del objeto:
{"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}Varias condiciones:
[["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]
Parámetros de campos :
Debe ser una matriz de nombres de campos:
["name", "email", "phone"]El servidor intentará analizar las entradas de cadena como JSON
Licencia
Este servidor MCP tiene licencia MIT.
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.