Funcionalidaddraftcreado Wed Sep 30#asistente#mcp#core#wireless#monitoring#oauth#security#multi-tenancy
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
- 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.
- 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.
- 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
/mcpfijan el GUC de RLS a la organización del token (la búsqueda del token va bajorls_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; usanserialized_rollback=Truey 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]]