Monitoring

NinjaOne MCP Server

Connect your account, then chat with AI to run tools.

NinjaOne RMM is a remote monitoring and management platform for MSPs and IT teams — monitor endpoints, automate tasks, manage patches, and audit technician activity across customer organizations.

Managed
77 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

AI Skill
SKILL.md

Domain knowledge for NinjaOne — workflow patterns, data models, and gotchas for your AI agent.

NinjaOne RMM

NinjaOne is MSP-shaped: organizations (customers) contain locations, groups, and devices. Policies and automation scripts drive patch and monitoring behavior. Activities, alerts, and jobs surface audit and operational state.

Every API call uses Bearer auth on the same regional host as the console (app, eu, oc, ca subdomain before .ninjarmm.com); the bearer is minted per datacenter.

Hierarchy

  • Organization — MSP customer tenant root.
  • Location — site under an organization.
  • Group — device grouping for policies (not the same as organizations).
  • Device — managed endpoint (workstation, server, network gear).
  • Policy — monitoring/patch template by node class.
  • Device role template — chassis taxonomy (WINDOWS_SERVER, etc.); distinct from node roles (assignment roles) and technician RBAC.
  • Activity / alert / job — audit stream, open conditions, and background work.

Operational order

  1. List organizations (optionally detailed) to discover customer ids.
  2. Scope locations and devices with organization_id when working one customer.
  3. Pull groups, policies, and automation scripts before planning changes.
  4. For one endpoint's live inventory, use device reads with an aspect; for fleet-wide exports, use query reports.
  5. Management actions (reboot, patch apply, script run, decommission) require the management scope — confirm intent before destructive actions.

Device reads vs query reports

Per-device aspect (requires device_id): summary (default record), software, os_patches, software_patches, os_patch_installs, software_patch_installs, disks, volumes, processors, network_interfaces, windows_services, last_logged_on_user, custom_fields, policy_overrides, dashboard_url.

Fleet query reports (tenant-wide /v2/queries/*): antivirus_status, antivirus_threats, backup_usage, computer_systems, custom_fields, custom_fields_detailed, device_health, disks, logged_on_users, network_interfaces, operating_systems, os_patch_installs, os_patches, policy_overrides, processors, raid_controllers, raid_drives, scoped_custom_fields, scoped_custom_fields_detailed, software, software_patch_installs, software_patches, volumes, windows_services.

Use aspects for one machine's current slice; use query reports when you need the same column set across the fleet.

Device management actions

All reboot, patch scan/apply, script execution, maintenance windows, service control, policy-override reset, and decommission paths go through the single device action tool with an action enum: reboot, run_script, os_patch_scan, os_patch_apply, software_patch_scan, software_patch_apply, schedule_maintenance, cancel_maintenance, decommission, windows_service_control, windows_service_configure, reset_policy_overrides. reboot, patch apply, and decommission are destructive — confirm before calling.

Writes and upserts

Create vs update is selected by optional id on upsert tools; supply the upstream JSON body object documented in NinjaOne's API reference. Organization-scoped writes (locations, policy mappings, custom field values) need organization_id.

Licence gates

  • Ticketing metadata and ticket CRUD return HTTP 403 when the tenant lacks the ticketing module — surface that honestly.
  • Billing endpoints are not exposed here.

Gotchas

  • Datacenter host: API calls and token minting must all target the same subdomain as the NinjaOne console.
  • Pagination: activities returns lastActivityId — pass it as after. Most lists return bare arrays; empty fleets are valid.
  • Scopes: monitoring covers reads; management is required for device actions and most writes.
  • Role naming: device role templates (chassis types) differ from node roles (assignments) and technician user roles.

Tools in this Server (77)

Ninjaone Rmm Approve Devices

Approve or reject pending devices (POST /v2/devices/approval/{mode}). mode is the upstream approval mode segment; body carries device ids.

Ninjaone Rmm Create Staged Device

Stage a device for enrollment (POST /v2/staged-device).

Ninjaone Rmm Delete Asset Relationship

Delete an asset relationship (DELETE /v2/itam/asset-relationship with body).

Ninjaone Rmm Delete Asset Tag

Delete asset tags via DELETE /v2/tag/{tagId} or bulk POST /v2/tag/delete.

Ninjaone Rmm Delete Checklist Template

Delete a checklist template (DELETE /v2/checklist/template/{id}) or bulk delete via POST /v2/checklist/templates/delete when body is set.

Ninjaone Rmm Delete Contact

Permanently delete a contact by id (DELETE /v2/contact/{id}).

Ninjaone Rmm Delete Custom Tab

Delete a custom tab by tab id.

Ninjaone Rmm Delete Document Template

Delete a document template by id.

Ninjaone Rmm Delete Knowledge Base Article

Delete knowledge base articles via POST /v2/knowledgebase/articles/delete (upstream uses POST with article ids in body).

Ninjaone Rmm Delete Node Role

Delete node roles via POST /v2/noderole/delete (upstream expects ids in body).

Ninjaone Rmm Delete Organization Document

Delete an organization document (DELETE /v2/organization/document/{id}).

Ninjaone Rmm Delete Policy Condition

Delete a policy condition by policy_id and condition id.

Ninjaone Rmm Delete Related Item

Delete a related item by related_item_id or by entity_type/entity_id pair.

Ninjaone Rmm Delete Software License

Delete a software license by id.

Ninjaone Rmm Delete Unmanaged Device

Delete an unmanaged ITAM device by node id.

Ninjaone Rmm Delete User

Delete a technician or end-user. Set user_type to match the account class (default technicians).

Ninjaone Rmm Delete Webhook

Remove the tenant webhook (DELETE /v2/webhook).

Ninjaone Rmm Generate Installer

Generate an organization installer or fetch a location-specific installer package. Set operation to generate (POST /v2/organization/generate-installer...

Ninjaone Rmm Get Activities

List audit activities tenant-wide or for one device. Omit device_id for /v2/activities; pass device_id for /v2/device/{device_id}/activities. Paginate...

Ninjaone Rmm Get Alerts

List open alerts tenant-wide or for one device. Omit device_id for /v2/alerts; pass device_id for /v2/device/{device_id}/alerts.

Ninjaone Rmm Get Asset Relationship

List asset relationship types, all relations, or relations for one entity. kind=types (/v2/itam/asset-relationship/types), relations (all), or entity ...

Ninjaone Rmm Get Asset Tag

List ITAM asset tags from GET /v2/tag.

Ninjaone Rmm Get Automation Scripts

List tenant automation scripts or per-device scripting options. Omit device_id for /v2/automation/scripts; pass device_id for /v2/device/{device_id}/s...

Ninjaone Rmm Get Backup Jobs

List backup jobs or integrity-check jobs. kind=backup reads /v2/backup/jobs; kind=integrity reads /v2/backup/integrity-check-jobs.

Ninjaone Rmm Get Checklist Template

List checklist templates from GET /v2/checklist/templates. Pass id when your tenant exposes single-template GET (use list output ids).

Ninjaone Rmm Get Contacts

List CRM contacts or fetch one by id. Omit id for GET /v2/contacts; pass id for GET /v2/contact/{id}.

Ninjaone Rmm Get Custom Field Definitions

List custom field definitions. scope=tenant reads /v2/custom-fields; device reads /v2/device-custom-fields; organization reads /v2/organization/{organ...

Ninjaone Rmm Get Custom Tabs

List custom tab summaries or fetch one tab. audience selects organization, end_user, or role summaries; pass tab_id to GET /v2/tab/{tabId}.

Ninjaone Rmm Get Device

Fetch one device or a sub-resource via aspect. device_id is required. aspect selects inventory slices (software, patches, disks, policy overrides, das...

Ninjaone Rmm Get Device Roles

List NinjaOne device role templates (nodeClass chassis definitions such as WINDOWS_SERVER). These are device taxonomy roles, not technician RBAC roles...

Ninjaone Rmm Get Devices

List managed endpoints. Default GET /v2/devices. Set detailed=true for /v2/devices-detailed. Pass query for /v2/devices/search. Pass organization_id f...

Ninjaone Rmm Get Document Template

List document templates or fetch one by id. Omit id for GET /v2/document-templates; pass id for GET /v2/document-templates/{id}.

Ninjaone Rmm Get Groups

List device groups or fetch member device ids for one group. Omit id for GET /v2/groups; pass id for GET /v2/group/{id}/device-ids.

Ninjaone Rmm Get Jobs

List background jobs tenant-wide or for one device. Omit device_id for /v2/jobs; pass device_id for /v2/device/{device_id}/jobs.

Ninjaone Rmm Get Knowledge Base Article

List or fetch knowledge base articles. scope=global reads /v2/knowledgebase/global/articles; scope=organization requires organization_id for /v2/knowl...

Ninjaone Rmm Get Locations

List locations tenant-wide or for one organization. Omit id to list /v2/locations; pass organization_id (without id) for /v2/organization/{organizatio...

Ninjaone Rmm Get Node Roles

List node roles from GET /v2/noderole/list. Node roles are assignment roles — not the same as device chassis templates from get_device_roles.

Ninjaone Rmm Get Organization Document

List organization documents or fetch one checklist-style document. Pass organization_id to scope lists; pass id for /v2/organization/checklist/{id} wh...

Ninjaone Rmm Get Organizations

List MSP customer organizations or fetch one by id. Omit id for the tenant list; pass id for GET /v2/organization/{id}. Set detailed=true for /v2/orga...

Ninjaone Rmm Get Policies

List device policies or read policy condition definitions. Omit policy_id to list /v2/policies. With policy_id and condition_type (custom_fields or wi...

Ninjaone Rmm Get Query Report

Run a fleet-wide NinjaOne query report (inventory, patch, AV, backup, custom fields, etc.). Pick report enum value — each maps to one /v2/queries/* en...

Ninjaone Rmm Get Related Items

List related items globally or scoped by entity. scope=all reads /v2/related-items; entity requires entity_type and entity_id; related_entity requires...

Ninjaone Rmm Get Software License

List software licenses or fetch one with assignments. Omit id for GET /v2/software-license/licenses; pass id for GET /v2/software-license/{id}; set in...

Ninjaone Rmm Get Software Products

List software products tracked for patch and inventory management across the tenant (catalog entries, not per-device installs).

Ninjaone Rmm Get Tasks

List scheduled or in-flight NinjaOne tasks from /v2/tasks.

Ninjaone Rmm Get Ticket Log

List log entries for a ticket (GET /v2/ticketing/ticket/{ticket_id}/log-entry).

Ninjaone Rmm Get Ticket Metadata

Read ticketing configuration: statuses, forms, attributes, boards, or contacts. kind selects the metadata endpoint. Returns HTTP 403 when the tenant l...

Ninjaone Rmm Get Tickets

Fetch one ticket by id or run a board trigger to list tickets. Omit id and pass board_id with body to POST /v2/ticketing/trigger/board/{board_id}/run;...

Ninjaone Rmm Get Users

List users by type. user_type selects the collection: all (/v2/users), technicians, end_users, or roles (RBAC role definitions). Pass id with technici...

Ninjaone Rmm Get Vulnerability Scan Groups

List vulnerability scan groups or fetch one by id. Omit id for GET /v2/vulnerability/scan-groups; pass id for GET /v2/vulnerability/scan-groups/{id}.

Ninjaone Rmm Reset Alert

Reset or delete an alert by uid. operation=reset POSTs /v2/alert/{uid}/reset; operation=delete DELETEs /v2/alert/{uid}.

Ninjaone Rmm Run Device Action

Execute a management action on one device: reboot, run script, patch scan/apply, maintenance window, decommission, Windows service control, or reset p...

Ninjaone Rmm Set Device Owner

Assign or remove a device owner. operation=set POSTs /v2/device/{device_id}/owner/{owner_uid}; operation=clear DELETEs /v2/device/{device_id}/owner.

Ninjaone Rmm Upsert Asset Relationship

Create asset relationship types or relations. operation=type POSTs /v2/itam/asset-relationship/types; operation=relation POSTs /v2/itam/asset-relation...

Ninjaone Rmm Upsert Asset Tag

Create, update, or merge asset tags. operation=create POSTs /v2/tag; update PUTs /v2/tag/{tagId}; merge POSTs /v2/tag/merge; assign POSTs /v2/tag/{ass...

Ninjaone Rmm Upsert Checklist Template

Create, update, archive, or restore checklist templates via /v2/checklist/templates and archive/restore endpoints.

Ninjaone Rmm Upsert Contact

Create or update a NinjaOne contact. Omit id to POST /v2/contacts; pass id to PATCH /v2/contact/{id}. Supply the full upstream body object.

Ninjaone Rmm Upsert Custom Fields

Patch custom field values on an organization, location, or device. Set entity_type to organization (default), location, or device and supply organizat...

Ninjaone Rmm Upsert Custom Tab

Create, update, rename, or reorder custom tabs. operation=create POSTs /v2/tab; update PATCHes /v2/tab/{tab_id}; rename/order/visibility use dedicated...

Ninjaone Rmm Upsert Device

Update managed device metadata (PATCH /v2/device/{id}). id is the device id and is required; there is no create path on this tool.

Ninjaone Rmm Upsert Document Template

Create or update a document template. Omit id to POST; pass id to PUT /v2/document-templates/{id}.

Ninjaone Rmm Upsert Knowledge Base Article

Create, update, archive, restore, or delete knowledge base articles. operation selects POST/PATCH/archive/restore/delete endpoints on /v2/knowledgebas...

Ninjaone Rmm Upsert Location

Create or update a location under an organization. organization_id is always required. Omit id to POST; pass id to PATCH the location.

Ninjaone Rmm Upsert Node Role

Create or update a node role. Omit id to POST /v2/noderole; include role id in body or pass id for PATCH /v2/noderole.

Ninjaone Rmm Upsert Organization

Create or update an MSP customer organization. Omit id to POST /v2/organizations; pass id to PATCH /v2/organization/{id}.

Ninjaone Rmm Upsert Organization Document

Create or update client documents. Omit id to POST /v2/organization/documents; pass id in body or use PATCH on /v2/organization/documents with update ...

Ninjaone Rmm Upsert Policy

Create a device policy (POST /v2/policies). Policy updates in NinjaOne v2 are typically applied via policy editor payloads on create; pass id only whe...

Ninjaone Rmm Upsert Policy Condition

Create a policy condition. Set condition_type to custom_fields (default) or windows_event. policy_id and body are required on create.

Ninjaone Rmm Upsert Policy Mappings

Replace policy mappings for an organization (PUT /v2/organization/{organization_id}/policies). organization_id and body are required.

Ninjaone Rmm Upsert Related Item

Create a related item relation or attachment. kind=relation POSTs /v2/related-items/entity/{entity_type}/{entity_id}/relation; kind=attachment POSTs ....

Ninjaone Rmm Upsert Software License

Create or update software licenses. Omit id to POST /v2/software-license or POST /v2/software-license/upsert when use_upsert=true; pass id to PUT /v2/...

Ninjaone Rmm Upsert Ticket

Create or update a ticket. Omit id to POST /v2/ticketing/ticket; pass id to PUT /v2/ticketing/ticket/{id}. Licenced ticketing module required.

Ninjaone Rmm Upsert Ticket Comment

Add a comment to a ticket (POST /v2/ticketing/ticket/{ticket_id}/comment). ticket_id and body are required.

Ninjaone Rmm Upsert Unmanaged Device

Create or update an ITAM unmanaged device. Omit id to POST; pass nodeId as id to PUT /v2/itam/unmanaged-device/{nodeId}. operation decommission POSTs ...

Ninjaone Rmm Upsert User

Create or update technicians/end-users, or add/remove RBAC role members. Set user_type to technicians (default) or end_users for create/update. For ro...

Ninjaone Rmm Upsert Vulnerability Scan Group

Upload or update vulnerability scan group data. operation=upload POSTs /v2/vulnerability/scan-groups/{scan_group_id}/upload.

Ninjaone Rmm Upsert Webhook

Create or replace the tenant webhook configuration (PUT /v2/webhook). NinjaOne exposes a single webhook endpoint per tenant.

Frequently Asked Questions

What is the NinjaOne MCP server?

NinjaOne RMM is a remote monitoring and management platform for MSPs and IT teams — monitor endpoints, automate tasks, manage patches, and audit technician activity across customer organizations. It provides 77 tools that AI agents can use through the Model Context Protocol (MCP).

How do I connect NinjaOne to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/ninjaone-rmm. Authentication is handled automatically.

How many tools does NinjaOne provide?

NinjaOne provides 77 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does NinjaOne require?

NinjaOne uses API Key. NinjaOne requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect NinjaOne to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/ninjaone-rmm

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to NinjaOne and paste the MCP URL into Remote MCP server URL.
  4. Click Add. NinjaOne will appear under Not connected — select it and click Connect to complete OAuth.
Name: NinjaOne
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/ninjaone-rmm
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use NinjaOne?

Sign in to connect your credentials and start running tools from the chat.

NinjaOne MCP Server & Skill — 77 Tools