Skip to main content
Glama
MSPbotsAI

mspbots-fleet-mcp

Official
by MSPbotsAI

mspbots-fleet-mcp

MCP-Server für die MSPbots Fleet Platform API – eine Multi-Tenant-Konsole über fleetdm: Host-Inventar, On-Demand-Skripte und gespeicherte osquery-Abfragen, bereitgestellt für MCP-Clients.

Er folgt demselben Design wie der Schwesterdienst mspbots-agent-mcp: zustandslos, keine gespeicherten Anmeldedaten, Header-Authentifizierung pro Anfrage über das Model Context Protocol (Streamable HTTP/SSE-Transport).

Wann Sie dies verwenden würden

Dieses MCP kapselt ein internes MSPbots-Produkt (Geräte-Fleet-Verwaltung), keine Drittanbieter-Integration. Typische Verwendungen:

  • „Welche Hosts hat dieser Mandant, und welche sind offline?" → mspbotsfleet_list_hosts

  • „Dieses Laptop als Production markieren" → mspbotsfleet_set_host_labels

  • „Diese Maschine sieht veraltet aus, Aktualisierung erzwingen" → mspbotsfleet_refetch_host

  • „Unser Log-Erfassungsskript auf diesem Server ausführen" → mspbotsfleet_run_script

  • „Wie hoch ist die Speichernutzung auf allen Windows-Hosts gerade?" → eine gespeicherte Abfrage mit mspbotsfleet_create_query erstellen, dann mspbotsfleet_run_query

  • „Eine Charge neuer Laptops wurde gerade registriert, die von uns deklarierten übernehmen" → mspbotsfleet_claim_hosts

  • „Wir nehmen dieses Gerät außer Betrieb, beenden Sie die Verfolgung als unseres (aber lassen Sie es in Fleet)" → mspbotsfleet_release_host

Related MCP server: Rancher MCP Server

Tools

Die Anmeldedaten für alle Tools stammen aus den Request-Headern (X-MSP-Token / X-MSP-Tenant-Id / X-MSP-Host), es müssen keine Token in den Tool-Parametern übergeben werden.

Hosts

Hosts können nicht über die API erstellt werden: Maschinen erscheinen automatisch, nachdem sie fleetd installiert und registriert haben, und werden dann anhand der vom Mandanten deklarierten Kennungen (Hostname/Seriennummer/UUID) übernommen, siehe mspbotsfleet_claim_hosts.

Tool

Funktion

Parameter

mspbotsfleet_list_hosts

Listet die Hosts des aktuellen Mandanten auf (Fuzzy-Suche+Statusfilter+Seitennummer)

search, status(online/offline/new/missing), page(Standard 0), per_page(Standard 25, max. 200)

mspbotsfleet_get_host

Ruft Host-Details+manuelle Labels ab

host_id(erforderlich)

mspbotsfleet_list_host_scripts

Listet die auf diesem Host ausführbaren Skripte auf

host_id(erforderlich)

mspbotsfleet_set_host_labels

Ersetzt die manuellen Labels des Hosts vollständig

host_id(erforderlich), labels(erforderlich, vollständige Ersetzung)

mspbotsfleet_refetch_host

Fordert an, dass der Host beim nächsten Check-in die Eigenschaften aktualisiert (asynchron)

host_id(erforderlich)

mspbotsfleet_delete_host

Entfernt den Host aus Fleet und löscht die Zuordnung (wenn fleetd nicht deinstalliert ist, registriert er sich erneut)

host_id(erforderlich)

mspbotsfleet_claim_hosts

Deklariert Kennungen und übernimmt passende herrenlose Hosts (idempotent, kann wiederholt aufgerufen werden, um nicht zugeordnete erneut zu versuchen)

identifiers(optional, Liste von Hostname/Seriennummer/UUID, max. 500 Einträge; weggelassen/leeres Array=nur zuvor deklarierte erneut versuchen)

mspbotsfleet_release_host

Gibt die Zuordnung eines Hosts zu diesem Mandanten auf, ohne den Host selbst zu löschen (idempotent)

host_id(erforderlich)

Die Hostliste wird vollständig abgerufen und dann im Speicher gefiltert/sortiert/aufgeteilt. Die Fleet-seitigen Daten werden 15 Sekunden zwischengespeichert, die Zuordnungsinformationen werden in Echtzeit aus der Datenbank abgefragt und nicht zwischengespeichert. claim_hosts gibt {claimed, waiting, rejected} zurück: waiting sind deklarierte, aber noch nicht in Fleet erschienene Hosts, rejected sind Kennungen, die bereits von einem anderen Mandanten deklariert wurden.

Skripte

Tool

Funktion

Parameter

mspbotsfleet_list_scripts

Listet die Skripte des Mandanten auf

page, per_page

mspbotsfleet_get_script

Ruft Skript-Details ab (einschließlich Inhalt)

script_id(erforderlich)

mspbotsfleet_create_script

Erstellt ein neues Skript (Dateiname muss auf .sh/.ps1 enden). Nicht idempotent – wiederholter Aufruf erstellt mehrere Skripte

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

mspbotsfleet_update_script

Ersetzt den Skriptinhalt (Dateiname kann nicht geändert werden)

script_id(erforderlich), contents(erforderlich)

mspbotsfleet_delete_script

Löscht das Skript (wirkt auf alle Hosts)

script_id(erforderlich)

mspbotsfleet_run_script

Führt das Skript auf dem Host aus

script_id(erforderlich), host_id(erforderlich), sync(Standard false, bei true warten ≤60s und Ergebnis zurückgeben)

mspbotsfleet_get_script_result

Fragt das Ausführungsergebnis ab (exit_code null bedeutet nicht zurückgemeldet)

execution_id(erforderlich)

create_script/update_script geben nur {id, name} zurück; Zeitstempel und andere Felder müssen über mspbotsfleet_get_script/mspbotsfleet_list_scripts abgefragt werden.

Gespeicherte Abfragen

Tool

Funktion

Parameter

mspbotsfleet_list_queries

Listet die Abfragen des Mandanten auf

page, per_page

mspbotsfleet_get_query

Ruft Abfrage-Details ab (einschließlich SQL)

query_id(erforderlich)

mspbotsfleet_create_query

Erstellt eine neue gespeicherte Abfrage (nur einzelne SELECT / WITH…SELECT erlaubt). Nicht idempotent – wiederholter Aufruf erstellt mehrere Abfragen

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

mspbotsfleet_update_query

Aktualisiert die Abfrage (partiell, nur zu ändernde Felder übergeben)

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

mspbotsfleet_delete_query

Löscht die Abfrage und ihre Berichtsdaten

query_id(erforderlich)

mspbotsfleet_run_query

Führt die Abfrage in Echtzeit auf Hosts aus und wartet auf das Ergebnis (≤45s)

query_id(erforderlich), host_ids(optional, ≤50 Hosts, weggelassen=Standard die ersten 50 Hosts des Mandanten)

SQL-Validierungsregeln: Nur eine einzelne SELECT- oder WITH … SELECT-Anweisung erlaubt, abschließendes Semikolon wird automatisch entfernt, ein ; im Text wird direkt abgelehnt. Diese Validierung wird vom Backend durchgeführt, dieser Dienst validiert nicht erneut.

Schnellstart

Docker (empfohlen)

docker compose up --build

Der Server startet auf http://localhost:8080.

Lokal (uv)

uv sync
python -m mspbots_fleet_mcp

Health Check

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

Für den Health-Endpunkt sind keine Anmeldedaten erforderlich.

Authentifizierung

Jede Anfrage an /mcp muss die folgenden HTTP-Header enthalten (vom MCP-Aufrufer bereitgestellt – konsistent mit mspbots-agent-mcp / ticketqa-mcp):

Header

Typ

Erforderlich

Feldbeschreibung

Beispiel

X-MSP-Token

string

Erforderlich

Von Fleet Platform ausgestelltes Zugriffstoken (JWT-Bearer-Token). Dieser Dienst leitet es unverändert als Authorization: Bearer <token> an die Downstream-Anfrage weiter.

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

X-MSP-Tenant-Id

string

Erforderlich

Mandantenkennung. Wird bei der Weiterleitung an die Downstream-API in den Header X_Tenant_ID umbenannt (der Mandant ist auch im JWT eingebettet).

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

X-MSP-Host

string

Erforderlich

Host, auf dem die Fleet-API läuft.

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

Fehlt einer der drei Header, wird 401 Unauthorized zurückgegeben.

Die Downstream-Fleet-API selbst gibt bei Authentifizierungsfehlern (fehlendes Token/falsche Signatur/unzureichende Rolle) einheitlich 403 zurück, nicht 401 – 401 tritt nur auf dieser Dienstebene auf (fehlender Gateway-Header).

Umgebungsvariablen

Variable

Standard

Beschreibung

MCP_HTTP_PORT

8080

Listening-Port

MCP_HTTP_HOST

0.0.0.0

Listening-Host

MCP-Endpunkt

POST http://localhost:8080/mcp

Verbinden Sie Ihren MCP-Client mit:

  • Transport: http (Streamable HTTP / SSE)

  • Header: X-MSP-Token, X-MSP-Tenant-Id, X-MSP-Host (alle erforderlich)

Testbeispiel

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

⚠️ Dieses Repository ist öffentlich. Bitte schreiben Sie keine echten Token / Mandanten-IDs oder andere sensible Informationen in irgendeine Datei im Repository. Die obigen <token> / <tenant-id> sind nur Platzhalter.

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