CreaRack-SL

Servidor MCP de CreaRack: asistentes de IA consultan WiFi y estado de equipos con la cuenta del usuario (entrega 1, v1.173.0)

Servidor MCP de CreaRack (entrega 1)

User value

Un usuario de CreaRack puede conectar su asistente de IA (claude.ai, ChatGPT o Claude Code) y preguntarle por el WiFi y por el estado de sus equipos (“¿qué equipos están caídos?”, “¿cómo va el grupo de la sala 128?”). El asistente entra con la cuenta de CreaRack del propio usuario, solo ve los datos de su organización y solo puede leer.

Cómo usarla

  1. Un administrador activa el interruptor “asistente de IA” de la organización en User Settings. Viene apagado por defecto; al apagarlo se revocan todos los tokens ya emitidos.
  2. El usuario añade CreaRack como conector en su asistente. El asistente se registra solo, abre la pantalla de consentimiento de CreaRack y el usuario autoriza.
  3. El asistente ya puede llamar a las consultas.

Implementación

  • Modelos (app mcp_server): clientes registrados, códigos de autorización de un solo uso, tokens (solo se guarda el hash) y registro de cada llamada. Códigos, tokens y registro llevan RLS. Interruptor: Organization.ai_assistant_enabled (migración core 0037).
  • OAuth 2.1 (mcp_server/oauth.py, views_oauth.py): metadatos .well-known, registro dinámico de clientes con lista cerrada de direcciones de vuelta (claude.ai, chatgpt.com, bucle local de Claude Code), PKCE S256, rotación de refresh con revocación de toda la familia si se reutiliza, iss (RFC 9207).
  • Endpoint /mcp (protocol.py, views_mcp.py): JSON-RPC para clientes 2025-06-18 y 2025-11-25 (initialize) y 2026-07-28 (server/discover). Límite de uso por token, guardado en la caché.
  • Aislamiento: las rutas /mcp fijan el GUC de RLS a la organización del token (la búsqueda del token va bajo rls_bypass) o a -1 si no hay token válido, nunca a 0.
  • 10 consultas de solo lectura: list_active_alerts, list_devices_down, list_outages_24h, get_device_status, list_wireless_groups, get_wireless_group_summary, get_access_point_detail, get_wireless_networks, get_wireless_network_series, get_wireless_group_client_series. Reutilizan los endpoints web con el usuario del token, así que heredan sus permisos.
  • Tests: tests/api/test_mcp_oauth.py, test_mcp_protocol.py, test_mcp_isolation.py (aislamiento entre organizaciones; usan serialized_rollback=True y una caché limpia por test).

Commits relacionados

  • f9262b3a (2026-09-30) — feat(asistente): servidor MCP de CreaRack, entrega 1 (v1.173.0, PR #649, tarea #392 del Gestor).

Véase también

  • [[concept—saas—multi-tenancy]]
  • [[decision—20260403—multi-tenancy-rls]]
  • [[feature—core—rls-with-check]]
  • [[incident—20260710—rls-gap-tablas-nuevas]]
  • [[concept—general—como-funciona-el-multi-tenancy-y-el-aislamiento-de]]
  • [[crearack-tech—architecture—wireless-monitor]]
  • [[feature—wireless—filtro-red-vlan]]