Guía
Guide
Conectar asistentes de IA (servidor MCP)Connect AI assistants (MCP server)
Observer RMM incluye un servidor MCP (Model Context Protocol, el estándar abierto para conectar asistentes de IA con herramientas). Con él, cada técnico puede consultar y operar la flota en lenguaje natural desde el asistente que ya usa —Claude, VS Code con Copilot, Cursor o n8n—, con sus propios créditos y con sus mismos permisos de la consola.
Observer RMM includes an MCP server (Model Context Protocol, the open standard for connecting AI assistants to tools). With it, each technician can query and operate the fleet in natural language from the assistant they already use —Claude, VS Code with Copilot, Cursor, or n8n—, with their own credits and the same permissions they have in the console.
El servidor MCP viene encendido en toda plataforma Observer RMM y queda en https://api.su-dominio.cl/mcp: el mismo nombre de host de la API. Cada técnico necesita una clave de API propia, que crea un administrador desde Configuración → Claves de API. Conviene darle una fecha de expiración.
The MCP server ships enabled on every Observer RMM platform and lives at https://api.your-domain.com/mcp: the same hostname as the API. Each technician needs their own API key, created by an administrator from Settings → API Keys. Giving it an expiration date is recommended.
Cómo funcionaHow it works
- El modelo de IA corre en el asistente del técnico, no en Observer RMM. Los tokens los paga la cuenta de quien lo usa; el servidor MCP no consume créditos de ningún proveedor.
- Mismos permisos que en la consola: la clave pertenece a un usuario y hereda su rol. El asistente ve los mismos clientes, sitios y equipos, y puede hacer lo mismo que ese usuario en la consola.
- Todo queda auditado: las acciones aparecen en Auditoría con el usuario del técnico y la columna Origen indica que vinieron por MCP y con qué herramienta.
- Revocar es inmediato: al borrar o expirar la clave, el asistente pierde el acceso en la siguiente llamada.
- The AI model runs in the technician's assistant, not in Observer RMM. Tokens are paid by the account that uses it; the MCP server consumes no credits from any provider.
- Same permissions as the console: the key belongs to a user and inherits that user's role. The assistant sees the same clients, sites, and machines, and can do the same things that user can do in the console.
- Everything is audited: actions show up in Audit under the technician's user, and the Origin column shows they came through MCP and which tool was used.
- Revoking is immediate: once the key is deleted or expires, the assistant loses access on its next call.
El sistema MCP completo, de un vistazoThe full MCP system at a glance
La respuesta que recibe el técnico recorre tres etapas: recolectar (el agente Observer de cada equipo reporta chequeos, inventario, software, parches e historial por el bus NATS, y el backend lo guarda en la base de datos observerrmm), consultar (el técnico le pregunta a su agente de IA —Claude, VS Code, Cursor o n8n—, que razona con su propio LLM y llama a /mcp con su clave de API personal; el servicio observer-mcp la valida y consulta la API REST, donde el RBAC aplica el rol y los clientes de ese técnico) y responder y auditar (la salida vuelve al asistente como dato, redactada y truncada; las acciones reversibles viajan por el bus al agente, con un máximo de 10 equipos por llamada, y cada una queda en Auditoría con su Origen, visible en la consola). El servidor MCP nunca habla directo con los equipos ni con la base de datos: todo pasa por la API. El diagrama muestra el recorrido completo entre el agente, el backend, el frontend y el agente de IA del técnico.
The answer a technician gets goes through three stages: collect (the Observer agent on each machine reports checks, inventory, software, patches, and history over the NATS bus, and the backend stores it in the observerrmm database), query (the technician asks their AI agent —Claude, VS Code, Cursor, or n8n—, which reasons with their own LLM and calls /mcp with their personal API key; the observer-mcp service validates it and queries the REST API, where RBAC applies that technician's role and clients), and answer and audit (the output returns to the assistant as data, redacted and truncated; reversible actions travel over the bus to the agent, capped at 10 machines per call, and each one lands in Audit with its Origin, visible in the console). The MCP server never talks directly to machines or to the database: everything goes through the API. The diagram shows the full path across the agent, the backend, the frontend, and the technician's AI agent.
Qué puede hacer el asistenteWhat the assistant can do
Consultar (sin efecto en los equipos): clientes y sitios, buscar equipos por nombre, ficha de un equipo (estado, sistema operativo, hardware, discos, usuario), chequeos y su último resultado, parches de Windows pendientes, software instalado, historial de comandos, alertas y registro de auditoría.
Query (no effect on machines): clients and sites, search machines by name, a machine's details (status, OS, hardware, disks, user), checks and their latest result, pending Windows patches, installed software, command history, alerts, and the audit log.
Acciones reversibles: agregar una nota a un equipo, pedir que corra sus chequeos, activar o desactivar el modo mantenimiento, posponer, reanudar o resolver una alerta, y mostrar un mensaje emergente al usuario del equipo. Las acciones sobre varios equipos admiten como máximo 10 por llamada.
Reversible actions: add a note to a machine, ask it to run its checks, turn maintenance mode on or off, snooze, unsnooze, or resolve an alert, and show a pop-up message to the machine's user. Actions on several machines accept at most 10 per call.
El asistente no puede ejecutar scripts ni comandos, reiniciar o apagar, instalar actualizaciones, borrar equipos, gestionar usuarios o claves, ni operar el modo perdido u Observer Erase. Esas acciones se hacen desde la consola.
The assistant cannot run scripts or commands, reboot or shut down, install updates, delete machines, manage users or keys, or operate lost mode or Observer Erase. Those actions are done from the console.
Conectar su asistenteConnect your assistant
En todos los ejemplos, reemplace api.su-dominio.cl por el host de su API y <SU-CLAVE> por su clave. La clave viaja en el encabezado Authorization: Bearer, nunca en la URL.
In every example, replace api.your-domain.com with your API host and <YOUR-KEY> with your key. The key travels in the Authorization: Bearer header, never in the URL.
Claude Code (terminal)Claude Code (terminal)
claude mcp add --transport http observer https://api.su-dominio.cl/mcp \
--header "Authorization: Bearer <SU-CLAVE>"
Compruebe con claude mcp list y pídale, por ejemplo: «Busca el equipo PC-CONTA-01 y dime su estado y sus parches pendientes».
Check with claude mcp list and ask, for example: "Find the machine PC-ACCT-01 and tell me its status and pending patches".
VS Code (GitHub Copilot, modo agente)VS Code (GitHub Copilot, agent mode)
Cree .vscode/mcp.json en su espacio de trabajo (o agréguelo a su configuración de usuario). Con inputs, VS Code le pide la clave una vez y la guarda cifrada, en vez de dejarla escrita en el archivo:
Create .vscode/mcp.json in your workspace (or add it to your user settings). With inputs, VS Code asks for the key once and stores it encrypted instead of leaving it in the file:
{
"inputs": [
{ "id": "observer-key", "type": "promptString", "description": "Observer RMM API key", "password": true }
],
"servers": {
"observer": {
"type": "http",
"url": "https://api.su-dominio.cl/mcp",
"headers": { "Authorization": "Bearer ${input:observer-key}" }
}
}
}
CursorCursor
En ~/.cursor/mcp.json (global) o .cursor/mcp.json (proyecto):
In ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"observer": {
"url": "https://api.su-dominio.cl/mcp",
"headers": { "Authorization": "Bearer <SU-CLAVE>" }
}
}
}
Claude DesktopClaude Desktop
Claude Desktop no permite hoy agregar un servidor remoto con encabezado propio, así que se conecta a través de un puente local (mcp-remote, requiere Node.js). En Configuración → Desarrollador → Editar configuración (claude_desktop_config.json):
Claude Desktop does not currently let you add a remote server with a custom header, so it connects through a local bridge (mcp-remote, requires Node.js). In Settings → Developer → Edit config (claude_desktop_config.json):
{
"mcpServers": {
"observer": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.su-dominio.cl/mcp",
"--header", "Authorization:Bearer ${OBSERVER_KEY}"],
"env": { "OBSERVER_KEY": "<SU-CLAVE>" }
}
}
}
Reinicie Claude Desktop después de guardar.
Restart Claude Desktop after saving.
n8n (automatizaciones)n8n (automations)
Use el nodo MCP Client Tool dentro de un agente de IA: Endpoint https://api.su-dominio.cl/mcp, transporte HTTP Streamable y autenticación por Header Auth con nombre Authorization y valor Bearer <SU-CLAVE>. Para automatizaciones, cree un usuario de servicio con un rol acotado y una clave solo para ese flujo.
Use the MCP Client Tool node inside an AI agent: Endpoint https://api.your-domain.com/mcp, HTTP Streamable transport, and Header Auth authentication with name Authorization and value Bearer <YOUR-KEY>. For automations, create a service user with a narrow role and a key used only by that flow.
claude.ai y ChatGPT (web)claude.ai and ChatGPT (web)
Los conectores de las versiones web exigen inicio de sesión OAuth y no aceptan una clave fija. Todavía no son compatibles; el acceso con el login de su organización está planificado. Mientras tanto, use una de las opciones anteriores.
Connectors in the web versions require OAuth sign-in and don't accept a fixed key. They are not supported yet; sign-in with your organization's login is planned. In the meantime, use one of the options above.
Seguridad y privacidadSecurity and privacy
- Una clave por técnico y por herramienta, con fecha de expiración. Nunca comparta claves; revóquela cuando el técnico deje el equipo o cambie de equipo de trabajo.
- Dónde van sus datos: lo que el asistente consulta (nombres de equipo, usuarios, alertas) se envía al proveedor de IA de esa cuenta. Para datos de clientes use planes de empresa, o planes con la opción de no usar sus datos para entrenar activada, y siga la política de uso aceptable.
- Revise antes de confirmar: pida al asistente que le proponga las acciones antes de ejecutarlas. Trate el texto que viene de los equipos (nombres, notas, salidas) como dato, nunca como instrucción.
- Mínimo privilegio: si el asistente solo va a consultar, use un rol sin permisos de edición.
- One key per technician and per tool, with an expiration date. Never share keys; revoke the key when a technician leaves or changes teams.
- Where your data goes: whatever the assistant queries (machine names, users, alerts) is sent to that account's AI provider. For customer data, use business plans, or plans with the don't train on my data option enabled, and follow the acceptable use policy.
- Review before confirming: ask the assistant to propose actions before running them. Treat text coming from machines (names, notes, outputs) as data, never as instructions.
- Least privilege: if the assistant only needs to read, use a role without edit permissions.
Si algo no funcionaTroubleshooting
- 401 Unauthorized: falta el encabezado, la clave está mal escrita o ya expiró. Verifíquela en Configuración → Claves de API.
- «permission denied» en una herramienta: el rol del usuario dueño de la clave no permite esa acción o no ve ese cliente o equipo.
- 429 Too Many Requests: se superó el límite de llamadas por minuto de esa clave; espere los segundos que indica
Retry-After. - 400 al conectar: la clave se envió en la URL. Debe ir en el encabezado.
- 403 «disabled on this platform»: un administrador apagó los asistentes de IA en Configuración global → Asistente IA.
- 403 «role is not allowed»: su rol no tiene el permiso Usar asistentes de IA (MCP). Pídaselo a un administrador.
- 404 en /mcp: el servidor MCP fue deshabilitado en su plataforma. Contacte a su administrador.
- Para comprobar que el servicio responde:
https://api.su-dominio.cl/mcp/healthdevuelve{"status": "ok"}.
- 401 Unauthorized: the header is missing, the key is mistyped, or it has expired. Check it in Settings → API Keys.
- "permission denied" on a tool: the role of the key's owner doesn't allow that action or can't see that client or machine.
- 429 Too Many Requests: the key's per-minute call limit was exceeded; wait the seconds indicated by
Retry-After. - 400 when connecting: the key was sent in the URL. It must go in the header.
- 403 "disabled on this platform": an administrator turned AI assistants off in Global Settings → AI Assistant.
- 403 "role is not allowed": your role lacks the Use AI assistants (MCP) permission. Ask an administrator.
- 404 on /mcp: the MCP server isn't enabled on your platform. Contact your administrator.
- To check the service is up:
https://api.your-domain.com/mcp/healthreturns{"status": "ok"}.
Para administradoresFor administrators
Los asistentes de IA se controlan en tres niveles:
- Plataforma, desde la consola: Configuración global → Asistente IA → Permitir asistentes de IA (MCP) en esta plataforma. Viene encendido. Al apagarlo, toda llamada por MCP recibe 403 de inmediato, sin redeploy y también para superusuarios. Las claves de API siguen sirviendo para la API REST directa.
- Rol: el permiso Usar asistentes de IA (MCP), en Configuración → Gestor de permisos (editar el rol). Viene marcado en los roles existentes y en los nuevos. Desmárquelo en los roles que no deban usar asistentes. Lo que cada técnico ve por cliente y sitio lo sigue decidiendo el alcance de su rol.
- Instalación: el servicio se instala en toda plataforma con cada instalación y deploy (
install.yml,upgrade.yml,deploy-api.yml). Para no instalarlo, definamcp_enabled: falseen el inventario.
En el inventario también se puede ajustar el tope de equipos por llamada, el límite de llamadas por minuto y deshabilitar herramientas individuales. Vea la referencia de la API REST para integraciones que no usan IA.
AI assistants are controlled at three levels:
- Platform, from the console: Global Settings → AI Assistant → Allow AI assistants (MCP) on this platform. It is on by default. Turning it off makes every MCP call get a 403 right away, with no redeploy and for superusers too. API keys keep working for the direct REST API.
- Role: the Use AI assistants (MCP) permission, under Settings → Permissions Manager (edit the role). It is checked on existing and new roles. Uncheck it on roles that shouldn't use assistants. What each technician sees per client and site is still set by their role's scope.
- Installation: the service is installed on every platform by each installation and deploy (
install.yml,upgrade.yml,deploy-api.yml). To skip it, setmcp_enabled: falsein the inventory.
In the inventory you can also tune the per-call machine cap and the per-minute call limit, and disable individual tools. See the REST API reference for integrations that don't use AI.