Lumenore-MCP
Un servidor del Protocolo de Contexto de Modelo (MCP) que proporciona a los asistentes de IA acceso a las capacidades de análisis y consulta en lenguaje natural de Lumenore. Construido con FastMCP y Python 3.13 para una integración escalable de análisis de datos.
Documentación
Servidor MCP de Analítica Lumenore
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona a los asistentes de IA acceso a las capacidades de analítica y consultas en lenguaje natural de Lumenore. Construido con FastMCP y Python 3.13 para una integración escalable de analítica de datos.
Inicio Rápido
1. Instalar y Ejecutar
git clone https://github.com/Lumenore-Platform/lumenore-mcp.git
cd lumenore-mcp
pip install -r requirements.txt
cp .env.example .env
# Edit .env with your client credentials (LUMENORE_CLIENT_ID and LUMENORE_SECRET)
python main.py
2. Conecta Tu Asistente de IA
- URL:
http://localhost:8080/mcp - Transporte: HTTP Transmisible
3. Comienza a Analizar
# Example: Get sales insights
result = await client.call_tool("nlq_to_data", {
"userQuery": "Top 5 sales regions last month",
"schemaId": 123
})
📖 Documentación Completa | 🐛 Reportar Problemas | 🔒 Política de Privacidad
Tabla de Contenidos
- Descripción General
- Instalación
- Configuración
- Herramientas Disponibles
- Ejemplos de Uso
- Autenticación
- Seguridad y Privacidad
- Solución de Problemas
- Contribuciones
- Soporte
- Licencia
Descripción General
Este servidor MCP proporciona a los asistentes de IA acceso a las potentes capacidades de analítica de Lumenore:
- Consultas en Lenguaje Natural: Convierte preguntas en información de datos
- Analítica Avanzada: Tendencias, predicciones, correlaciones, valores atípicos, cambios, análisis de Pareto
- Procesamiento en Tiempo Real: Transmite respuestas para grandes conjuntos de datos
- Cero Almacenamiento de Datos: Procesamiento en memoria sin registro persistente. Cuando el Servidor MCP reenvía solicitudes al backend de Lumenore, se aplican las políticas de privacidad de Lumenore
Instalación
Requisitos Previos
- Python 3.13+
- Credenciales de cliente de Lumenore (ID de cliente y secreto)
- Acceso a la instancia del servidor de Lumenore
Configuración
git clone https://github.com/Lumenore-Platform/lumenore-mcp.git
cd lumenore-mcp
pip install -r requirements.txt
Configuración
Crea un archivo .env en la raíz del proyecto con tus credenciales. Puedes usar .env.example como plantilla:
cp .env.example .env
Luego edita .env con tu configuración:
Usando Credenciales de Cliente
LUMENORE_CLIENT_ID="your_client_id_here"
LUMENORE_SECRET="your_secret_here"
SERVER_URL="https://preview.lumenore.com"
Parámetros de Configuración
| Parámetro | Requerido | Descripción | Predeterminado |
|---|---|---|---|
LUMENORE_CLIENT_ID | Sí | ID de cliente para autenticación de credenciales de cliente | Ninguno |
LUMENORE_SECRET | Sí | Secreto de cliente para autenticación de credenciales de cliente | Ninguno |
SERVER_URL | No | URL del servidor de Lumenore | https://preview.lumenore.com |
Ejecutando el Servidor
Inicia el servidor MCP:
python main.py
El servidor se ejecuta en http://0.0.0.0:8080 con transporte SSE para transmisión en tiempo real.
Conectando Tu Asistente de IA
Claude para Escritorio
- Configuración → Servidores MCP
- Agregar Servidor con:
Name: Lumenore Analytics URL: http://localhost:8080/mcp Transport: Streamable HTTP
Acceso Programático (Python)
from mcp.client import MCPClient
client = MCPClient("http://localhost:8080/mcp", transport="streamable_http")
tools = await client.list_tools()
result = await client.call_tool("nlq_to_data", {
"userQuery": "Top 5 sales regions last month",
"schemaId": 123
})
Detalles de Conexión:
- Protocolo: MCP 2024-11-05+
- Transporte: HTTP Transmisible (SSE)
- Puerto: 8080 (predeterminado)
- Autenticación: No se requiere autenticación a nivel MCP
Probar Conexión:
curl -I http://localhost:8080 # Should return HTTP/1.1 200 OK
Autenticación
Obteniendo Tus Credenciales
Credenciales de Cliente
- Contacta al soporte de Lumenore para obtener credenciales de cliente
- Recibe tu
LUMENORE_CLIENT_IDyLUMENORE_SECRET - Almacena de forma segura en tu archivo
.env
Consulta la sección de Configuración para instrucciones detalladas de configuración.
Mejores Prácticas de Seguridad
Solución de Problemas de Autenticación
"Token de autorización faltante o inválido":
- Verifica que las credenciales estén configuradas en el archivo
.env:- Para credenciales de cliente: Verifica que tanto
LUMENORE_CLIENT_IDcomoLUMENORE_SECRETestén configurados
- Para credenciales de cliente: Verifica que tanto
- Asegúrate de que los créditos de IA de Lumenore estén disponibles
- Verifica que
SERVER_URLapunte a la instancia correcta de Lumenore
Herramientas Disponibles
El servidor proporciona 8 potentes herramientas para análisis de datos:
Gestión de Conjuntos de Datos
get_dataset_metadata - Lista los conjuntos de datos disponibles y los IDs de esquema
Consultas en Lenguaje Natural
nlq_to_data - Convierte preguntas en datos estructurados
{
"userQuery": "Top 5 sales regions last month",
"schemaId": 123
}
Analítica Avanzada
get_trend_data - Identifica patrones y tendencias temporales
get_prediction_data - Genera pronósticos y predicciones
get_outlier_data - Detecta anomalías y patrones inusuales
get_correlation_data - Analiza relaciones entre variables
get_change_data - Detecta cambios y transiciones de patrones
get_pareto_data - Realiza análisis de impacto 80/20
Manejo de Errores
Todas las herramientas devuelven respuestas estandarizadas:
- Éxito:
{"data": {...}, "status": "success"} - Error de Validación:
{"error": "...", "status": "validation_error"} - Error de Servicio:
{"error": "...", "status": "error"}
Rendimiento
- Tiempo de Respuesta: 1-7 segundos
- Tiempo de Espera: 60 segundos
- Concurrencia: Se admiten múltiples solicitudes simultáneas
Mejores Prácticas
- Comienza con
get_dataset_metadatapara encontrar IDs de esquema - Sé específico en las consultas en lenguaje natural
- Siempre verifica el campo
statusen las respuestas - Almacena en caché consultas frecuentes para mejor rendimiento
Ejemplos de Uso
Aquí hay tres ejemplos realistas que muestran cómo los asistentes de IA pueden interactuar con el Servidor MCP de Analítica Lumenore:
Ejemplo 1: Análisis de Rendimiento de Ventas
Escenario: Un analista de negocios quiere entender el rendimiento de ventas del último trimestre.
Interacción del Asistente de IA:
# Step 1: Get available datasets
metadata = await client.call_tool("get_dataset_metadata", {})
# Step 2: Query sales data
sales_data = await client.call_tool("nlq_to_data", {
"userQuery": "Show me total sales by region for Q4 2024, sorted by highest sales",
"schemaId": 35403
})
# Step 3: Analyze trends
trend_analysis = await client.call_tool("get_trend_data", {
"userQuery": "What are the monthly sales trends for Q4 2024?",
"schemaId": 35403
})
# Step 4: Identify top performers
pareto_analysis = await client.call_tool("get_pareto_data", {
"userQuery": "Which products contribute to 80% of our sales?",
"schemaId": 35403
})
Información Esperada:
- Desglose de ventas regional con totales
- Visualización de tendencia mensual que muestra crecimiento/disminución
- Análisis de contribución de productos destacando los principales impulsores de ingresos
Ejemplo 2: Análisis de Comportamiento del Cliente
Escenario: Un equipo de marketing quiere entender los patrones de compra de los clientes y detectar anomalías.
Interacción del Asistente de IA:
# Step 1: Get customer dataset information
metadata = await client.call_tool("get_dataset_metadata", {})
# Step 2: Analyze customer segments
customer_data = await client.call_tool("nlq_to_data", {
"userQuery": "Show customer demographics and average order value by age group",
"schemaId": 35404
})
# Step 3: Detect unusual patterns
anomaly_detection = await client.call_tool("get_outlier_data", {
"userQuery": "Find customers with unusually high order values or frequency",
"schemaId": 35404
})
# Step 4: Understand correlations
correlation_analysis = await client.call_tool("get_correlation_data", {
"userQuery": "What factors correlate with customer lifetime value?",
"schemaId": 35404
})
Información Esperada:
- Segmentación de clientes por demografía y gasto
- Identificación de posibles fraudes o clientes VIP
- Principales impulsores del valor del cliente para marketing dirigido
Ejemplo 3: Optimización de Inventario
Escenario: Un gerente de operaciones necesita optimizar los niveles de inventario basándose en patrones de demanda y pronósticos.
Interacción del Asistente de IA:
# Step 1: Get inventory dataset
metadata = await client.call_tool("get_dataset_metadata", {})
# Step 2: Analyze historical demand
demand_data = await client.call_tool("nlq_to_data", {
"userQuery": "Show monthly demand for each product category over the past year",
"schemaId": 35405
})
# Step 3: Identify trends
trend_analysis = await client.call_tool("get_trend_data", {
"userQuery": "What are the demand trends for each product category?",
"schemaId": 35405
})
# Step 4: Generate forecasts
forecast = await client.call_tool("get_prediction_data", {
"userQuery": "Predict demand for next 3 months by product category",
"schemaId": 35405
})
# Step 5: Detect demand changes
change_detection = await client.call_tool("get_change_data", {
"userQuery": "Have there been any significant changes in demand patterns recently?",
"schemaId": 35405
})
Información Esperada:
- Patrones históricos de demanda por categoría
- Pronósticos de demanda futura con intervalos de confianza
- Advertencia temprana de cambios en patrones de demanda
- Recomendaciones de optimización de inventario basadas en datos
Beneficios:
- Actualización automática de datos sin intervención manual
- Información en tiempo real para la toma de decisiones operativas
- Carga reducida en sistemas backend mediante almacenamiento en caché eficiente
Mejores Prácticas de los Ejemplos
- Comienza con Metadatos: Siempre usa
get_dataset_metadatapara entender los conjuntos de datos disponibles - Combina Herramientas: Usa múltiples herramientas juntas para un análisis integral
- Consultas Específicas: Sé claro y específico en las consultas en lenguaje natural
- Manejo de Errores: Siempre verifica el estado de la respuesta antes de procesar resultados
- Rendimiento: Almacena en caché los datos de acceso frecuente para mejorar los tiempos de respuesta
Prompts de Claude
Aquí hay ejemplos de prompts que puedes usar con Claude cuando esté conectado a este servidor MCP:
Para Análisis de Ventas:
"Usa las herramientas de Analítica Lumenore para analizar nuestro rendimiento de ventas del cuarto trimestre. Necesito ver desgloses regionales, identificar los productos de mejor rendimiento y entender las tendencias de ventas."
Para Información del Cliente:
"Analiza la demografía de los clientes, encuentra cualquier patrón de compra inusual e identifica qué factores impulsan el valor del cliente. Usa las herramientas de analítica disponibles para proporcionar información integral."
Para Gestión de Inventario:
"Genera pronósticos para el próximo trimestre e identifica cualquier cambio reciente en el comportamiento de la demanda usando las herramientas de análisis predictivo y de tendencias."
Manejo de Errores
Todas las herramientas implementan un manejo integral de errores con tipos de error específicos:
# Validation errors
{
"error": "Invalid request parameters: <details>",
"status": "validation_error",
"query": "<user_query>",
"schema_id": <schema_id>
}
# Service errors
{
"error": "<Operation> failed: <details>",
"status": "error",
"query": "<user_query>",
"schema_id": <schema_id>
}
Probando el Servidor
Puedes probar el servidor MCP usando cualquier cliente compatible con MCP o haciendo solicitudes HTTP al endpoint SSE:
# Example: Testing with curl (adjust based on MCP protocol)
curl -N http://localhost:8080
Seguridad y Privacidad
Descripción General de Seguridad
El Servidor MCP de Analítica Lumenore implementa múltiples capas de seguridad para proteger tus datos y credenciales de API:
Protección de Datos
- Procesamiento en Memoria: Todos los datos se procesan en memoria y se descartan inmediatamente después de generar la respuesta
- Sin Almacenamiento de Datos: El servidor MCP no almacena ni registra consultas de usuarios, IDs de esquema o datos de respuesta
- Comunicación Segura: Todas las solicitudes de API backend usan cifrado HTTPS
- Seguridad de Credenciales: Las credenciales de cliente nunca se registran, almacenan o exponen en las respuestas
Seguridad de Autenticación
- Flujo de Credenciales de Cliente: Autenticación estándar de la industria usando ID de cliente y secreto
- Gestión de Sesiones: Manejo seguro de sesiones basado en cookies con renovación automática de tokens
- Sin Autenticación a Nivel MCP: La conexión MCP no requiere autenticación (la autenticación del backend se maneja del lado del servidor)
- Monitoreo de Seguridad: Los intentos de autenticación fallidos se registran para análisis de seguridad
Mejores Prácticas de Credenciales
- Variables de Entorno: Almacena credenciales en variables de entorno o archivos
.env(nunca en código) - Rotación Regular: Rota las credenciales cada 90 días o según sea necesario
- Limitación de Alcance: Usa credenciales con los permisos mínimos requeridos
- Entornos Separados: Usa diferentes credenciales para desarrollo, pruebas y producción
Política de Privacidad
Para información detallada sobre cómo Lumenore maneja tus datos, consulta nuestra Política de Privacidad.
Principios Clave de Privacidad
- Procesamiento Mínimo de Datos: Solo procesa consultas e IDs de esquema proporcionados por los usuarios
- Sin Historial de Conversaciones: No almacena ni registra el historial de conversaciones
- Control del Usuario: Los usuarios controlan qué datos se consultan y analizan
- Cumplimiento: Diseñado para cumplir con las regulaciones de protección de datos (GDPR, CCPA)
Privacidad del Flujo de Datos
User Query → MCP Server → Lumenore Backend → Results → User
(No storage) (Lumenore's privacy policy applies)
Consideraciones de Privacidad
- El servidor MCP actúa como un proxy seguro entre los asistentes de IA y el backend de Lumenore
- Todas las políticas de privacidad y manejo de datos de la API backend de Lumenore se aplican a tus datos
- El servidor en sí no retiene ningún dato de usuario más allá del procesamiento inmediato de la solicitud
- Los usuarios son responsables de asegurar que sus consultas cumplan con las leyes de protección de datos aplicables
Cumplimiento
Cumplimiento Regulatorio
- GDPR: Cumple con el Reglamento General de Protección de Datos
- CCPA: Cumple con la Ley de Privacidad del Consumidor de California
- SOC 2: Los servicios backend siguen los estándares de seguridad SOC 2
- ISO 27001: Mejores prácticas de gestión de seguridad de la información
Residencia de Datos
- El procesamiento de datos ocurre en la infraestructura en la nube de Lumenore
- Los requisitos de residencia de datos deben discutirse con el equipo de ventas de Lumenore
- Los despliegues empresariales pueden admitir opciones de nube privada o local
Configuración de Seguridad
Seguridad del Entorno
# Secure credentials management
export LUMENORE_CLIENT_ID="your_client_id"
export LUMENORE_SECRET="your_secret"
# Restrict file permissions
chmod 600 .env
chmod 700 /path/to/server/directory
# Use secure network connections only
# Avoid using public Wi-Fi for sensitive operations
Seguridad de Producción
- Usa credenciales de cliente dedicadas para entornos de producción
- Implementa automatización de rotación de credenciales
- Monitorea el uso de API y configura alertas para actividad inusual
- Considera implementar listas blancas de IP para acceso a API
- Usa VPN o redes privadas para la comunicación del servidor
Gestión de Vulnerabilidades
Reportando Problemas de Seguridad
Nos tomamos la seguridad en serio. Si encuentras una vulnerabilidad:
- Correo electrónico: askme@lumenore.com
- Incluye detalles de la vulnerabilidad y pasos de reproducción
- Te responderemos dentro de las 24 horas
- Trabaja con nosotros para resolver el problema antes de la divulgación pública
Actualizaciones de Seguridad
- Los parches de seguridad se priorizan y despliegan rápidamente
- Suscríbete a notificaciones de seguridad a través de nuestros canales de soporte
- Se realizan evaluaciones de seguridad regulares en la infraestructura
Cifrado de Datos
En Tránsito
- Todas las comunicaciones de API usan cifrado TLS 1.2+
- HTTPS se aplica para todas las conexiones backend
- Se puede implementar fijación de certificados para mayor seguridad
En Reposo
- El almacenamiento de datos backend usa cifrado en reposo
- El cifrado de la base de datos protege los datos analíticos almacenados
- La gestión de claves sigue las mejores prácticas de la industria
Control de Acceso
Principio de Mínimo Privilegio
- Las credenciales del cliente deben tener los permisos mínimos requeridos
- Credenciales separadas para diferentes aplicaciones y entornos
- Revisión periódica de los permisos y el uso de las credenciales
Seguridad de Red
- Las reglas del firewall restringen el acceso solo a los puertos necesarios
- Considere implementar acceso VPN para la gestión del servidor
- Use segmentación de red para implementaciones de producción
Solución de Problemas
Pasos Rápidos de Diagnóstico
- Verifique que el servidor esté en ejecución:
curl -I http://localhost:8080 - Verifique que el token esté cargado: Revise los registros de inicio del servidor para ver la advertencia "No authorization token"
- Pruebe la conectividad del backend:
curl -I https://preview.lumenore.com - Verifique el protocolo MCP: Asegúrese de que el cliente use transporte Streamable HTTP
Ejemplo de configuración del cliente:
{
"server": {
"lumenore-server": {
"type": "streamable-http",
"url": "http://localhost:8080/mcp",
}
}
}
Pruebas manuales con Python:
from config import config
from core.lumenore_analytics import LumenoreAnalytics
import asyncio
async def test():
client = LumenoreAnalytics()
result = await client.make_request('get-domain', method='GET')
print(result)
asyncio.run(test())
Obtención de Ayuda
Si ha probado los pasos anteriores y aún tiene problemas:
- Revise los registros del servidor para ver mensajes de error detallados
- Verifique la validez del token y sus permisos
- Pruebe la API del backend directamente para aislar problemas de MCP frente a problemas del backend
- Revise la configuración del cliente MCP para verificar la configuración de transporte y URL
- Contacte al soporte con los registros y mensajes de error (consulte la sección Soporte)
Contribuciones
¡Damos la bienvenida a contribuciones al Servidor MCP de Lumenore Analytics! Siga estas pautas:
Código de Conducta
Tenga en cuenta que este proyecto se publica con un Contributor Covenant. Al participar, se espera que cumpla con este código.
Cómo Contribuir
- Haga un fork del repositorio
- Cree una rama de funcionalidad (
git checkout -b feature/amazing-feature) - Confirme sus cambios (
git commit -m 'Add amazing feature') - Empuje a la rama (
git push origin feature/amazing-feature) - Abra una Solicitud de Extracción (Pull Request)
Configuración de Desarrollo
# Clone your fork
git clone <your-fork-url>
cd lumenore-mcp
# Install development dependencies
pip install -r requirements.txt
# Run tests (if available)
python -m pytest
Reporte de Errores
Use el rastreador de problemas para reportar errores. Incluya:
- Pasos para reproducir
- Comportamiento esperado frente al real
- Detalles del entorno (versión de Python, sistema operativo)
Solicitudes de Funcionalidades
Damos la bienvenida a solicitudes de funcionalidades a través de GitHub Issues. Por favor:
- Busque problemas existentes primero
- Proporcione casos de uso claros
- Explique la funcionalidad deseada
Licencia
Este proyecto está licenciado bajo la Licencia MIT: consulte el archivo LICENSE para más detalles.
Soporte
Información de Contacto
Para soporte técnico y consultas:
- Correo electrónico: askme@lumenore.com
- Sitio web: https://lumenore.com/
- Documentación: Documentación de Lumenore Analytics
Versión: 1.0.0
Última actualización: enero de 2026
Python: 3.13+
Protocolo MCP: Compatible con la especificación MCP 2024-11-05