# NinjaOne (oci · ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9)

MCP server for NinjaOne RMM — devices, organizations, alerts, and tickets.

- Trust score: 38/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-22

## Components

- oci · `ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9`: 38/100 (this document), [markdown](https://verifymcp.io/servers/wyre-technology-ninjaone-mcp/ghcr-io-wyre-technology-ninjaone-mcp-v2-2-9.md), [page](https://verifymcp.io/servers/wyre-technology-ninjaone-mcp/ghcr-io-wyre-technology-ninjaone-mcp-v2-2-9)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-22.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1397 tokens (~53/item across 26 items; 25 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 73/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 19% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).
  - Supports UI / widget rendering.

**Unverified: 2 categories.** Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the NinjaOne MCP server?

NinjaOne runs locally as a container image, launched with docker run --rm -i ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add wyre-technology-ninjaone-mcp -- docker run --rm -i ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9
```

### Cursor

```json
{
  "mcpServers": {
    "wyre-technology-ninjaone-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "wyre-technology-ninjaone-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add wyre-technology-ninjaone-mcp -- docker run --rm -i ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wyre-technology-ninjaone-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  wyre-technology-ninjaone-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9"]
```

### Netclaw

```json
{
  "McpServers": {
    "wyre-technology-ninjaone-mcp": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "wyre-technology-ninjaone-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-21 (score 38)

First indexed and scored.

## MCP tools (25)

### `ninjaone_navigate` (~135 tokens)

Discover available NinjaOne tools by domain. Returns tool names and descriptions for the selected domain. All tools are callable at any time — this is a help/discovery aid, not a prerequisite.

Input parameters:

- `domain` (string, required): The domain to explore: - devices: Device management - manage endpoints, reboot systems, view services, and get device alerts/activities - organizations: Organization management - manage customer acco…

### `ninjaone_status` (~18 tokens)

Show API credential status and available tool domains

### `ninjaone_devices_list` (~98 tokens)

List NinjaOne devices, filterable by organization, device class, or online status

Input parameters:

- `cursor` (string): Pagination cursor from a previous response's cursor field (the last device id).
- `device_class` (string)
- `limit` (number): Max devices to return (default 50). A full page sets hasMore=true and returns a cursor.
- `online` (boolean)
- `organization_id` (number)

### `ninjaone_devices_get` (~24 tokens)

Get device details by ID

Input parameters:

- `device_id` (number, required)

### `ninjaone_devices_reboot` (~34 tokens)

Schedule device reboot (destructive action)

Input parameters:

- `device_id` (number, required)
- `reason` (string)

### `ninjaone_devices_services` (~32 tokens)

List Windows services on a device

Input parameters:

- `device_id` (number, required)
- `state` (string)

### `ninjaone_devices_alerts` (~33 tokens)

Get active alerts for a device

Input parameters:

- `device_id` (number, required)
- `severity` (string)

### `ninjaone_devices_activities` (~39 tokens)

Get device activity log

Input parameters:

- `activity_type` (string)
- `device_id` (number, required)
- `limit` (number)

### `ninjaone_organizations_list` (~31 tokens)

List organizations (customer accounts)

Input parameters:

- `cursor` (string)
- `limit` (number)

### `ninjaone_organizations_get` (~25 tokens)

Get organization details by ID

Input parameters:

- `organization_id` (number, required)

### `ninjaone_organizations_create` (~53 tokens)

Create new organization

Input parameters:

- `description` (string)
- `name` (string, required)
- `node_approval_mode` (string): How to handle new device registrations
- `policy_id` (number)

### `ninjaone_organizations_locations` (~23 tokens)

List organization locations

Input parameters:

- `organization_id` (number, required)

### `ninjaone_organizations_devices` (~38 tokens)

List organization devices

Input parameters:

- `device_class` (string)
- `limit` (number)
- `organization_id` (number, required)

### `ninjaone_alerts_list` (~77 tokens)

List active alerts, filterable by severity, organization, or device

Input parameters:

- `cursor` (string)
- `device_id` (number)
- `limit` (number)
- `organization_id` (number)
- `severity` (string)
- `source_type` (string): e.g., CONDITION, ACTIVITY

### `ninjaone_alerts_get` (~29 tokens)

Get details for a specific alert by its UID

Input parameters:

- `alert_uid` (string, required)

### `ninjaone_alerts_reset` (~32 tokens)

Reset (dismiss) an alert - acknowledges and marks as handled

Input parameters:

- `alert_uid` (string, required)

### `ninjaone_alerts_reset_all` (~48 tokens)

Reset all alerts for a device or organization (destructive action)

Input parameters:

- `device_id` (number)
- `organization_id` (number)
- `severity` (string)

### `ninjaone_alerts_summary` (~30 tokens)

Get alert count summary grouped by severity and/or organization

Input parameters:

- `group_by` (string)

### `ninjaone_tickets_list` (~323 tokens)

List tickets from a ticket board, filterable by status, organization, or device. Requires board_id: NinjaOne queries tickets per board and board IDs vary by tenant (board 1 is NOT always the 'All Tickets' board). Discover board IDs with ninjaone_tickets_boards_list first. NOTE: status/organization/device filters are applied client-side within one board page (NinjaOne's board API cannot filter by them server-side), so the response reports `count` (matches in this page) separately from `scanned`, plus `hasMore`/`cursor` — page through until hasMore is false to get every match; never treat one page's count as a board-wide total.

Input parameters:

- `board_id` (number, required): Ticket board to query. Use ninjaone_tickets_boards_list to discover valid IDs; if that endpoint is unavailable on your tenant, read the ID from the board's URL in the NinjaOne web UI.
- `cursor` (string): Pagination cursor from a previous response's cursor field (the board's lastCursorId).
- `device_id` (number): Filter by linked device (ticket nodeId), matched client-side.
- `limit` (number): Board page size (default 50). A full page sets hasMore=true and returns a cursor.
- `organization_id` (number): Filter by organization (ticket clientId), matched client-side.
- `status` (string): Filter by status, matched client-side against each ticket's status display name. Custom board statuses whose names differ from these values won't match.

### `ninjaone_tickets_get` (~25 tokens)

Get ticket details by ID

Input parameters:

- `ticket_id` (number, required)

### `ninjaone_tickets_create` (~67 tokens)

Create new ticket

Input parameters:

- `board_id` (number)
- `description` (string)
- `device_id` (number)
- `organization_id` (number, required)
- `priority` (string)
- `subject` (string, required)
- `type` (string)

### `ninjaone_tickets_update` (~60 tokens)

Update existing ticket

Input parameters:

- `assignee_id` (number)
- `description` (string)
- `priority` (string)
- `status` (string)
- `subject` (string)
- `ticket_id` (number, required)

### `ninjaone_tickets_add_comment` (~46 tokens)

Add comment to ticket

Input parameters:

- `body` (string, required)
- `public` (boolean): visible to customers (default: true)
- `ticket_id` (number, required)

### `ninjaone_tickets_comments` (~25 tokens)

Get ticket comments and activity

Input parameters:

- `ticket_id` (number, required)

### `ninjaone_tickets_boards_list` (~35 tokens)

List available ticket boards for the tenant. Use this to discover board_id values for ninjaone_tickets_list.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/wyre-technology-ninjaone-mcp/ghcr-io-wyre-technology-ninjaone-mcp-v2-2-9#diagnostics

## Score history

- 2026-08-22: 38
- 2026-08-21: 38

## Common questions

### What is the NinjaOne MCP server?

NinjaOne is an MCP server listed in the public MCP registry as io.github.wyre-technology/ninjaone-mcp. MCP server for NinjaOne RMM, devices, organizations, alerts, and tickets. This page covers its container image (ghcr.io/wyre-technology/ninjaone-mcp:v2.2.9).

### Is the NinjaOne MCP server safe to use?

NinjaOne scores 38 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the NinjaOne MCP server expose?

NinjaOne exposes 25 tools: ninjaone_navigate, ninjaone_status, ninjaone_devices_list, ninjaone_devices_get, ninjaone_devices_reboot, and 20 more. Their descriptions and schemas cost roughly 1,380 tokens of context every time the server is loaded.

### Is the NinjaOne MCP server still maintained?

NinjaOne is still listed as active in the MCP registry. We last reached this channel on 22 August 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the NinjaOne MCP server under?

NinjaOne declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/wyre-technology/ninjaone-mcp
- Changelog RSS feed: https://verifymcp.io/servers/wyre-technology-ninjaone-mcp/ghcr-io-wyre-technology-ninjaone-mcp-v2-2-9.xml
- Changelog JSON feed: https://verifymcp.io/servers/wyre-technology-ninjaone-mcp/ghcr-io-wyre-technology-ninjaone-mcp-v2-2-9.json
- HTML version of this page: https://verifymcp.io/servers/wyre-technology-ninjaone-mcp/ghcr-io-wyre-technology-ninjaone-mcp-v2-2-9
