---
title: "NinjaOne MCP server for AI agents - actionlake"
description: "Give Claude 244 NinjaOne actions through one MCP server: documentation, devices, reporting. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/ninjaone
updated: 2026-10-11
---

Connectors · MSP & PSA

# NinjaOne MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to NinjaOne and the rest of your systems. It gives your agent 244 NinjaOne actions (129 reads, 88 writes and 27 that wait for a confirmation) and holds the NinjaOne credential itself, so the agent never does. It paces NinjaOne's limits and records every call.

[Connect NinjaOne free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "ninjaone.devices.list",
  intent: "check which NinjaOne account is connected"
}
# List devices · read · 1 upstream call
```

- 244 actions in one signed file
- 129 read look, never change
- 88 write create and update
- 27 wait for a yes destructive, confirmed first

Set up

## Connect NinjaOne in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect NinjaOne.
   OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `client_id` NinjaOne client id
   - `client_secret` NinjaOne client secret
   ```
   account { op: "connections.requirements", service: "ninjaone" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "ninjaone.devices.list" }
   # list devices · read · 1 upstream call
   check { action: "ninjaone.technicians.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

NinjaOne at a glance

**Sign-in**

OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.

**You provide**

`client_id` `client_secret`

**Limits we pace to**

600 calls a minute, per connection

**API covered**

NinjaOne API 2`app.ninjarmm.com/v2`

**Built from**

NinjaOne's documentation, read 15 September 2026[app.ninjarmm.com](https://app.ninjarmm.com/apidocs/)

**Service file**

Version 2.0.0, signed (Ed25519)

**Cached reads**

129 of 129 reads, for up to an hour; a write clears what it affects

**Ready-made plans**

9 in the store

**Shared entities**

7, so ask can line NinjaOne up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in NinjaOne.

244 actions in 23 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **129** read look, never change
- **88** write create and update
- **27** destructive wait for a confirmation

1. ### Documentation
   68
   23 read · 36 write · 9 destructive
   List organization documents · List one organization's documents · Create organization documents · Create a document from a template
2. ### Devices
   33
   17 read · 12 write · 4 destructive
   List devices · List devices with full detail · List an organization's devices · Get a device's dashboard link
3. ### Reporting
   24
   24 read · 0 write · 0 destructive
   Query computer systems · Query operating systems · Query processors · Query disk drives
4. ### Knowledge
   17
   6 read · 9 write · 2 destructive
   List an organization's knowledge base articles · Create knowledge base articles · List global knowledge base articles · Update knowledge base articles
5. ### Ticketing
   13
   10 read · 3 write · 0 destructive
   Create a ticket · Run a ticket board · Get a ticket · Update a ticket
6. ### Policies
   12
   6 read · 4 write · 2 destructive
   List policies · Create a policy · List a policy's custom field conditions · List a policy's Windows event conditions
7. ### Users
   12
   6 read · 4 write · 2 destructive
   List users · List an organization's end users · List technicians · Create a technician
8. ### Custom fields
   10
   6 read · 4 write · 0 destructive
   Get a device's custom fields · Get a location's custom fields · Get an organization's custom fields · Get an end user's custom fields

**15 more areas · 55 actions**

- Tags **8**
- Organizations **7**
- Backup **5**
- Contacts **5**
- Alerts **4**
- Locations **4**
- Roles **4**
- Jobs **3**
- Scripting **3**
- Vulnerability **3**
- Activities **2**
- Groups **2**
- System **2**
- Webhooks **2**
- Software **1**

Top actions

## The NinjaOne API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 121 of NinjaOne's 145 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `ninjaone.devices.list` List devices | List every managed endpoint, optionally narrowed by a NinjaOne device filter. | read | `device.endpoint.list` 65 connectors |
| `ninjaone.users.list` List users | List every user in this account — technicians and end users — optionally with their roles. | read | `identity.user.list` 474 connectors |
| `ninjaone.devices.list_detailed` List devices with full detail | List managed endpoints with their full detail payload — organization, location, policy, OS and hardware in one call. | read | `device.endpoint.list` 65 connectors |
| `ninjaone.organizations.list` List organizations | List the client organizations under this NinjaOne account. | read | `crm.company.list` 162 connectors |
| `ninjaone.knowledge.organization_articles_list` List an organization's knowledge base articles | List the knowledge base articles belonging to one or more client organizations. | read | `knowledge.article.list` 26 connectors |
| `ninjaone.technicians.list` List technicians | List the technician accounts in this NinjaOne account. | read | `identity.user.list` 474 connectors |
| `ninjaone.alerts.list` List alerts | List every open alert (triggered condition) across the estate. | read | `monitoring.alert.list` 51 connectors |
| `ninjaone.locations.list` List locations | List every site across all client organizations. | read | `crm.location.list` 48 connectors |
| `ninjaone.technicians.create` Create a technician | Invite a new technician by name, email and phone. | write | `identity.user.create` 262 connectors |
| `ninjaone.knowledge.articles_create` Create knowledge base articles | Create one or more knowledge base articles in a named folder. | write | `knowledge.article.create` 28 connectors |
| `ninjaone.technicians.delete` Delete a technician | Permanently remove one technician account. | destructive | `identity.user.delete` 253 connectors |
| `ninjaone.tickets.create` Create a ticket | Raise a ticket against a client organization, on a named form and in a named status. | write | `service.ticket.create` 54 connectors |

Try it

## Prompts to paste into Claude.

Each one names the NinjaOne actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Which NinjaOne tickets have been open the longest? Show me the ten oldest with their status.
   calls `ninjaone.tickets.board_run`
2. Plan destructive
   Offboard a decommissioned device in NinjaOne. Ask me before anything is sent or changed.
   calls `ninjaone.devices.get` `ninjaone.devices.alerts_list` `ninjaone.devices.policy_overrides_get` `ninjaone.devices.policy_overrides_reset` `ninjaone.devices.owner_remove` +1 more
3. Plan write
   Onboard a new organization with location and contact in NinjaOne. Ask me before anything is sent or changed.
   calls `ninjaone.organizations.create` `ninjaone.organizations.location_create` `ninjaone.contacts.create` `ninjaone.organizations.installer_generate` `ninjaone.org_documents.create_from_template` +1 more
4. Write write
   Create a technician in NinjaOne. Show me exactly what you will send before you save it.
   calls `ninjaone.technicians.create`
5. Across systems read
   Which NinjaOne companies have invoices in NetSuite, and how many each?
   calls `ninjaone.organizations.list` `netsuite.views.invoices`

Across your systems

## NinjaOne, joined to the rest of your business.

One `ask` fetches from NinjaOne and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- Which NinjaOne companies have invoices in NetSuite, and how many each?
  `ninjaone.organizations.list` + `netsuite.views.invoices`, on `crm.company` · [NetSuite](https://actionlake.com/connectors/netsuite)
- Which NinjaOne companies have tickets in HubSpot CRM, and how many each?
  `ninjaone.organizations.list` + `hubspot_crm.tickets.list`, on `crm.company` · [HubSpot CRM](https://actionlake.com/connectors/hubspot-crm)

Also mapped by other connectors `identity.user` **517** `crm.company` **227** `device.endpoint` **69** `service.ticket` **62** `monitoring.alert` **56** `crm.location` **49** `knowledge.article` **22**

ask

```
ask {
  intent: "which NinjaOne companies have invoices in NetSuite, and how many each",
  steps: [
    { action: "ninjaone.organizations.list", as: "co", input: {}, limit: 100, max_pages: 5 },
    { action: "netsuite.views.invoices", as: "inv", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "co",
        right: "inv",
        on: "crm.company",
        group_by: "co.name",
        select: ["co.name", "count(inv.id) as invoices"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

The plan store

## Ready-made plans for NinjaOne.

9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

1. ### Report OS patch compliance across the fleet
   Use it when Someone asks how far behind the fleet is on operating system patches.
   **Effect**
   read
   **Steps**
   5
   **Needs**
   device filter and installed after
   **Install**
   `ninjaone-patch-compliance-report`
2. ### Audit installed software against the product list
   Use it when Someone asks what software is installed across an organization's machines.
   **Effect**
   read
   **Steps**
   6 · loops
   **Needs**
   organization id
   **Install**
   `ninjaone-software-inventory-audit`
3. ### Find a stopped Windows service and restart it
   Use it when A monitored Windows service has stopped on one or more machines and needs restarting.
   A person decides Restart _service name_ on _stopped count_ devices where it is currently stopped.
   **Effect**
   write
   **Steps**
   4 · loops
   **Needs**
   device filter, service id and service name
   **Install**
   `ninjaone-stuck-service-restart`
4. ### Triage antivirus threats into a ticket
   Use it when You want outstanding antivirus detections turned into a tracked ticket rather than a dashboard glance.
   **Effect**
   write
   **Steps**
   5
   **Needs**
   client id, ticket form id and timestamp after
   **Install**
   `ninjaone-antivirus-threat-triage`
5. ### Review backup job health and usage
   Use it when Someone asks whether backups are running and whether the data is actually good.
   **Effect**
   write
   **Steps**
   7
   **Needs**
   check device id and device filter
   **Install**
   `ninjaone-backup-health-review`
6. ### Onboard a new organization with location and contact
   Use it when A new customer is being set up in NinjaOne for the first time.
   A person decides Create a new NinjaOne organization called _org name_ with location _location name_.
   **Effect**
   write
   **Steps**
   7
   **Needs**
   contact email, contact first name, document template id, installer type, location name and org name
   **Install**
   `ninjaone-onboard-organization`
7. ### Review open alerts and reset the noisy ones
   Use it when The alert list has filled with noise and someone wants it reviewed and cleared in one pass.
   A person decides Reset _alert count_ open NinjaOne alerts. They cannot be un-cleared.
   **Effect**
   destructive
   **Steps**
   5 · loops
   **Needs**
   source type
   **Install**
   `ninjaone-alert-storm-clear`
8. ### Offboard a decommissioned device
   Use it when A machine has been decommissioned and its NinjaOne record must be cleaned up.
   A person decides Offboard _systemName_ (_device id_): reset policy overrides, remove owner, cancel maintenance.
   **Effect**
   destructive
   **Steps**
   7
   **Needs**
   device id
   **Install**
   `ninjaone-offboard-device`
9. ### Scan and apply OS patches to one device
   Use it when A technician wants to patch and reboot one named device inside an agreed maintenance window.
   A person decides Patch and reboot _systemName_ (_device id_) now.
   **Effect**
   destructive
   **Steps**
   7
   **Needs**
   device id and reboot mode
   **Install**
   `ninjaone-patch-window-run`

install a plan

```
account { op: "plans.install", slug: "ninjaone-patch-compliance-report" }
# then ask for it by name; a schedule can run it on a timetable
```

Governance for NinjaOne

## Destructive actions wait for a yes.

27 NinjaOne actions are destructive. These are all of them:

- Delete a technician `ninjaone.technicians.delete`
- Delete an end user `ninjaone.end_users.delete`
- Delete knowledge base articles `ninjaone.knowledge.articles_delete`
- Reboot a device `ninjaone.devices.reboot`
- Delete a contact `ninjaone.contacts.delete`
- Remove a device's owner `ninjaone.devices.owner_remove`
- Reset an alert `ninjaone.alerts.reset`
- Delete an asset tag `ninjaone.tags.delete`
- Delete asset tags `ninjaone.tags.delete_batch`
- Run a script on a device `ninjaone.devices.script_run`
- Delete knowledge base folders `ninjaone.knowledge.folders_delete`
- Cancel a device's maintenance `ninjaone.devices.maintenance_cancel`
- Delete an unmanaged device `ninjaone.unmanaged_devices.delete`
- Delete a policy condition `ninjaone.policies.condition_delete`
- Remove members from a user role `ninjaone.user_roles.remove_members`
- Add members to a user role `ninjaone.user_roles.add_members`
- Delete an organization document `ninjaone.org_documents.delete`
- Delete a document template `ninjaone.document_templates.delete`
- Reset a device's policy overrides `ninjaone.devices.policy_overrides_reset`
- Delete an organization checklist `ninjaone.org_checklists.delete`
- Delete a checklist template `ninjaone.checklist_templates.delete`
- Delete organization checklists `ninjaone.org_checklists.delete_batch`
- Delete checklist templates `ninjaone.checklist_templates.delete_batch`
- Delete a related item `ninjaone.related_items.delete`
- Delete an entity's related items `ninjaone.related_items.delete_for_entity`
- Disable the webhook `ninjaone.webhooks.disable`
- Delete a custom tab `ninjaone.custom_tabs.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do ninjaone.technicians.delete confirm_policy: **human**

Delete a technician?

**intent:** the user asked me to delete a technician

run suspended · waiting for a named person · key _ninjaone-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "ninjaone-agent",
  allowed_actions: ["ninjaone.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "ninjaone.technicians.delete", approver: "lead@example.com" },
    { match: "ninjaone.end_users.delete", approver: "lead@example.com" },
    { match: "ninjaone.knowledge.articles_delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to NinjaOne only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What NinjaOne costs on actionlake.

Every NinjaOne action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call NinjaOne refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 244 NinjaOne actions
- 35 actions page each page of a long list is one call
- 129 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every NinjaOne action.

244 actions by area: the id your agent calls, what it does, and its effect.

**Documentation 68**

- `ninjaone.checklist_templates.archive` Archive checklist templates write
- `ninjaone.checklist_templates.create` Create checklist templates write
- `ninjaone.checklist_templates.delete` Delete a checklist template destructive
- `ninjaone.checklist_templates.delete_batch` Delete checklist templates destructive
- `ninjaone.checklist_templates.list` List checklist templates read
- `ninjaone.checklist_templates.restore` Restore checklist templates write
- `ninjaone.checklist_templates.update` Update checklist templates write
- `ninjaone.custom_tabs.create` Create a custom tab write
- `ninjaone.custom_tabs.delete` Delete a custom tab destructive
- `ninjaone.custom_tabs.get` Get a custom tab read
- `ninjaone.custom_tabs.hierarchy_end_user` Get a tab's end user hierarchy read
- `ninjaone.custom_tabs.hierarchy_organization` Get a tab's organization hierarchy read
- `ninjaone.custom_tabs.hierarchy_role` Get a tab's role hierarchy read
- `ninjaone.custom_tabs.order_end_user` Reorder end user tabs write
- `ninjaone.custom_tabs.order_organization` Reorder organization tabs write
- `ninjaone.custom_tabs.order_role` Reorder a role's tabs write
- `ninjaone.custom_tabs.rename` Rename a custom tab write
- `ninjaone.custom_tabs.summary_end_user` Get the end user tab summary read
- `ninjaone.custom_tabs.summary_organization` Get the organization tab summary read
- `ninjaone.custom_tabs.summary_role` Get a role's tab summary read
- `ninjaone.custom_tabs.update` Update a custom tab write
- `ninjaone.custom_tabs.visibility_role` Set a role's tab visibility write
- `ninjaone.document_templates.archive` Archive document templates write
- `ninjaone.document_templates.archive_one` Archive one document template write
- `ninjaone.document_templates.create` Create a document template write
- `ninjaone.document_templates.delete` Delete a document template destructive
- `ninjaone.document_templates.get` Get a document template read
- `ninjaone.document_templates.list` List document templates read
- `ninjaone.document_templates.restore` Restore document templates write
- `ninjaone.document_templates.restore_one` Restore one document template write
- `ninjaone.document_templates.update` Update a document template write
- `ninjaone.org_checklists.archive` Archive organization checklists write
- `ninjaone.org_checklists.create` Create organization checklists write
- `ninjaone.org_checklists.create_from_templates` Create checklists from templates write
- `ninjaone.org_checklists.delete` Delete an organization checklist destructive
- `ninjaone.org_checklists.delete_batch` Delete organization checklists destructive
- `ninjaone.org_checklists.get` Get an organization checklist read
- `ninjaone.org_checklists.list` List organization checklists read
- `ninjaone.org_checklists.promote` Promote checklists to templates write
- `ninjaone.org_checklists.promote_with_name` Promote checklists to named templates write
- `ninjaone.org_checklists.restore` Restore organization checklists write
- `ninjaone.org_checklists.signed_urls_get` Get signed urls for a checklist read
- `ninjaone.org_checklists.update` Update organization checklists write
- `ninjaone.org_documents.archive` Archive organization documents write
- `ninjaone.org_documents.archive_one` Archive one organization document write
- `ninjaone.org_documents.create` Create organization documents write
- `ninjaone.org_documents.create_from_template` Create a document from a template write
- `ninjaone.org_documents.delete` Delete an organization document destructive
- `ninjaone.org_documents.list` List organization documents read
- `ninjaone.org_documents.list_for_organization` List one organization's documents read
- `ninjaone.org_documents.restore` Restore organization documents write
- `ninjaone.org_documents.restore_one` Restore one organization document write
- `ninjaone.org_documents.signed_urls_get` Get signed urls for an organization document read
- `ninjaone.org_documents.update` Update organization documents write
- `ninjaone.org_documents.update_one` Update one organization document write
- `ninjaone.related_items.attachment_download` Download a related item's attachment read
- `ninjaone.related_items.create_attachment` Attach a file to an entity write
- `ninjaone.related_items.create_relation` Relate one entity to another write
- `ninjaone.related_items.create_relations` Relate an entity to several others write
- `ninjaone.related_items.create_secure` Attach a secure credential to an entity write
- `ninjaone.related_items.delete` Delete a related item destructive
- `ninjaone.related_items.delete_for_entity` Delete an entity's related items destructive
- `ninjaone.related_items.list` List related items read
- `ninjaone.related_items.list_for_entity` List one entity's related items read
- `ninjaone.related_items.list_for_entity_type` List related items by host entity type read
- `ninjaone.related_items.list_for_related_entity` List related items pointing at an entity read
- `ninjaone.related_items.list_for_related_entity_type` List related items by related entity type read
- `ninjaone.related_items.signed_urls_get` Get signed urls for an entity's attachments read

**Devices 33**

- `ninjaone.devices.approval` Approve or reject devices write
- `ninjaone.devices.dashboard_url_get` Get a device's dashboard link read
- `ninjaone.devices.disks_list` List a device's disks read
- `ninjaone.devices.get` Get a device read
- `ninjaone.devices.last_logged_on_user_get` Get a device's last logged-on user read
- `ninjaone.devices.list` List devices read
- `ninjaone.devices.list_detailed` List devices with full detail read
- `ninjaone.devices.maintenance_cancel` Cancel a device's maintenance destructive
- `ninjaone.devices.maintenance_set` Put a device into maintenance write
- `ninjaone.devices.network_interfaces_list` List a device's network interfaces read
- `ninjaone.devices.os_patch_apply` Apply OS patches to a device write
- `ninjaone.devices.os_patch_installs_list` List a device's OS patch installs read
- `ninjaone.devices.os_patch_scan` Scan a device for OS patches write
- `ninjaone.devices.os_patches_list` List a device's pending OS patches read
- `ninjaone.devices.owner_remove` Remove a device's owner destructive
- `ninjaone.devices.owner_set` Set a device's owner write
- `ninjaone.devices.processors_list` List a device's processors read
- `ninjaone.devices.reboot` Reboot a device destructive
- `ninjaone.devices.search` Search devices by name read
- `ninjaone.devices.service_configure` Configure a Windows service write
- `ninjaone.devices.service_control` Control a Windows service write
- `ninjaone.devices.services_list` List a device's Windows services read
- `ninjaone.devices.software_list` List software on a device read
- `ninjaone.devices.software_patch_apply` Apply software patches to a device write
- `ninjaone.devices.software_patch_installs_list` List a device's software patch installs read
- `ninjaone.devices.software_patch_scan` Scan a device for software patches write
- `ninjaone.devices.software_patches_list` List a device's pending software patches read
- `ninjaone.devices.update` Update a device write
- `ninjaone.devices.volumes_list` List a device's volumes read
- `ninjaone.organizations.devices_list` List an organization's devices read
- `ninjaone.unmanaged_devices.create` Create an unmanaged device write
- `ninjaone.unmanaged_devices.delete` Delete an unmanaged device destructive
- `ninjaone.unmanaged_devices.update` Update an unmanaged device write

**Reporting 24**

- `ninjaone.queries.antivirus_status` Query antivirus status read
- `ninjaone.queries.antivirus_threats` Query antivirus threats read
- `ninjaone.queries.backup_usage` Query backup usage read
- `ninjaone.queries.computer_systems` Query computer systems read
- `ninjaone.queries.custom_fields` Query device custom fields read
- `ninjaone.queries.custom_fields_detailed` Query device custom fields with detail read
- `ninjaone.queries.device_health` Query device health read
- `ninjaone.queries.disks` Query disk drives read
- `ninjaone.queries.logged_on_users` Query last logged-on users read
- `ninjaone.queries.network_interfaces` Query network interfaces read
- `ninjaone.queries.operating_systems` Query operating systems read
- `ninjaone.queries.os_patch_installs` Query OS patch installs read
- `ninjaone.queries.os_patches` Query pending OS patches read
- `ninjaone.queries.policy_overrides` Query policy overrides read
- `ninjaone.queries.processors` Query processors read
- `ninjaone.queries.raid_controllers` Query RAID controllers read
- `ninjaone.queries.raid_drives` Query RAID drives read
- `ninjaone.queries.scoped_custom_fields` Query scoped custom fields read
- `ninjaone.queries.scoped_custom_fields_detailed` Query scoped custom fields with detail read
- `ninjaone.queries.software` Query installed software read
- `ninjaone.queries.software_patch_installs` Query software patch installs read
- `ninjaone.queries.software_patches` Query pending software patches read
- `ninjaone.queries.volumes` Query volumes read
- `ninjaone.queries.windows_services` Query Windows services read

**Knowledge 17**

- `ninjaone.attachments.temp_upload` Upload a temporary attachment write
- `ninjaone.knowledge.article_download` Download a knowledge base article read
- `ninjaone.knowledge.article_signed_urls_get` Get signed urls for a knowledge base article read
- `ninjaone.knowledge.articles_archive` Archive knowledge base articles write
- `ninjaone.knowledge.articles_create` Create knowledge base articles write
- `ninjaone.knowledge.articles_delete` Delete knowledge base articles destructive
- `ninjaone.knowledge.articles_restore` Restore knowledge base articles write
- `ninjaone.knowledge.articles_update` Update knowledge base articles write
- `ninjaone.knowledge.articles_upload` Upload knowledge base article files write
- `ninjaone.knowledge.folder_content_by_path` Get knowledge base folder content by path read
- `ninjaone.knowledge.folder_content_get` Get knowledge base folder content read
- `ninjaone.knowledge.folders_archive` Archive knowledge base folders write
- `ninjaone.knowledge.folders_delete` Delete knowledge base folders destructive
- `ninjaone.knowledge.folders_move` Move knowledge base folders write
- `ninjaone.knowledge.folders_restore` Restore knowledge base folders write
- `ninjaone.knowledge.global_articles_list` List global knowledge base articles read
- `ninjaone.knowledge.organization_articles_list` List an organization's knowledge base articles read

**Ticketing 13**

- `ninjaone.tickets.app_user_contacts_list` List ticketing users and contacts read
- `ninjaone.tickets.attributes_list` List ticket attributes read
- `ninjaone.tickets.board_run` Run a ticket board read
- `ninjaone.tickets.boards_list` List ticket boards read
- `ninjaone.tickets.comment_create` Comment on a ticket write
- `ninjaone.tickets.contacts_list` List ticketing contacts read
- `ninjaone.tickets.create` Create a ticket write
- `ninjaone.tickets.form_get` Get a ticket form read
- `ninjaone.tickets.forms_list` List ticket forms read
- `ninjaone.tickets.get` Get a ticket read
- `ninjaone.tickets.log_entries_list` List a ticket's log entries read
- `ninjaone.tickets.statuses_list` List ticket statuses read
- `ninjaone.tickets.update` Update a ticket write

**Policies 12**

- `ninjaone.devices.policy_overrides_get` Get a device's policy overrides read
- `ninjaone.devices.policy_overrides_reset` Reset a device's policy overrides destructive
- `ninjaone.organizations.policies_set` Set an organization's policy assignments write
- `ninjaone.policies.condition_delete` Delete a policy condition destructive
- `ninjaone.policies.create` Create a policy write
- `ninjaone.policies.custom_field_condition_create` Create a custom field condition write
- `ninjaone.policies.custom_field_condition_get` Get a custom field condition read
- `ninjaone.policies.custom_field_conditions_list` List a policy's custom field conditions read
- `ninjaone.policies.list` List policies read
- `ninjaone.policies.windows_event_condition_create` Create a Windows event condition write
- `ninjaone.policies.windows_event_condition_get` Get a Windows event condition read
- `ninjaone.policies.windows_event_conditions_list` List a policy's Windows event conditions read

**Users 12**

- `ninjaone.end_users.create` Create an end user write
- `ninjaone.end_users.delete` Delete an end user destructive
- `ninjaone.end_users.get` Get an end user read
- `ninjaone.end_users.list` List end users read
- `ninjaone.end_users.update` Update an end user write
- `ninjaone.organizations.end_users_list` List an organization's end users read
- `ninjaone.technicians.create` Create a technician write
- `ninjaone.technicians.delete` Delete a technician destructive
- `ninjaone.technicians.get` Get a technician read
- `ninjaone.technicians.list` List technicians read
- `ninjaone.technicians.update` Update a technician write
- `ninjaone.users.list` List users read

**Custom fields 10**

- `ninjaone.custom_fields.signed_urls_get` Get signed urls for a custom field's attachments read
- `ninjaone.device_custom_fields.list` List device custom field definitions read
- `ninjaone.devices.custom_fields_get` Get a device's custom fields read
- `ninjaone.devices.custom_fields_update` Update a device's custom fields write
- `ninjaone.end_users.custom_fields_get` Get an end user's custom fields read
- `ninjaone.end_users.custom_fields_update` Update an end user's custom fields write
- `ninjaone.locations.custom_fields_get` Get a location's custom fields read
- `ninjaone.locations.custom_fields_update` Update a location's custom fields write
- `ninjaone.organizations.custom_fields_get` Get an organization's custom fields read
- `ninjaone.organizations.custom_fields_update` Update an organization's custom fields write

**Tags 8**

- `ninjaone.tags.batch_update` Add and remove tags on assets write
- `ninjaone.tags.create` Create an asset tag write
- `ninjaone.tags.delete` Delete an asset tag destructive
- `ninjaone.tags.delete_batch` Delete asset tags destructive
- `ninjaone.tags.list` List asset tags read
- `ninjaone.tags.merge` Merge asset tags write
- `ninjaone.tags.set_for_asset` Set an asset's tags write
- `ninjaone.tags.update` Update an asset tag write

**Organizations 7**

- `ninjaone.organizations.create` Create an organization write
- `ninjaone.organizations.get` Get an organization read
- `ninjaone.organizations.installer_generate` Generate an agent installer write
- `ninjaone.organizations.installer_get` Get an agent installer link for a location read
- `ninjaone.organizations.list` List organizations read
- `ninjaone.organizations.list_detailed` List organizations with full detail read
- `ninjaone.organizations.update` Update an organization write

**Backup 5**

- `ninjaone.backup.integrity_check_job_submit` Submit a backup integrity check write
- `ninjaone.backup.integrity_check_jobs_list` List backup integrity check jobs read
- `ninjaone.backup.jobs_list` List backup jobs read
- `ninjaone.locations.backup_usage_get` Get a location's backup usage read
- `ninjaone.organizations.backup_usage_list` List backup usage by location read

**Contacts 5**

- `ninjaone.contacts.create` Create a contact write
- `ninjaone.contacts.delete` Delete a contact destructive
- `ninjaone.contacts.get` Get a contact read
- `ninjaone.contacts.list` List contacts read
- `ninjaone.contacts.update` Update a contact write

**Alerts 4**

- `ninjaone.alerts.list` List alerts read
- `ninjaone.alerts.reset` Reset an alert destructive
- `ninjaone.alerts.reset_with_data` Reset an alert with activity data write
- `ninjaone.devices.alerts_list` List a device's alerts read

**Locations 4**

- `ninjaone.locations.list` List locations read
- `ninjaone.organizations.location_create` Create a location write
- `ninjaone.organizations.location_update` Update a location write
- `ninjaone.organizations.locations_list` List an organization's locations read

**Roles 4**

- `ninjaone.node_roles.list` List device roles read
- `ninjaone.user_roles.add_members` Add members to a user role destructive
- `ninjaone.user_roles.list` List user roles read
- `ninjaone.user_roles.remove_members` Remove members from a user role destructive

**Jobs 3**

- `ninjaone.devices.jobs_list` List a device's running jobs read
- `ninjaone.jobs.list` List running jobs read
- `ninjaone.tasks.list` List scheduled tasks read

**Scripting 3**

- `ninjaone.devices.script_run` Run a script on a device destructive
- `ninjaone.devices.scripting_options_get` Get scripting options for a device read
- `ninjaone.scripts.list` List automation scripts read

**Vulnerability 3**

- `ninjaone.vulnerability.scan_group_get` Get a vulnerability scan group read
- `ninjaone.vulnerability.scan_group_upload` Upload a vulnerability scan result write
- `ninjaone.vulnerability.scan_groups_list` List vulnerability scan groups read

**Activities 2**

- `ninjaone.activities.list` List activities read
- `ninjaone.devices.activities_list` List a device's activities read

**Groups 2**

- `ninjaone.groups.device_ids_list` List a group's device ids read
- `ninjaone.groups.list` List device groups read

**System 2**

- `ninjaone.notification_channels.list` List notification channels read
- `ninjaone.notification_channels.list_enabled` List enabled notification channels read

**Webhooks 2**

- `ninjaone.webhooks.configure` Configure the webhook write
- `ninjaone.webhooks.disable` Disable the webhook destructive

**Software 1**

- `ninjaone.software_products.list` List software products read

Questions

## The NinjaOne MCP server, answered.

**Is there a NinjaOne MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 244 NinjaOne actions across documentation, devices, reporting and knowledge, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by NinjaOne.

**What do I need to connect NinjaOne?**

NinjaOne client id and NinjaOne client secret. The free call account { op: "connections.requirements", service: "ninjaone" } lists exactly what to paste.

**Can an AI agent delete or change things in NinjaOne?**

Only if its key allows it, and only with an explicit confirmation. 27 NinjaOne actions are destructive, including delete a technician, delete an end user and delete knowledge base articles. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my NinjaOne API limit?**

actionlake paces every call to the limits in the NinjaOne service file: 600 calls a minute per connection. Repeated reads are answered from cache (129 NinjaOne actions can be), which never reaches NinjaOne.

**What does a NinjaOne action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (35 NinjaOne actions page). Cache hits, searches, dry runs and calls NinjaOne refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which NinjaOne API does it cover?**

The NinjaOne API 2 at app.ninjarmm.com/v2. It is built from NinjaOne's documentation as read on 15 September 2026. 244 actions in 23 areas, each one in the signed service file (version 2.0.0).

**Can I combine NinjaOne with my other systems?**

Yes. ask joins NinjaOne to NetSuite or HubSpot CRM on the same customer and returns the answer rather than every row. NinjaOne maps crm.company, which 227 other connectors also map.

**Does actionlake keep my NinjaOne data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your NinjaOne credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like NinjaOne

Shares the most action names with

- [IT Glue 39](https://actionlake.com/connectors/it-glue)
- [Syncro 34](https://actionlake.com/connectors/syncro)
- [RepairShopr 33](https://actionlake.com/connectors/repairshopr)
- [ConnectWise Automate 32](https://actionlake.com/connectors/connectwise-automate)
- [SuperOps RMM+PSA 21](https://actionlake.com/connectors/superops-rmm-psa)
- [Kaseya VSA 19](https://actionlake.com/connectors/kaseya-vsa)

Joins with, on shared entities

- [ServiceNow 5](https://actionlake.com/connectors/servicenow)
- [Zoho Desk 4](https://actionlake.com/connectors/zoho-desk)
- [Microsoft Dynamics 365 4](https://actionlake.com/connectors/microsoft-dynamics-365)
- [ServiceTitan 4](https://actionlake.com/connectors/servicetitan)
- [Freshservice 4](https://actionlake.com/connectors/freshservice)
- [Insightly CRM 4](https://actionlake.com/connectors/insightly-crm)

Browse

- [All MSP & PSA connectors](https://actionlake.com/connectors/category/msp-and-psa)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by NinjaOne; the name is the vendor's own. Counts are from the NinjaOne service file, version 2.0.0.

## Give your agent NinjaOne today.

[Connect NinjaOne free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/ninjaone
More: https://actionlake.com/llms.txt
