NinjaOne MCP Server
NinjaOne MCP Server
Ein Model Context Protocol (MCP)-Server für die Interaktion mit NinjaOne, der eine Entscheidungsbaum-Architektur für effizientes Laden von Tools bietet.
Ein-Klick-Bereitstellung
[!IMPORTANT] Bevor Sie klicken: Dieser Server hängt von
@wyre-technology/node-ninjaoneab, das im GitHub Packages-npm-Registry gehostet wird. GitHub Packages hat keinen anonymen Zugriff – obwohl das Paket öffentlich ist, benötigt jedenpm installein Token. Der Cloud-Builder führtnpm installfür Sie aus, daher müssen Sie ihm eines geben, sonst schlägt der Build mitnpm error 401 Unauthorized ... npm.pkg.github.comfehl.
Erstellen Sie ein GitHub Personal Access Token mit dem Bereich
read:packages(klassisches Token). Jedes GitHub-Konto funktioniert – Sie müssen nicht Mitglied derwyre-technology-Organisation sein, um deren öffentliche Pakete zu lesen.Fügen Sie es als Build-Variable hinzu, wenn Sie vom Bereitstellungsablauf dazu aufgefordert werden:
Cloudflare Workers → setzen Sie eine Build-Variable namens
NODE_AUTH_TOKENauf Ihr PAT (Workers → Settings → Build → Variables and Secrets).DigitalOcean App Platform → setzen Sie eine verschlüsselte Umgebungsvariable namens
GITHUB_TOKENmit dem Bereich Build Time auf Ihr PAT (die.do/app.yamldeklariert sie bereits).
[!NOTE] Beide Ziele führen den vollständigen MCP-Server aus. DigitalOcean baut das Docker-Image und stellt es über HTTP bereit; Cloudflare Workers bedient denselben Server über den Web-Standard- Streamable-HTTP-Transport des SDKs (
src/worker.ts). Nach der Bereitstellung setzen Sie Ihre NinjaOne-Anmeldedaten als Geheimnisse –NINJAONE_CLIENT_ID,NINJAONE_CLIENT_SECRET, und optionalNINJAONE_REGION– oder setzen SieAUTH_MODE=gateway, um Anmeldedaten pro Anfrage ausX-Ninja-*-Headern zu übernehmen. Der MCP-Endpunkt ist/mcp;/healthist ein nicht authentifizierter Liveness-Healthcheck.
Architektur
Dieser MCP-Server verwendet einen hierarchischen Tool-Ladeansatz, anstatt alle Tools im Voraus bereitzustellen:
Navigationsphase: Stellt zunächst nur ein Navigationstool (
ninjaone_navigate) bereitDomänenauswahl: Der Benutzer wählt eine Domäne (Geräte, Organisationen, Warnungen, Tickets)
Domänen-Tools: Der Server stellt nach der Auswahl domänenspezifische Tools bereit
Lazy Loading: Domänen-Handler und der NinjaOne-Client werden bei Bedarf geladen
Diese Architektur bietet:
Reduzierte kognitive Belastung (weniger Tools zur Auswahl)
Schnellere anfängliche Ladezeiten
Bessere Organisation verwandter Operationen
Klaren Navigationszustand
Installation
Dieses Paket wird im GitHub Packages-npm-Registry veröffentlicht, das auch für öffentliche Pakete ein Token erfordert. Authentifizieren Sie sich einmal, dann installieren Sie:
# Authenticate npm to GitHub Packages (token needs the read:packages scope)
export NODE_AUTH_TOKEN=$(gh auth token) # or a PAT with read:packages
npm install @wyre-technology/ninjaone-mcpDie .npmrc des Repos verweist den @wyre-technology-Bereich bereits auf GitHub Packages und
liest das Token aus NODE_AUTH_TOKEN, sodass keine weitere Konfiguration erforderlich ist. Das Gleiche gilt
für npx @wyre-technology/ninjaone-mcp unten. Bevorzugen Sie eine Option ohne Einrichtung? Verwenden Sie das vorgefertigte
Container-Image (ghcr.io/wyre-technology/ninjaone-mcp) oder das .mcpb-Bundle, das jedem
Release beiliegt.
Konfiguration
Setzen Sie die folgenden Umgebungsvariablen:
Variable | Erforderlich | Beschreibung |
| Ja | OAuth-2.0-Client-ID |
| Ja | OAuth-2.0-Client-Geheimnis |
| Nein | Region: |
| Nein | OAuth-Bereiche, die angefordert werden. Standard: |
NinjaOne-API-Regionen
Region | Basis-URL |
|
|
|
|
|
|
|
|
|
|
|
|
Verwendung
Eigenständig ausführen
# Set credentials
export NINJAONE_CLIENT_ID="your-client-id"
export NINJAONE_CLIENT_SECRET="your-client-secret"
export NINJAONE_REGION="us"
# Run the server
npx @wyre-technology/ninjaone-mcpClaude-Desktop-Konfiguration
Fügen Sie zu Ihrer Claude-Desktop-claude_desktop_config.json hinzu:
{
"mcpServers": {
"ninjaone": {
"command": "npx",
"args": ["@wyre-technology/ninjaone-mcp"],
"env": {
"NINJAONE_CLIENT_ID": "your-client-id",
"NINJAONE_CLIENT_SECRET": "your-client-secret",
"NINJAONE_REGION": "us"
}
}
}
}Docker
docker build -t ninjaone-mcp .
docker run -e NINJAONE_CLIENT_ID=xxx -e NINJAONE_CLIENT_SECRET=xxx -e NINJAONE_REGION=us ninjaone-mcpVerfügbare Domänen
Geräte
Endpunkte verwalten, Geräte neu starten, Dienste und Warnungen anzeigen.
Tools:
ninjaone_devices_list- Geräte auflisten, filterbar nach Organisation, Geräteklasse und Online-Status. Paginiert: Eine volle Seite gibthasMore: trueund einencursorzurück, den Sie für die nächste Seite übergeben.ninjaone_devices_get- Gerätedetails abrufenninjaone_devices_reboot- Einen Geräteneustart planenninjaone_devices_services- Windows-Dienste auf einem Gerät auflistenninjaone_devices_alerts- Gerätespezifische Warnungen abrufenninjaone_devices_activities- Geräteaktivitätsprotokoll anzeigen
Organisationen
Kundenorganisationen und deren Ressourcen verwalten.
Tools:
ninjaone_organizations_list- Organisationen auflistenninjaone_organizations_get- Organisationsdetails abrufenninjaone_organizations_create- Eine neue Organisation erstellenninjaone_organizations_locations- Organisationsstandorte auflistenninjaone_organizations_devices- Geräte für eine Organisation auflisten
Warnungen
Warnungen auf allen Geräten anzeigen und verwalten.
Tools:
ninjaone_alerts_list- Warnungen mit Filtern auflistenninjaone_alerts_get- Eine einzelne Warnung per UID abrufen (wird in MCP-Apps-Hosts als interaktive Karte gerendert)ninjaone_alerts_reset- Eine einzelne Warnung zurücksetzen/verwerfenninjaone_alerts_reset_all- Alle Warnungen für ein Gerät oder eine Organisation zurücksetzenninjaone_alerts_summary- Zusammenfassung der Warnungsanzahl abrufen
Funktionen:
Interaktive Warnungskarte (MCP-Apps, SEP-1865):
ninjaone_alerts_getwird in MCP-Apps-Hosts (Claude Desktop/Web) als interaktive Karte gerendert, mit einem In-Karten-Roundtrip „Warnung zurücksetzen“ überninjaone_alerts_reset; standardmäßig neutral, markenbar überwindow.__BRAND__-Injektion oderMCP_BRAND_*-Umgebungsvariablen; reines JSON-Verhalten bleibt in anderen Hosts unverändert
Tickets
Service-Tickets verwalten.
Tools:
ninjaone_tickets_list- Tickets aus einem Board auflisten (erfordertboard_id;status/organization_id/device_id-Filter werden clientseitig angewendet, siehe Hinweise unten)ninjaone_tickets_get- Ticketdetails abrufenninjaone_tickets_create- Ein neues Ticket erstellenninjaone_tickets_update- Ein vorhandenes Ticket aktualisierenninjaone_tickets_add_comment- Einen Kommentar zu einem Ticket hinzufügenninjaone_tickets_comments- Ticketkommentare abrufenninjaone_tickets_boards_list- Ticket-Boards auflisten (umboard_id-Werte zu entdecken)
Hinweis: NinjaOne fragt Tickets pro Board ab, und Board-IDs variieren je nach Mandant – Board 1 ist nicht immer das „Alle Tickets“-Board, daher erfordert
ninjaone_tickets_listeine expliziteboard_id, anstatt stillschweigend eine zu erraten. Entdecken Sie IDs mitninjaone_tickets_boards_list; auf Mandanten, bei denen dieser Endpunkt 404 zurückgibt, lesen Sie die numerische ID aus der URL des Board-Links in der NinjaOne- Weboberfläche (z. B. den „Alle Tickets“-Seitenleistenlink).Hinweis: Die Board-Run-API von NinjaOne kann Tickets nicht serverseitig nach Status, Organisation oder Gerät filtern (ein Versuch wirft ein generisches
Bad request).ninjaone_tickets_listwendet diese Filter daher clientseitig innerhalb einer Board-Seite an. Die Antwort trenntcount(Treffer auf dieser Seite) vonscanned(untersuchte Tickets) und enthälthasMore/cursor– blättern Sie, bishasMorefalseist, um jeden Treffer zu erhalten, und behandeln Sie dencounteiner einzelnen Seite niemals als boardweite Gesamtzahl. Der Status wird mit dem Anzeigenamen des Status jedes Tickets abgeglichen, daher passen benutzerdefinierte Board-Status möglicherweise nicht auf die WerteOPEN/IN_PROGRESS/WAITING/CLOSED.Ebenso filtert
ninjaone_devices_listnachorganization_idüber NinjaOnes dedizierten Pro-Organisations-Endpunkt (der allgemeinedf=org-Gerätefilter ist unzuverlässig und kann stillschweigend die gesamte Flotte zurückgeben).
Navigationstools
Immer verfügbar:
ninjaone_navigate- Eine Domäne zur Bearbeitung auswählenninjaone_status- Aktuellen Zustand und Anmeldedatenstatus anzeigenninjaone_back- Zum Hauptmenü zurückkehren (wenn in einer Domäne)
Beispiel-Workflow
User: Check my devices
Claude: [calls ninjaone_navigate with domain="devices"]
-> Navigated to devices domain. Available tools: ...
User: List all Windows servers
Claude: [calls ninjaone_devices_list with device_class="WINDOWS_SERVER"]
-> [device list results]
User: Now show me alerts
Claude: [calls ninjaone_back]
-> Navigated back to main menu.
[calls ninjaone_navigate with domain="alerts"]
-> Navigated to alerts domain.Authentifizierung
NinjaOne verwendet OAuth 2.0 für die Authentifizierung. Sie müssen:
Sich in Ihr NinjaOne-Dashboard einloggen
Zu Administration > Apps > API gehen
Eine neue API-Anwendung erstellen (Anwendungsplattform: API Services, Gewährungstyp Client Credentials)
Ihr die benötigten Bereiche gewähren – siehe unten
Client-ID und Client-Geheimnis notieren
Die Umgebungsvariablen konfigurieren
Die Client-Bibliothek übernimmt die Token-Aktualisierung automatisch.
OAuth-Bereiche
Standardmäßig fordert der Server monitoring management an. Welche Bereiche Sie tatsächlich
benötigen, hängt davon ab, was Sie verwenden:
Bereich | Benötigt für |
| Alle Leseoperationen – Auflisten von Geräten, Organisationen, Warnungen und Tickets |
| Schreiboperationen – Neustart von Geräten, Zurücksetzen von Warnungen, Erstellen/Aktualisieren von Tickets und Organisationen |
| Von diesem Server nicht verwendet |
Wenn Ihrer API-App weniger Bereiche gewährt wurden als standardmäßig, setzen Sie NINJAONE_SCOPES
entsprechend. NinjaOne lehnt eine Token-Anfrage ab, die einen Bereich anfordert, der der App
nie gewährt wurde – es gibt 400 invalid_scope zurück, anstatt die Gewährung einzuschränken –
daher tritt der Fehler beim Token-Austausch auf und jeder Tool-Aufruf schlägt fehl, einschließlich
Lesevorgängen. Für eine reine Überwachungs-App:
export NINJAONE_SCOPES="monitoring"Werte können durch Kommas oder Leerzeichen getrennt sein und sind case-insensitiv. In Gateway-
Bereitstellungen kann derselbe Wert pro Anfrage über den X-Ninja-Scopes-Header geliefert werden.
Lizenz
Apache-2.0
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Manage AI assistants, history, calls, campaigns, contacts, knowledge, messaging, and automations.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
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/JDelgadoCMG/ninjaone-mcp1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server