Skip to main content
Glama
MSPbotsAI

mspbots-fleet-mcp

Official
by MSPbotsAI

mspbots-fleet-mcp

MCP-сервер для MSPbots Fleet Platform API — мультитенантная консоль поверх fleetdm: инвентаризация хостов, скрипты по запросу и сохранённые osquery-запросы, доступные MCP-клиентам.

Он спроектирован так же, как соседний сервис mspbots-agent-mcp: без состояния, без хранения учётных данных, с аутентификацией через заголовки в каждом запросе по Model Context Protocol (транспорт Streamable HTTP/SSE).

Когда это использовать

Этот MCP оборачивает внутренний продукт MSPbots (управление парком устройств), а не стороннюю интеграцию. Типичные сценарии:

  • «Какие хосты есть у этого тенанта и какие из них офлайн?» → mspbotsfleet_list_hosts

  • «Пометить этот ноутбук как Production» → mspbotsfleet_set_host_labels

  • «Эта машина выглядит устаревшей, принудительно обновить» → mspbotsfleet_refetch_host

  • «Запустить наш скрипт сбора логов на том сервере» → mspbotsfleet_run_script

  • «Какой сейчас объём диска на всех хостах Windows?» → создать сохранённый запрос с помощью mspbotsfleet_create_query, затем mspbotsfleet_run_query

  • «Только что зарегистрировалась партия новых ноутбуков — забрать те, что мы объявили» → mspbotsfleet_claim_hosts

  • «Мы выводим это устройство из эксплуатации, прекращаем считать его своим (но оставляем его во Fleet)» → mspbotsfleet_release_host

Related MCP server: Rancher MCP Server

Инструменты

Учётные данные для всех инструментов берутся из заголовков запроса (X-MSP-Token / X-MSP-Tenant-Id / X-MSP-Host); передавать токен в параметрах инструмента не нужно.

Хосты

Хосты нельзя создать через API: машина появляется автоматически после установки fleetd и регистрации, а затем её принадлежность закрепляется по объявленным тенантом идентификаторам (имя хоста / серийный номер / UUID), см. mspbotsfleet_claim_hosts.

Инструмент

Описание

Параметры

mspbotsfleet_list_hosts

Список хостов текущего тенанта (нечёткий поиск + фильтр по статусу + пагинация)

search, status (online/offline/new/missing), page (по умолчанию 0), per_page (по умолчанию 25, максимум 200)

mspbotsfleet_get_host

Сведения о хосте + ручные метки

host_id (обязательно)

mspbotsfleet_list_host_scripts

Список скриптов, доступных для этого хоста

host_id (обязательно)

mspbotsfleet_set_host_labels

Полностью заменить ручные метки хоста

host_id (обязательно), labels (обязательно, полная замена)

mspbotsfleet_refetch_host

Запросить обновление атрибутов хоста при следующем подключении (асинхронно)

host_id (обязательно)

mspbotsfleet_delete_host

Удалить хост из Fleet и снять принадлежность (если fleetd не удалён, хост зарегистрируется снова)

host_id (обязательно)

mspbotsfleet_claim_hosts

Объявить идентификаторы и взять на себя подходящие бесхозные хосты (идемпотентно; можно вызывать повторно, чтобы повторить несопоставленные)

identifiers (необязательно, список имён хостов / серийных номеров / UUID, до 500; если опущен или пустой массив — только повторная попытка для ранее объявленных)

mspbotsfleet_release_host

Отказаться от принадлежности хоста этому тенанту, не удаляя сам хост (идемпотентно)

host_id (обязательно)

Список хостов полностью выгружается, после чего фильтруется, сортируется и разбивается на страницы в памяти; данные со стороны Fleet кэшируются на 15 секунд, а сведения о принадлежности читаются из БД в реальном времени и не кэшируются. claim_hosts возвращает {claimed, waiting, rejected}: waiting — идентификаторы уже объявлены, но хост ещё не появился во Fleet, rejected — идентификатор уже объявлен другим тенантом.

Скрипты

Инструмент

Описание

Параметры

mspbotsfleet_list_scripts

Список скриптов текущего тенанта

page, per_page

mspbotsfleet_get_script

Сведения о скрипте (включая содержимое)

script_id (обязательно)

mspbotsfleet_create_script

Создать скрипт (имя файла должно оканчиваться на .sh/.ps1). Не идемпотентно — повторный вызов создаст несколько скриптов

name (обязательно), contents (обязательно, ≤500 КБ)

mspbotsfleet_update_script

Заменить содержимое скрипта (имя файла изменить нельзя)

script_id (обязательно), contents (обязательно)

mspbotsfleet_delete_script

Удалить скрипт (действует для всех хостов)

script_id (обязательно)

mspbotsfleet_run_script

Выполнить скрипт на хосте

script_id (обязательно), host_id (обязательно), sync (по умолчанию false; при true — ждать до 60 с и вернуть результат)

mspbotsfleet_get_script_result

Получить результат выполнения (exit_code со значением null означает, что результат ещё не передан)

execution_id (обязательно)

create_script/update_script возвращают только {id, name}; остальные поля, например временные метки, нужно запрашивать через mspbotsfleet_get_script/mspbotsfleet_list_scripts.

Сохранённые запросы

Инструмент

Описание

Параметры

mspbotsfleet_list_queries

Список запросов текущего тенанта

page, per_page

mspbotsfleet_get_query

Сведения о запросе (включая SQL)

query_id (обязательно)

mspbotsfleet_create_query

Создать сохранённый запрос (допускается только один SELECT или WITH … SELECT). Не идемпотентно — повторный вызов создаст несколько запросов

name (обязательно), sql (обязательно), description, platform (darwin/windows/linux)

mspbotsfleet_update_query

Обновить запрос (частично; передавайте только изменяемые поля)

query_id (обязательно), name, sql, description, platform

mspbotsfleet_delete_query

Удалить запрос и данные его отчётов

query_id (обязательно)

mspbotsfleet_run_query

Выполнить запрос на хостах в реальном времени и дождаться результатов (≤45 с)

query_id (обязательно), host_ids (необязательно, ≤50 хостов; если опущено, по умолчанию берутся первые 50 хостов текущего тенанта)

Правила проверки SQL: допускается только один SELECT или WITH … SELECT; завершающая точка с запятой автоматически удаляется, а вхождение ; в тело запроса приводит к отказу. Эти проверки выполняются на бэкенде; этот сервис их не повторяет.

Быстрый старт

Docker (рекомендуется)

docker compose up --build

Сервер запускается на http://localhost:8080.

Локально (uv)

uv sync
python -m mspbots_fleet_mcp

Проверка состояния

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

Для конечной точки проверки состояния учётные данные не требуются.

Параметры авторизации (Authentication)

Каждый запрос к /mcp должен включать следующие HTTP-заголовки (их передаёт вызывающая сторона MCP — они согласованы с mspbots-agent-mcp / ticketqa-mcp):

Заголовок

Тип

Обязателен

Описание

Пример

X-MSP-Token

string

Да

Доступ, выданный Fleet Platform (JWT bearer token). Сервис передаёт его без изменений в исходящем запросе как Authorization: Bearer <token>.

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

X-MSP-Tenant-Id

string

Да

Идентификатор тенанта. При передаче в downstream API переименовывается в заголовок X_Tenant_ID (тенант также встроен в JWT).

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

X-MSP-Host

string

Да

Хост, на котором находится Fleet API.

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

Отсутствие любого из трёх заголовков возвращает 401 Unauthorized.

Сам downstream Fleet API при сбое аутентификации (отсутствует токен / неверная подпись / недостаточно прав) всегда возвращает 403, а не 401 — 401 возникает только на уровне этого сервиса (отсутствует gateway-заголовок).

Переменные окружения

Переменная

По умолчанию

Описание

MCP_HTTP_PORT

8080

Порт прослушивания

MCP_HTTP_HOST

0.0.0.0

Адрес прослушивания

Конечная точка MCP

POST http://localhost:8080/mcp

Подключите ваш MCP-клиент со следующими параметрами:

  • Транспорт: http (Streamable HTTP / SSE)

  • Заголовки: X-MSP-Token, X-MSP-Tenant-Id, X-MSP-Host (все обязательны)

Тестовый пример (Test Example)

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 } }
  }'

⚠️ Этот репозиторий публичный: не добавляйте в коммиты реальные токены, tenant id и другие чувствительные данные. Указанные выше <token> / <tenant-id> — это всего лишь плейсхолдеры.

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