NinjaOne — Claude Code MCP server: setup and tools
Connects Claude Code to NinjaOne for devices, organizations, alerts, and tickets. Useful when an agent needs RMM data through MCP.
claude mcp add --env NINJAONE_CLIENT_ID=<NINJAONE_CLIENT_ID> --env NINJAONE_CLIENT_SECRET=<NINJAONE_CLIENT_SECRET> --env NINJAONE_REGION=<NINJAONE_REGION> --env MCP_TRANSPORT=<MCP_TRANSPORT> --env AUTH_MODE=<AUTH_MODE> --transport stdio ninjaone -- docker run -i --rm -e NINJAONE_CLIENT_ID -e NINJAONE_CLIENT_SECRET -e NINJAONE_REGION -e MCP_TRANSPORT -e AUTH_MODE ghcr.io/wyre-ai/ninjaone-mcp:v2.5.2What NinjaOne does
NinjaOne gives an agent access to NinjaOne RMM data and operations. The server covers four domains: devices, organizations, alerts, and tickets. The agent chooses a domain before using its tools.
Its tool tree starts with a navigation tool, then loads the selected domain handler and NinjaOne client on demand. The Docker stdio setup needs NINJAONE_CLIENT_ID and NINJAONE_CLIENT_SECRET; NINJAONE_REGION selects the API region. Without the OAuth credentials, the stdio connection will not start.
HTTP deployments also require CONDUIT_S2S_SECRET, and /mcp requests need a valid gateway signature. /health and /healthz remain available as unauthenticated health checks.
What it helps with
- inspect NinjaOne devices
- find organizations in RMM data
- review active alerts
- work through NinjaOne tickets
Example prompts for the agent
- Check NinjaOne devices and list their current issues.
- Find the organization linked to this device and show its related records.
- Review recent alerts and tickets, then group them by domain.
How to install NinjaOne
Platform CLI
claude mcp add --env NINJAONE_CLIENT_ID=<NINJAONE_CLIENT_ID> --env NINJAONE_CLIENT_SECRET=<NINJAONE_CLIENT_SECRET> --env NINJAONE_REGION=<NINJAONE_REGION> --env MCP_TRANSPORT=<MCP_TRANSPORT> --env AUTH_MODE=<AUTH_MODE> --transport stdio ninjaone -- docker run -i --rm -e NINJAONE_CLIENT_ID -e NINJAONE_CLIENT_SECRET -e NINJAONE_REGION -e MCP_TRANSPORT -e AUTH_MODE ghcr.io/wyre-ai/ninjaone-mcp:v2.5.2Replace <…> with your own values. 1 more environment variable is in the server README
Platform CLI
codex mcp add ninjaone --env NINJAONE_CLIENT_ID=<NINJAONE_CLIENT_ID> --env NINJAONE_CLIENT_SECRET=<NINJAONE_CLIENT_SECRET> --env NINJAONE_REGION=<NINJAONE_REGION> --env MCP_TRANSPORT=<MCP_TRANSPORT> --env AUTH_MODE=<AUTH_MODE> -- docker run -i --rm -e NINJAONE_CLIENT_ID -e NINJAONE_CLIENT_SECRET -e NINJAONE_REGION -e MCP_TRANSPORT -e AUTH_MODE ghcr.io/wyre-ai/ninjaone-mcp:v2.5.2Replace <…> with your own values. 1 more environment variable is in the server README
Config file
{
"mcpServers": {
"ninjaone": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NINJAONE_CLIENT_ID",
"-e",
"NINJAONE_CLIENT_SECRET",
"-e",
"NINJAONE_REGION",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"ghcr.io/wyre-ai/ninjaone-mcp:v2.5.2"
],
"env": {
"NINJAONE_CLIENT_ID": "<NINJAONE_CLIENT_ID>",
"NINJAONE_CLIENT_SECRET": "<NINJAONE_CLIENT_SECRET>",
"NINJAONE_REGION": "<NINJAONE_REGION>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>"
}
}
}
}Replace <…> with your own values. 1 more environment variable is in the server README
Config file
{
"servers": {
"ninjaone": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"NINJAONE_CLIENT_ID",
"-e",
"NINJAONE_CLIENT_SECRET",
"-e",
"NINJAONE_REGION",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"ghcr.io/wyre-ai/ninjaone-mcp:v2.5.2"
],
"env": {
"NINJAONE_CLIENT_ID": "<NINJAONE_CLIENT_ID>",
"NINJAONE_CLIENT_SECRET": "<NINJAONE_CLIENT_SECRET>",
"NINJAONE_REGION": "<NINJAONE_REGION>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>"
}
}
}
}Replace <…> with your own values. 1 more environment variable is in the server README
Platform CLI
gemini mcp add -e NINJAONE_CLIENT_ID=<NINJAONE_CLIENT_ID> -e NINJAONE_CLIENT_SECRET=<NINJAONE_CLIENT_SECRET> -e NINJAONE_REGION=<NINJAONE_REGION> -e MCP_TRANSPORT=<MCP_TRANSPORT> -e AUTH_MODE=<AUTH_MODE> ninjaone docker run -i --rm -e NINJAONE_CLIENT_ID -e NINJAONE_CLIENT_SECRET -e NINJAONE_REGION -e MCP_TRANSPORT -e AUTH_MODE ghcr.io/wyre-ai/ninjaone-mcp:v2.5.2Replace <…> with your own values. 1 more environment variable is in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about NinjaOne
How do I install NinjaOne in Claude Code?
Run `claude mcp add --env NINJAONE_CLIENT_ID=<NINJAONE_CLIENT_ID> --env NINJAONE_CLIENT_SECRET=<NINJAONE_CLIENT_SECRET> --env NINJAONE_REGION=<NINJAONE_REGION> --env MCP_TRANSPORT=<MCP_TRANSPORT> --env AUTH_MODE=<AUTH_MODE> --transport stdio ninjaone -- docker run -i --rm -e NINJAONE_CLIENT_ID -e NINJAONE_CLIENT_SECRET -e NINJAONE_REGION -e MCP_TRANSPORT -e AUTH_MODE ghcr.io/wyre-ai/ninjaone-mcp:v2.5.2`. Replace the NinjaOne environment values before starting the server.
What does NinjaOne do?
This MCP server connects an agent to NinjaOne RMM. It exposes device, organization, alert, and ticket tools after the agent selects a domain.
What credentials does NinjaOne need?
The stdio setup requires NINJAONE_CLIENT_ID and NINJAONE_CLIENT_SECRET; NINJAONE_REGION is optional. HTTP mode also needs CONDUIT_S2S_SECRET.