mspbots-fleet-mcp
Officialmspbots-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: OpsLevel MCP
Инструменты
Учётные данные для всех инструментов берутся из заголовков запроса (X-MSP-Token / X-MSP-Tenant-Id / X-MSP-Host); передавать токен в параметрах инструмента не нужно.
Хосты
Хосты нельзя создать через API: машина появляется автоматически после установки fleetd и регистрации, а затем её принадлежность закрепляется по объявленным тенантом идентификаторам
(имя хоста / серийный номер / UUID), см. mspbotsfleet_claim_hosts.
Инструмент | Описание | Параметры |
| Список хостов текущего тенанта (нечёткий поиск + фильтр по статусу + пагинация) |
|
| Сведения о хосте + ручные метки |
|
| Список скриптов, доступных для этого хоста |
|
| Полностью заменить ручные метки хоста |
|
| Запросить обновление атрибутов хоста при следующем подключении (асинхронно) |
|
| Удалить хост из Fleet и снять принадлежность (если fleetd не удалён, хост зарегистрируется снова) |
|
| Объявить идентификаторы и взять на себя подходящие бесхозные хосты (идемпотентно; можно вызывать повторно, чтобы повторить несопоставленные) |
|
| Отказаться от принадлежности хоста этому тенанту, не удаляя сам хост (идемпотентно) |
|
Список хостов полностью выгружается, после чего фильтруется, сортируется и разбивается на страницы в памяти; данные со стороны Fleet кэшируются на 15 секунд, а сведения о принадлежности читаются из БД в реальном времени и не кэшируются.
claim_hostsвозвращает{claimed, waiting, rejected}:waiting— идентификаторы уже объявлены, но хост ещё не появился во Fleet,rejected— идентификатор уже объявлен другим тенантом.
Скрипты
Инструмент | Описание | Параметры |
| Список скриптов текущего тенанта |
|
| Сведения о скрипте (включая содержимое) |
|
| Создать скрипт (имя файла должно оканчиваться на |
|
| Заменить содержимое скрипта (имя файла изменить нельзя) |
|
| Удалить скрипт (действует для всех хостов) |
|
| Выполнить скрипт на хосте |
|
| Получить результат выполнения ( |
|
create_script/update_scriptвозвращают только{id, name}; остальные поля, например временные метки, нужно запрашивать черезmspbotsfleet_get_script/mspbotsfleet_list_scripts.
Сохранённые запросы
Инструмент | Описание | Параметры |
| Список запросов текущего тенанта |
|
| Сведения о запросе (включая SQL) |
|
| Создать сохранённый запрос (допускается только один |
|
| Обновить запрос (частично; передавайте только изменяемые поля) |
|
| Удалить запрос и данные его отчётов |
|
| Выполнить запрос на хостах в реальном времени и дождаться результатов (≤45 с) |
|
Правила проверки 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):
Заголовок | Тип | Обязателен | Описание | Пример |
| string | Да | Доступ, выданный Fleet Platform (JWT bearer token). Сервис передаёт его без изменений в исходящем запросе как |
|
| string | Да | Идентификатор тенанта. При передаче в downstream API переименовывается в заголовок |
|
| string | Да | Хост, на котором находится Fleet API. |
|
Отсутствие любого из трёх заголовков возвращает 401 Unauthorized.
Сам downstream Fleet API при сбое аутентификации (отсутствует токен / неверная подпись / недостаточно прав) всегда возвращает 403, а не 401 — 401 возникает только на уровне этого сервиса (отсутствует gateway-заголовок).
Переменные окружения
Переменная | По умолчанию | Описание |
|
| Порт прослушивания |
|
| Адрес прослушивания |
Конечная точка 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>— это всего лишь плейсхолдеры.
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that bridges Microsoft Teams with MCP-compatible clients (LLMs, agentic frameworks, CLI), enabling chat integration, message search, and event streaming without traditional REST API endpoints.-

OpsLevel MCPofficial
AlicenseNot gradedqualityFmaintenanceModel Context Protocol (MCP) server for OpsLevel12MIT- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for seamless integration with peripheral devices connected to your computer. Control, monitor, and manage hardware devices through a unified API.5MIT
- AlicenseBqualityBmaintenanceModel Context Protocol (MCP) server for the Rancher ecosystem: multi-cluster Kubernetes, Harvester HCI (VMs, storage, networks), and Fleet GitOps.1012Apache 2.0