Skip to main content
Glama
MSPbotsAI

mspbots-fleet-mcp

Official
by MSPbotsAI

mspbots-fleet-mcp

Servidor MCP para la API de MSPbots Fleet Platform: una consola multiinquilino sobre fleetdm: inventario de hosts, scripts bajo demanda y consultas osquery guardadas, expuestos a clientes MCP.

Sigue el mismo diseño que el servicio hermano mspbots-agent-mcp: sin estado, sin credenciales almacenadas, autenticación por cabecera en cada petición a través del Model Context Protocol (transporte Streamable HTTP/SSE).

Cuándo usarías esto

Este MCP envuelve un producto interno de MSPbots (gestión de flotas de dispositivos), no una integración de terceros. Usos típicos:

  • "¿Qué hosts tiene este inquilino y cuáles están sin conexión?" → mspbotsfleet_list_hosts

  • "Etiqueta este portátil como Producción" → mspbotsfleet_set_host_labels

  • "Esta máquina parece desactualizada, fuerza una actualización" → mspbotsfleet_refetch_host

  • "Ejecuta nuestro script de recopilación de registros en ese servidor" → mspbotsfleet_run_script

  • "¿Cuál es el uso de disco en todos los hosts Windows ahora mismo?" → crea una consulta guardada con mspbotsfleet_create_query y luego mspbotsfleet_run_query

  • "Acaba de inscribirse un lote de portátiles nuevos, reclama los que declaramos" → mspbotsfleet_claim_hosts

  • "Vamos a dar de baja este dispositivo, deja de rastrearlo como nuestro (pero déjalo en Fleet)" → mspbotsfleet_release_host

Related MCP server: Rancher MCP Server

Herramientas

Todas las herramientas obtienen las credenciales de las cabeceras de la petición (X-MSP-Token / X-MSP-Tenant-Id / X-MSP-Host); no es necesario pasar el token en los parámetros de la herramienta.

Hosts

Los hosts no se pueden crear a través de la API: aparecen automáticamente cuando la máquina instala fleetd y se registra, y luego se reclama la propiedad según los identificadores declarados por el inquilino (nombre de host/número de serie/UUID); ver mspbotsfleet_claim_hosts.

Herramienta

Función

Parámetros

mspbotsfleet_list_hosts

Lista los hosts del inquilino actual (búsqueda difusa + filtro de estado + paginación)

search, status(online/offline/new/missing), page(por defecto 0), per_page(por defecto 25, máx. 200)

mspbotsfleet_get_host

Obtiene el detalle del host + etiquetas manuales

host_id(obligatorio)

mspbotsfleet_list_host_scripts

Lista los scripts ejecutables en ese host

host_id(obligatorio)

mspbotsfleet_set_host_labels

Reemplaza por completo las etiquetas manuales del host

host_id(obligatorio), labels(obligatorio, reemplazo completo)

mspbotsfleet_refetch_host

Solicita que el host actualice sus atributos en el próximo check-in (asíncrono)

host_id(obligatorio)

mspbotsfleet_delete_host

Elimina el host de Fleet y libera la propiedad (si fleetd no está desinstalado, se volverá a registrar)

host_id(obligatorio)

mspbotsfleet_claim_hosts

Declara identificadores y reclama los hosts sin propietario que coincidan (idempotente; se puede repetir para reintentar los no coincidentes)

identifiers(opcional, lista de nombres de host/números de serie/UUID, máx. 500; omitir/array vacío = solo reintentar los declarados previamente)

mspbotsfleet_release_host

Abandona la propiedad de un host por parte del inquilino actual, sin eliminar el host en sí (idempotente)

host_id(obligatorio)

La lista de hosts se obtiene completa y luego se filtra/ordena/ pagina en memoria; los datos de Fleet se cachean durante 15 segundos, la información de propiedad se consulta en la base de datos en tiempo real sin caché. claim_hosts devuelve {claimed, waiting, rejected}: waiting son los declarados pero que aún no aparecen en Fleet, rejected son los identificadores que ya han sido declarados por otro inquilino.

Scripts

Herramienta

Función

Parámetros

mspbotsfleet_list_scripts

Lista los scripts del inquilino actual

page, per_page

mspbotsfleet_get_script

Obtiene el detalle del script (incluido el contenido)

script_id(obligatorio)

mspbotsfleet_create_script

Crea un script (el nombre de archivo debe terminar en .sh/.ps1). No idempotente: llamadas repetidas crean varios scripts

name(obligatorio), contents(obligatorio, ≤500KB)

mspbotsfleet_update_script

Reemplaza el contenido del script (el nombre de archivo no se puede cambiar)

script_id(obligatorio), contents(obligatorio)

mspbotsfleet_delete_script

Elimina el script (afecta a todos los hosts)

script_id(obligatorio)

mspbotsfleet_run_script

Ejecuta el script en el host

script_id(obligatorio), host_id(obligatorio), sync(por defecto false; si es true, espera ≤60s y devuelve el resultado)

mspbotsfleet_get_script_result

Consulta el resultado de la ejecución (exit_code nulo significa que aún no se ha enviado)

execution_id(obligatorio)

create_script/update_script solo devuelven {id, name}; el resto de campos, como las marcas de tiempo, requieren consultar mspbotsfleet_get_script/mspbotsfleet_list_scripts.

Consultas guardadas

Herramienta

Función

Parámetros

mspbotsfleet_list_queries

Lista las consultas del inquilino actual

page, per_page

mspbotsfleet_get_query

Obtiene el detalle de la consulta (incluido el SQL)

query_id(obligatorio)

mspbotsfleet_create_query

Crea una consulta guardada (solo se permite un único SELECT / WITH…SELECT). No idempotente: llamadas repetidas crean varias consultas

name(obligatorio), sql(obligatorio), description, platform(darwin/windows/linux)

mspbotsfleet_update_query

Actualiza la consulta (parcial, solo envía los campos a modificar)

query_id(obligatorio), name, sql, description, platform

mspbotsfleet_delete_query

Elimina la consulta y sus datos de informes

query_id(obligatorio)

mspbotsfleet_run_query

Ejecuta la consulta en tiempo real en los hosts y espera el resultado (≤45s)

query_id(obligatorio), host_ids(opcional, ≤50 hosts; si se omite, se toman los primeros 50 del inquilino actual)

Reglas de validación de SQL: solo se permite un único SELECT o WITH … SELECT; se elimina automáticamente el punto y coma final; si aparece ; en el cuerpo, se rechaza directamente. Estas validaciones las realiza el backend; este servicio no las repite.

Inicio rápido

Docker (recomendado)

docker compose up --build

El servidor se inicia en http://localhost:8080.

Local (uv)

uv sync
python -m mspbots_fleet_mcp

Comprobación de estado

curl http://localhost:8080/health
# {"status": "ok"}

No se requieren credenciales para el endpoint de estado.

Parámetros de autorización (Autenticación)

Cada petición a /mcp debe incluir las siguientes cabeceras HTTP (proporcionadas por el llamante MCP, de forma coherente con mspbots-agent-mcp / ticketqa-mcp):

Cabecera

Tipo

¿Obligatoria?

Descripción del campo

Ejemplo

X-MSP-Token

string

Obligatoria

Credencial de acceso emitida por Fleet Platform (token de portador JWT). Este servicio la reenvía tal cual como Authorization: Bearer <token> en la petición descendente.

X-MSP-Token: <jwt-bearer-token>

X-MSP-Tenant-Id

string

Obligatoria

Identificador del inquilino. Al reenviarse a la API descendente se renombra a la cabecera X_Tenant_ID (el inquilino también está incrustado en el JWT).

X-MSP-Tenant-Id: <tenant-id>

X-MSP-Host

string

Obligatoria

Host donde se encuentra la API de Fleet.

X-MSP-Host: https://agent.mspbots.ai

Si falta cualquiera de las tres cabeceras, se devuelve 401 Unauthorized.

La API de Fleet descendente devuelve 403 para fallos de autenticación (token ausente/firma incorrecta/roles insuficientes), no 401; el 401 solo ocurre en esta capa de servicio (cabeceras de puerta de enlace ausentes).

Variables de entorno

Variable

Por defecto

Descripción

MCP_HTTP_PORT

8080

Puerto de escucha

MCP_HTTP_HOST

0.0.0.0

Host de escucha

Endpoint MCP

POST http://localhost:8080/mcp

Conecta tu cliente MCP con:

  • Transporte: http (Streamable HTTP / SSE)

  • Cabeceras: X-MSP-Token, X-MSP-Tenant-Id, X-MSP-Host (todas obligatorias)

Ejemplo de prueba

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "X-MSP-Token: <token>" \
  -H "X-MSP-Tenant-Id: <tenant-id>" \
  -H "X-MSP-Host: https://agent.mspbots.ai" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": { "name": "mspbotsfleet_list_hosts", "arguments": { "status": "online", "per_page": 10 } }
  }'

⚠️ Este repositorio es público; no incluyas tokens reales, identificadores de inquilino ni otra información sensible en ningún archivo confirmado. Los <token> / <tenant-id> anteriores son solo marcadores de posición.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for interacting with the Supabase platform

  • MCP server wrapping the Tesla Fleet API and TeslaMate API

  • MCP (Model Context Protocol) server for Appwrite

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MSPbotsAI/mspbots-fleet-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server