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: Rancher MCP Server
Инструменты
Учётные данные для всех инструментов берутся из заголовков запроса (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 installed
Maintenance
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
- Flicense-qualityDmaintenanceA 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.
- AlicenseBqualityCmaintenanceModel Context Protocol (MCP) server for the Rancher ecosystem: multi-cluster Kubernetes, Harvester HCI (VMs, storage, networks), and Fleet GitOps.1012Apache 2.0
- Alicense-qualityDmaintenanceModel Context Protocol server that connects AI agents with CrowdStrike Falcon platform for intelligent security analysis and automation.MIT
- Alicense-qualityDmaintenanceA comprehensive Model Context Protocol (MCP) server for New Relic monitoring, observability, and management operations.MIT
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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