Servidor MCP de Insights
Conecta ChatGPT, Claude, Copilot o Gemini a tu tenant de Fooodo Insights mediante el servidor remoto de Model Context Protocol.
Fooodo Insights incluye un servidor remoto Model Context Protocol por tenant. Expone los análisis operativos de tu organización y un conjunto reducido de acciones de escritura acotadas a cualquier cliente AI que hable MCP — sin claves API, integraciones personalizadas ni copiar y pegar.
¿Quién puede usarlo? Cualquier cliente de Fooodo Insights con acceso
admin,analystoviewera un tenant que tenga activado el indicador de funciónmcp_enabled. El indicador está desactivado por defecto en todas las organizaciones; contacta con support@fooodo.com para solicitar la activación y recibir la URL MCP de tu tenant.
Dos servidores MCP, una misma familia de productos. Esta página cubre el servidor MCP de Insights, que expone análisis operativos por tenant mediante OAuth 2.1. Un servidor MCP del manual de marketing independiente se ejecuta en
/api/mcpenfooodo.comy es público — los agentes lo utilizan para conocer qué es Fooodo y para enviar solicitudes de contacto comercial. Las dos superficies están deliberadamente separadas: contenido del manual frente a datos de clientes.
Por qué MCP
MCP es el estándar abierto que los clientes AI utilizan para comunicarse con datos y herramientas remotas — el equivalente para agentes de OAuth + REST. Un único servidor MCP puede añadirse una sola vez y ser reutilizado por ChatGPT, Claude, Copilot, Gemini, Cursor, Windsurf, Zed y la creciente lista de clientes compatibles.
Para los clientes de Fooodo Insights esto significa:
- Sin dependencia de proveedor. Tu analista puede hacer la misma pregunta desde ChatGPT hoy y desde Gemini mañana sin reconfigurar nada.
- Acciones acotadas y auditadas. Las herramientas de escritura (p. ej., activar importación
de datos, confirmar alerta) requieren el ámbito
insights:writey el roladminoanalyst. Cada escritura queda registrada en el registro de auditoría consource: "mcp". - Aislamiento de tenant. Las herramientas están limitadas a la organización del usuario a nivel de base de datos; el acceso entre tenants es imposible.
Conectar desde tu AI
El servidor MCP de Insights utiliza OAuth 2.1 con Dynamic Client Registration, por lo que todos los clientes indicados a continuación emplean el mismo flujo de un solo clic: pega la URL de tu tenant, haz clic en Conectar, inicia sesión con tu cuenta de Fooodo Insights y aprueba los ámbitos — listo.
Los fragmentos de código siguientes utilizan <INSIGHTS_MCP_URL> como marcador de posición.
Sustitúyelo por la URL que el soporte de Fooodo te envíe tras activar MCP para tu tenant.
ChatGPT (Plus / Pro / Enterprise)
- Abre Configuración → Conectores → Añadir conector personalizado (el Modo Desarrollador debe estar activado).
- URL del servidor:
<INSIGHTS_MCP_URL>. - Aprueba la página de consentimiento cuando se te solicite.
Claude.ai (Pro y superior)
- Abre Configuración → Conectores → Añadir conector personalizado.
- Nombre:
Fooodo Insights. URL del servidor:<INSIGHTS_MCP_URL>. - Aprueba la página de consentimiento.
GitHub Copilot (VS Code 1.101+, JetBrains, Visual Studio)
Añade lo siguiente al archivo .vscode/mcp.json de tu espacio de trabajo:
{
"servers": {
"fooodo-insights": {
"type": "http",
"url": "<INSIGHTS_MCP_URL>"
}
}
}Si utilizas Copilot Business/Enterprise, tu administrador debe habilitar primero la política MCP servers in Copilot.
Gemini CLI
Añade lo siguiente a tu configuración de Gemini CLI:
{
"mcpServers": {
"fooodo-insights": {
"url": "<INSIGHTS_MCP_URL>",
"oauth": true
}
}
}Gemini Enterprise
En la consola de Google Cloud, registra el servidor como almacén de datos MCP personalizado:
| Campo | Valor |
|---|---|
| URL del servidor | <INSIGHTS_MCP_URL> |
| Autenticación | OAuth 2.0 (Dynamic Client Registration) |
| Ámbitos requeridos | insights:read, insights:write |
Qué puede hacer el agente
El servidor expone herramientas en tres niveles. Los clientes deben elegir el nivel más bajo que responda a la pregunta — es más económico, más rápido y determinista.
Nivel 1 — Herramientas de datos (rápidas, deterministas, solo lectura)
| Herramienta | Devuelve |
|---|---|
get_period_summary | Métricas agregadas para un intervalo de fechas — ventas, COGS, EBIT, margen bruto, campañas principales |
get_weekly_sales_data | Ventas semana a semana con campañas activas y datos de costes |
get_channel_stats | Métricas de rendimiento por canal de marketing — campañas y canales de captación, no el desglose dine-in/entrega a domicilio (para eso, usa get_channel_breakdown) |
get_daily_performance | Ventas día a día por canal y restaurante |
get_product_performance | Clasificación de productos/elementos del menú por ventas y cantidad, con desglose por categoría |
get_cfo_pnl_data | Desglose de P&L — ingresos, COGS, personal, OpEx, EBIT — para la vista del panel CFO |
get_restaurant_performance | Desglose de ventas por restaurante/ubicación para un intervalo de fechas, con la cuota de cada ubicación sobre el total de la cadena |
get_channel_breakdown | Desglose por canal de ventas (dine-in / entrega a domicilio / Wolt / Bolt / para llevar) con importe en € y cuota en % — la contrapartida en ventas; los canales de marketing están en get_channel_stats |
get_check_metrics | Ticket medio (€, neto de IVA), platos por ticket y número de tickets para un intervalo de fechas — con desglose por tipo de pedido y por restaurante |
get_table_times | Tiempo medio de cierre de mesa (minutos) y número de pedidos — indicador de velocidad de servicio — con desglose opcional por tipo de pedido y restaurante |
get_waiter_times | Tiempos medios de cierre de mesa por camarero para un único restaurante (se requiere restaurant_id) |
get_guest_feedback | Satisfacción del cliente — puntuaciones de encuestas NPS (comida / servicio / restaurante) más las últimas valoraciones de Google por restaurante |
get_cash_position | Saldo de caja actual, tasa de consumo semanal, autonomía financiera y saldos por entidad |
get_goals_vs_actuals | Objetivos KPI (ticket medio, platos por ticket) y presupuesto de ventas diario frente a real, con cumplimiento del número de pedidos |
get_monthly_sales_plan | Plan de ventas mensual prospectivo — presupuesto de ingresos y número de pedidos por canal y restaurante, incluidos meses futuros |
get_marketing_spend | Gasto mensual en marketing (del P&L) y el calendario de campañas para el intervalo |
list_restaurants | Directorio de restaurantes (id, código, nombre, ciudad) — resuelve un nombre o código al restaurant_id por el que filtran las demás herramientas de datos |
get_menu_sales | Desglose de ventas de platos año a año por restaurante o ciudad (solo almuerzo o general), con filtro de canal opcional |
Nivel 2 — Agentes especializados (análisis LLM de dominio único)
| Herramienta | Devuelve |
|---|---|
consult_financial_analyst | Análisis del «por qué» exclusivamente financiero, fundamentado en los datos del período |
consult_marketing_strategist | Análisis causal de incremento y atribución de campañas exclusivamente de marketing |
consult_market_research | Contexto de mercado — estacionalidad, festivos, tendencias de comportamiento del consumidor |
Las respuestas de los especialistas se calculan, no se improvisan: la aritmética de varios pasos
la realiza una calculadora determinista del lado del servidor, no el cálculo mental del LLM, y
cada cifra lleva una etiqueta de confianza y una cita de fuente. Para preguntas sobre impacto en
el beneficio, obtén primero la línea base del P&L con get_cfo_pnl_data y pasa las cifras
relevantes (EBIT de referencia, costes) a consult_financial_analyst — las herramientas propias
del especialista cubren únicamente datos de ventas.
Nivel 3 — Orquestador (síntesis entre dominios)
| Herramienta | Devuelve |
|---|---|
ask_orchestrator | Enruta una pregunta entre dominios a todos los agentes especializados y sintetiza una única respuesta |
Búsqueda y recuperación (ChatGPT Deep Research, clientes genéricos)
| Herramienta | Devuelve |
|---|---|
search | Lista de insights e historial de acciones de agente que coinciden con una consulta — {id, title, url, snippet} |
fetch | Contenido completo de un documento por id obtenido de search — {id, title, text, url, metadata} |
Herramientas de escritura (requieren insights:write + rol admin/analyst)
| Herramienta | Acción |
|---|---|
trigger_data_import | Activa inmediatamente una obtención de fichero programada y configurada (asíncrono — devuelve un job_id) |
acknowledge_alert | Marca una alerta como confirmada |
resolve_alert | Resuelve una alerta |
generate_report | Genera un informe de negocio — resumen ejecutivo, rendimiento de campañas, análisis de canales — para un intervalo de fechas; asíncrono (devuelve un job_id), con envío opcional por correo electrónico |
regenerate_insights | Vuelve a ejecutar el generador de insights para la organización (asíncrono) |
get_job_status | Consulta el estado de un trabajo asíncrono |
Prompts
weekly_business_review, margin_diagnosis — prompts de comando slash para
ChatGPT Apps y otros clientes compatibles con prompts.
Seguridad y límites
- OAuth 2.1 + PKCE, clientes públicos, tokens de actualización rotativos. Los tokens de acceso son JWT HS256 válidos durante una hora. Los tokens de actualización son válidos durante 60 días, se almacenan como hashes SHA-256 y son de un solo uso en la rotación.
- Control por organización mediante el indicador de función
mcp_enabled— desactivado por defecto en todas las organizaciones. La activación se realiza mediante un ticket de soporte, no mediante un interruptor de autoservicio, para que los clientes puedan gestionar el despliegue de forma escalonada. - Límites de frecuencia por nivel y usuario. Herramientas de datos: 60/min; especialistas y orquestador: 10 cada 5 min; herramientas de escritura: 5 cada 5 min.
- Revocación. Los usuarios pueden revocar cualquier cliente en cualquier momento desde la
configuración de su cuenta (
/account/connected-appsen el lado de Insights). Los administradores pueden revocar a nivel de toda la organización. - Registro de auditoría. Cada llamada a una herramienta de escritura queda registrada en el
registro de auditoría con
source: "mcp", incluyendo el nombre del cliente, el usuario y la carga útil de entrada. - Aislamiento de tenant a nivel de base de datos. Cada consulta se limita a la organización del usuario antes de salir de la aplicación; el servidor no puede devolver datos entre tenants.
Para desarrolladores de agentes
- URL de descubrimiento:
<INSIGHTS_MCP_URL>/.well-known/oauth-authorization-server(y con el sufijo/mcp, según RFC 8414 §3.1). - Metadatos del recurso protegido:
<INSIGHTS_MCP_URL>/.well-known/oauth-protected-resource/mcp(según RFC 9728). - Dynamic Client Registration:
POST <INSIGHTS_MCP_URL>/register— registro abierto, pero cada autorización sigue requiriendo consentimiento interactivo. - Ámbitos:
insights:read(por defecto) einsights:write(para herramientas de escritura). - Transporte: HTTP con streaming, versión del protocolo MCP
2025-06-18.
Estándares seguidos: MCP 2025-06-18, RFC 6749 (OAuth 2.0), RFC 7636 (PKCE), RFC 7591 (Dynamic Client Registration), RFC 8414 (Authorization Server Metadata), RFC 9728 (Protected Resource Metadata).