> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to JumpCloud

The JumpCloud connector lets your AI agent act in each user's JumpCloud account. Each user connects their own JumpCloud API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 98 tools.

**Authentication:** API Key
**Categories:** Productivity
**Tools:** 98: 69 read, 24 write, 5 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=JUMPCLOUD)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the JumpCloud connection

   In **AgentKit > Connections**, create a JumpCloud connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'jumpcloud'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize JumpCloud:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'jumpcloud_get_alert_stats',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "jumpcloud"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize JumpCloud:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="jumpcloud_get_alert_stats",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their JumpCloud credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'jumpcloud_get_alert',
  toolInput: {
    id: '<id>',
  },
  connector: 'jumpcloud',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="jumpcloud_get_alert",
    tool_input={
        "id": "<id>",
    },
    connection_name="jumpcloud",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `jumpcloud_get_alert`

Get Alert · Read-only

Retrieve one JumpCloud alert by id.
Returns the alert with title, status, severity, category, source, remark and timestamps.
Use get_alert when you have the alert id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the alert. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_alert_stats`

Get Alert Stats · Read-only

Get alert statistics for the JumpCloud organization.
Returns context and totalCount with the breakdown of alerts.
Use get_alert_stats for counts. Use list_alerts for the alerts themselves.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `groupBy` (`string`, optional): Provide a list of group by strings as input. Possible values are 'GROUP_BY_STATUS', 'GROUP_BY_SEVERITY'.For combined grouping with 'GROUP_BY_STATUS' and 'GROUP_BY_SEVERITY' , the input should look like this: ['GROUP_BY_STATUS:GROUP_BY_SEVERITY'].Example : ["GROUP_BY_STATUS","GROUP_BY_SEVERITY","GROU...

Example input: `{}`

### `jumpcloud_get_application`

Get Application · Read-only

Retrieve one JumpCloud SSO application by id.
Returns the application with config, SSO settings, display fields and logo.
Use get_application when you have the application id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the application. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_application_template`

Get Application Template · Read-only

Retrieve one JumpCloud SSO application template by id.
Returns the template with config, SSO and provisioning capabilities.
Use get_application_template to see how a catalog app is configured.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the application template. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_command`

Get Command · Read-only

Retrieve one saved JumpCloud command by id.
Returns the command definition including script body, type, launch type, schedule and targets.
Use get_command when you have the command id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the command. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_command_result`

Get Command Result · Read-only

Retrieve one JumpCloud command execution result by id.
Returns the result with command, system, requestTime, responseTime and the response output.
Use get_command_result to read the output of one run.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the command result. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_ip_list`

Get IP List · Read-only

Retrieve one JumpCloud IP list by id.
Returns the IP list with name, description and ips.
Use get_ip_list when you have the id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the IP list. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_organization`

Get Organization · Read-only

Retrieve one JumpCloud organization by id.
Returns the organization with displayName, logoUrl, entitlement and account settings.
Use get_organization when you have the organization id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the organization. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_policy`

Get Policy · Read-only

Retrieve one JumpCloud device policy by id.
Returns the policy with name, notes, template, configFields and configured values.
Use get_policy when you have the policy id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the policy. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_policy_group`

Get Policy Group · Read-only

Retrieve one JumpCloud policy group by id.
Returns the group with name, description and attributes.
Use get_policy_group when you have the group id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the policy group. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_policy_result`

Get Policy Result · Read-only

Retrieve one JumpCloud policy execution result by id.
Returns the result with policyID, systemID, state, success, exitStatus, stdOut, stdErr and timestamps.
Use get_policy_result when you have a result id from a list call.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the policy result. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_policy_template`

Get Policy Template · Read-only

Retrieve one JumpCloud policy template by id.
Returns the template with description, osRestrictions and configFields.
Use get_policy_template to see which settings a template exposes.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the policy template. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_radius_server`

Get RADIUS Server · Read-only

Retrieve one JumpCloud RADIUS server by id.
Returns the server with name, networkSourceIp, authIdp, mfa and user authentication settings.
Use get_radius_server when you have the server id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the RADIUS server. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_role`

Get Role · Read-only

Retrieve one JumpCloud administrator role by id.
Returns the role with name, description, scopes and ownership.
Use get_role when you have the role id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `role_id` (`string`, required): ObjectID of the role. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"role_id":"<role_id>"}`

### `jumpcloud_get_software_app`

Get Software App · Read-only

Retrieve one JumpCloud software application by id.
Returns the software app with displayName, settings and timestamps.
Use get_software_app when you have the id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the software application. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_system`

Get System · Read-only

Retrieve one JumpCloud device (system) by id.
Returns the full system record: hardware, OS, agent version, network and security settings, and attributes.
Use get_system when you have the system id. Use list_systems or search_systems to find it.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the system. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_system_group`

Get System Group · Read-only

Retrieve one JumpCloud device group by id.
Returns the group with name, description, email and member query settings.
Use get_system_group when you have the group id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the system group. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_user`

Get User · Read-only

Retrieve one JumpCloud user by id.
Returns the full user record: identity, contact and job fields, state, MFA and lock status, and custom attributes.
Use get_user when you already have the user id. Use list_users or search_users to find the id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_user_group`

Get User Group · Read-only

Retrieve one JumpCloud user group by id.
Returns the group with name, description, email, membershipMethod and member query settings.
Use get_user_group when you have the group id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user group. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_get_user_totp_info`

Get User TOTP Info · Read-only

Get TOTP (authenticator app) enrollment information for a JumpCloud user.
Returns the TOTP enrollmentDate.
Use get_user_totp_info to check whether a user has enrolled TOTP MFA.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_list_alert_notes`

List Alert Notes · Read-only

List the notes attached to one JumpCloud alert.
Returns notes.
Use list_alert_notes to read triage history.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `alertObjectId` (`string`, required): ObjectID of the alert object. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"alertObjectId":"<alertObjectId>"}`

### `jumpcloud_list_alert_occurrences`

List Alert Occurrences · Read-only

List the occurrences recorded for one JumpCloud alert.
Returns alertOccurrences and count.
Use list_alert_occurrences to see repeated triggers of an alert.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the alert. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`string`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25.
- `skip` (`string`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"id":"<id>"}`

### `jumpcloud_list_alerts`

List Alerts · Read-only

List JumpCloud alerts with optional filter, sort and paging.
Returns alerts (objects with objectId, title, status, severity, category, sourceName and createdAt) and count.
Use list_alerts to browse alerts. Use get_alert for one and get_alert_stats for counts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`string`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25.
- `skip` (`string`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_application_templates`

List Application Templates · Read-only

List the SSO application templates in the JumpCloud catalog.
Returns results (templates with id, name, displayName, jit, oidc) and totalCount.
Use list_application_templates to find catalog apps. Use list_applications for ones already configured.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_application_user_groups`

List Application User Groups · Read-only

List the user groups that are bound to a JumpCloud SSO application.
Returns an array of user group references with id, type and association paths.
Use list_application_user_groups to see group-based access to an app.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `application_id` (`string`, required): ObjectID of the Application. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"application_id":"<application_id>"}`

### `jumpcloud_list_application_users`

List Application Users · Read-only

List the users who can access a JumpCloud SSO application, directly or through groups.
Returns an array of user references with id, type and association paths.
Use list_application_users to audit who has access to an app. Use list_application_user_groups for groups.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `application_id` (`string`, required): ObjectID of the Application. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"application_id":"<application_id>"}`

### `jumpcloud_list_applications`

List Applications · Read-only

List JumpCloud SSO applications configured in the organization.
Returns results (applications with id, name, displayLabel, ssoUrl, active) and totalCount.
Use list_applications to browse apps. Use get_application for full config and list_application_users for access.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_command_results`

List Command Results · Read-only

List execution results of JumpCloud commands across devices.
Returns results (command result objects with id, name, system, requestTime, responseTime, exitCode) and totalCount.
Use list_command_results for all runs. Use list_results_for_command for one command.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_commands`

List Commands · Read-only

List saved JumpCloud commands with optional filter, sort and paging.
Returns results (command definitions with id, name, command, launchType, schedule) and totalCount.
Use list_commands to browse commands. Use list_command_results to see their executions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_directories`

List Directories · Read-only

List the directories (Google Workspace, Microsoft 365, LDAP, Active Directory and similar) connected to JumpCloud.
Returns an array of directories with id, name, type, defaultDomain and oAuthStatus.
Use list_directories to see connected identity sources.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_insights_apps`

List Insights Apps · Read-only

List applications installed on JumpCloud devices as reported by System Insights.
Returns an array with system_id, name, bundle_identifier, bundle_short_version and path details.
Use list_insights_apps for installed-software inventory on macOS devices.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_insights_disk_encryption`

List Insights Disk Encryption · Read-only

List System Insights disk encryption status reported by JumpCloud devices.
Returns an array with system_id, name, encrypted, encryption_status and type.
Use list_insights_disk_encryption to find unencrypted disks.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_insights_os_version`

List Insights OS Version · Read-only

List System Insights operating system versions reported by JumpCloud devices.
Returns an array with system_id, name, version, major, minor, patch, build and platform.
Use list_insights_os_version to find devices on outdated OS versions.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_insights_patches`

List Insights Patches · Read-only

List Windows patches and hotfixes reported by System Insights.
Returns an array with system_id, hotfix_id, caption, description and install_date.
Use list_insights_patches to audit Windows patch levels.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_insights_system_info`

List Insights System Info · Read-only

List System Insights hardware and system information collected from JumpCloud devices.
Returns an array with system_id, hostname, computer_name, hardware_model, hardware_serial, cpu and memory details.
Use list_insights_system_info for hardware inventory. Use list_systems for agent and account data.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_ip_lists`

List IP Lists · Read-only

List the IP lists defined in JumpCloud (used for network access rules).
Returns an array of IP lists with id, name, description, ips and managedBy.
Use list_ip_lists to browse. Use get_ip_list for one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_org_policy_results`

List Policy Results For Organization · Read-only

List policy execution results across all JumpCloud policies in the organization.
Returns an array of results with policyID, systemID, state, success, exitStatus and timestamps.
Use list_org_policy_results for an organization-wide view. Use list_policy_results for one policy.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_organizations`

List Organizations · Read-only

List the JumpCloud organizations the API key can access.
Returns results (organizations with _id, displayName and logoUrl) and totalCount.
Use list_organizations to find organization ids. Use get_organization for details of one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.
- `sortIgnoreCase` (`string`, optional): Use space separated sort parameters to sort the collection, ignoring case. Default sort is ascending. Prefix with - to sort descending.

Example input: `{}`

### `jumpcloud_list_policies`

List Policies · Read-only

List JumpCloud device policies in the organization.
Returns an array of policies with id, name and template reference.
Use list_policies to browse policies. Use get_policy for configured values and list_policy_statuses for deployment results.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_policy_group_members`

List Policy Group Members · Read-only

List the policies that belong to a JumpCloud policy group.
Returns an array of graph connections with from and to objects identifying each policy.
Use list_policy_group_members to see group contents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `group_id` (`string`, required): ObjectID of the Policy Group. Example: 5f3a1b2c4d5e6f7890123456.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"group_id":"<group_id>"}`

### `jumpcloud_list_policy_groups`

List Policy Groups · Read-only

List JumpCloud policy groups.
Returns an array of policy groups with id, name and description.
Use list_policy_groups to browse groups. Use list_policy_group_members to see the policies in one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_policy_results`

List Policy Results · Read-only

List the execution results of one JumpCloud policy across devices.
Returns an array of results with systemID, state, success, exitStatus, startedAt, endedAt, stdOut and stdErr.
Use list_policy_results for the full history of one policy. Use list_policy_statuses for the latest result per device.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `policy_id` (`string`, required): ObjectID of the policy. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"policy_id":"<policy_id>"}`

### `jumpcloud_list_policy_statuses`

List Policy Statuses · Read-only

List the latest status of one JumpCloud policy on each device it applies to.
Returns an array with systemID, state, success, exitStatus, detail and timestamps.
Use list_policy_statuses to see current compliance of a policy. Use list_system_policy_statuses for one device.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `policy_id` (`string`, required): ObjectID of the policy. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"policy_id":"<policy_id>"}`

### `jumpcloud_list_policy_templates`

List Policy Templates · Read-only

List the policy templates available to create JumpCloud policies from.
Returns an array of templates with id, name, displayName, osMetaFamily, behavior and description.
Use list_policy_templates to find a template id. Use get_policy_template for its config fields.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_radius_servers`

List RADIUS Servers · Read-only

List JumpCloud RADIUS servers.
Returns results (RADIUS servers with id, name, networkSourceIp, authIdp, mfa) and totalCount.
Use list_radius_servers to browse. Use get_radius_server for one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_results_for_command`

List Results For Command · Read-only

List the execution results of one saved JumpCloud command.
Returns an array of command result objects with system, requestTime, responseTime and response.
Use list_results_for_command to see every run of a command. Use list_command_results for all commands.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the command. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"id":"<id>"}`

### `jumpcloud_list_roles`

List Roles · Read-only

List administrator roles available in JumpCloud.
Returns results (roles with id, name, scopes, isCustom, ownerType) and totalCount.
Use list_roles to browse admin roles. Use get_role for one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_software_app_statuses`

List Software App Statuses · Read-only

List the per-device install status of one JumpCloud software application.
Returns an array with systemId, state, details, code, version and timestamp.
Use list_software_app_statuses to check rollout progress.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `software_app_id` (`string`, required): ObjectID of the Software App. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"software_app_id":"<software_app_id>"}`

### `jumpcloud_list_software_apps`

List Software Apps · Read-only

List software applications configured for deployment in JumpCloud.
Returns an array of software apps with id, displayName, settings, createdAt and updatedAt.
Use list_software_apps to browse. Use list_software_app_statuses for per-device install results.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_system_associations`

List System Associations · Read-only

List what a JumpCloud device is directly associated with (for example commands, policies, users, user groups).
Returns an array of graph connections with from and to objects.
Use list_system_associations for direct bindings of one device.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `system_id` (`string`, required): ObjectID of the System. Example: 5f3a1b2c4d5e6f7890123456.
- `targets` (`string`, required): Comma-separated list of target object types to list associations for. Valid values: command, policy, policy_group, user, user_group. Example: command.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"system_id":"<system_id>","targets":"<targets>"}`

### `jumpcloud_list_system_group_associations`

List System Group Associations · Read-only

List what a JumpCloud device group is directly associated with (for example commands, policies, policy groups, user groups).
Returns an array of graph connections with from and to objects.
Use list_system_group_associations for direct bindings of a device group.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `group_id` (`string`, required): ObjectID of the System Group. Example: 5f3a1b2c4d5e6f7890123456.
- `targets` (`string`, required): Comma-separated list of target object types to list associations for. Valid values: command, policy, policy_group, radius_server, user, user_group. Example: command.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"group_id":"<group_id>","targets":"<targets>"}`

### `jumpcloud_list_system_group_members`

List System Group Members · Read-only

List the devices that belong to a JumpCloud device group.
Returns an array of graph connections with from and to objects identifying each member device.
Use list_system_group_members to see group membership. Use list_system_group_memberships to see which groups a device is in.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `group_id` (`string`, required): ObjectID of the System Group. Example: 5f3a1b2c4d5e6f7890123456.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"group_id":"<group_id>"}`

### `jumpcloud_list_system_group_memberships`

List System Group Memberships · Read-only

List the device groups a JumpCloud device belongs to.
Returns an array of group references with id, type and membership paths.
Use list_system_group_memberships to see a device's groups. Use list_system_group_members for the reverse.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `system_id` (`string`, required): ObjectID of the System. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"system_id":"<system_id>"}`

### `jumpcloud_list_system_groups`

List System Groups · Read-only

List JumpCloud device (system) groups with optional filter, sort and paging.
Returns an array of system groups with id, name, description and membershipMethod.
Use list_system_groups to browse device groups. Use list_system_group_members to see devices in one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_system_policy_statuses`

List System Policy Statuses · Read-only

List the latest status of every JumpCloud policy applied to one device.
Returns an array with policyID, state, success, exitStatus, detail and timestamps.
Use list_system_policy_statuses to check one device's compliance. Use list_policy_statuses for one policy.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `system_id` (`string`, required): ObjectID of the System. Example: 5f3a1b2c4d5e6f7890123456.
- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"system_id":"<system_id>"}`

### `jumpcloud_list_system_users`

List System Users · Read-only

List the users who can access a JumpCloud device, directly or through groups.
Returns an array of user references with id, type and association paths.
Use list_system_users to answer who can sign in to a device. Use list_user_systems for the reverse.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `system_id` (`string`, required): ObjectID of the System. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"system_id":"<system_id>"}`

### `jumpcloud_list_systems`

List Systems · Read-only

List devices (systems) enrolled in JumpCloud, with optional filter, sort and paging.
Returns results (system objects with id, hostname, OS, agent version, status) and totalCount.
Use list_systems to browse or filter devices. Use search_systems for compound queries and get_system for one device.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_user_applications`

List User Applications · Read-only

List the SSO applications a JumpCloud user can access, directly or through groups.
Returns an array of application references with id, type and association paths.
Use list_user_applications to audit a user's app access. Use list_application_users for the reverse.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`string`, required): ObjectID of the User. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"user_id":"<user_id>"}`

### `jumpcloud_list_user_associations`

List User Associations · Read-only

List what a JumpCloud user is directly associated with (for example applications, systems, policies, RADIUS servers).
Returns an array of graph connections with from and to objects.
Use list_user_associations for direct bindings only. Use list_user_applications or list_user_systems for everything reachable including through groups.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `targets` (`string`, required): Comma-separated list of target object types to list associations for. Valid values: active_directory, application, g_suite, idp_routing_policy, ldap_server, office_365, password_manager_item, policy, policy_group, radius_server, system, system_group. Example: active_directory.
- `user_id` (`string`, required): ObjectID of the User. Example: 5f3a1b2c4d5e6f7890123456.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"targets":"<targets>","user_id":"<user_id>"}`

### `jumpcloud_list_user_group_associations`

List User Group Associations · Read-only

List what a JumpCloud user group is directly associated with (for example applications, systems, policies, RADIUS servers).
Returns an array of graph connections with from and to objects.
Use list_user_group_associations for direct bindings only. Use list_user_group_systems for the devices reachable through the group.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `group_id` (`string`, required): ObjectID of the User Group. Example: 5f3a1b2c4d5e6f7890123456.
- `targets` (`string`, required): Comma-separated list of target object types to list associations for. Valid values: active_directory, application, g_suite, idp_routing_policy, ldap_server, office_365, password_manager_item, policy, policy_group, radius_server, system, system_group. Example: active_directory.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"group_id":"<group_id>","targets":"<targets>"}`

### `jumpcloud_list_user_group_members`

List User Group Members · Read-only

List the users that belong to a JumpCloud user group.
Returns an array of graph connections with from and to objects identifying each member user.
Use list_user_group_members to see group membership. Use list_user_group_memberships to see which groups a user is in.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `group_id` (`string`, required): ObjectID of the User Group. Example: 5f3a1b2c4d5e6f7890123456.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"group_id":"<group_id>"}`

### `jumpcloud_list_user_group_memberships`

List User Group Memberships · Read-only

List the user groups a JumpCloud user belongs to.
Returns an array of group references with id, type and membership paths.
Use list_user_group_memberships to see a user's groups. Use list_user_group_members for the reverse.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`string`, required): ObjectID of the User. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{"user_id":"<user_id>"}`

### `jumpcloud_list_user_group_systems`

List User Group Systems · Read-only

List the devices reachable through a JumpCloud user group.
Returns an array of system references with id, type and association paths.
Use list_user_group_systems to see device access granted by a group.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `group_id` (`string`, required): ObjectID of the User Group. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"group_id":"<group_id>"}`

### `jumpcloud_list_user_groups`

List User Groups · Read-only

List JumpCloud user groups with optional filter, sort and paging.
Returns an array of user groups with id, name, description, membershipMethod and type.
Use list_user_groups to browse groups. Use list_user_group_members to see who is in one.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Comma-separated field names to include in each returned record. Omit to get the default field set. Example: id,name.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Comma-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_list_user_ssh_keys`

List User SSH Keys · Read-only

List the public SSH keys stored on a JumpCloud user.
Returns an array of keys with id, name, public_key and create_date.
Use list_user_ssh_keys to audit SSH access for one user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_list_user_systems`

List User Systems · Read-only

List the devices a JumpCloud user can access, directly or through groups.
Returns an array of system references with id, type and association paths.
Use list_user_systems to answer which devices a user can sign in to. Use list_system_users for the reverse.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`string`, required): ObjectID of the User. Example: 5f3a1b2c4d5e6f7890123456.
- `filter` (`string`, optional): Filter expression in the form field:operator:value using v2 operators such as eq, ne, gt, ge, lt, le, between, search and in. Example: name:eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{"user_id":"<user_id>"}`

### `jumpcloud_list_users`

List Users · Read-only

List JumpCloud users (system users) in the organization, with optional filter, sort and paging.
Returns results (user objects with id, username, email, state, MFA and account flags) and totalCount.
Use list_users to browse or filter. Use search_users for text or multi-field searches, and get_user for one user by id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit to get the default field set. Example: username email.
- `filter` (`string`, optional): Filter expression in the form field:$operator:value using v1 operators such as $eq, $ne, $in, $nin, $lt, $lte, $gt, $gte and $sw. Example: department:$eq:Engineering.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.
- `sort` (`string`, optional): Space-separated field names to sort by. Prefix a field with - for descending order. Example: -created.

Example input: `{}`

### `jumpcloud_search_systems`

Search Systems · Read-only

Search JumpCloud devices with a filter or search-filter body for more complex queries than list_systems supports.
Returns results (matching system objects) and totalCount.
Use search_systems for compound or text searches. Use list_systems for simple paging. This call only reads data.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit for the default field set. Example: email username.
- `filter` (`object`, optional): Object with a single and or or key whose value is an array of field-match expressions. and matches all expressions and or matches any. Example: {"or": [{"department": "IT"}, {"department": "Sales"}]}.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `searchFilter` (`object`, optional): Text search object with searchTerm (a string or an array of strings) and fields (the field names to match against). A record matches when any listed field partially matches the term. Example: {"searchTerm": "@example.com", "fields": ["email"]}.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{}`

### `jumpcloud_search_users`

Search Users · Read-only

Search JumpCloud users with a filter or search-filter body for more complex queries than list_users supports.
Returns results (matching user objects) and totalCount.
Use search_users for compound or text searches. Use list_users for simple paging and single-field filters. This call only reads data.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `fields` (`string`, optional): Space-separated field names to include in each returned record. Omit for the default field set. Example: email username.
- `filter` (`object`, optional): Object with a single and or or key whose value is an array of field-match expressions. and matches all expressions and or matches any. Example: {"or": [{"department": "IT"}, {"department": "Sales"}]}.
- `limit` (`integer`, optional): Maximum number of records to return in one call. The API caps this at 100. Example: 25. Default: `10`.
- `searchFilter` (`object`, optional): Text search object with searchTerm (a string or an array of strings) and fields (the field names to match against). A record matches when any listed field partially matches the term. Example: {"searchTerm": "@example.com", "fields": ["email"]}.
- `skip` (`integer`, optional): Number of records to skip before returning results, used for paging. Example: 0 for the first page, 25 for the second page when limit is 25. Default: `0`.

Example input: `{}`

### `jumpcloud_activate_user`

Activate User · Write

Activate a staged JumpCloud user and send the activation email.
Returns a confirmation string.
Use activate_user for users in the STAGED state. Use update_user to move a suspended user back to ACTIVATED.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `email` (`object`, optional): Email address the activation message is sent to. Defaults to the address on the user record. Example: jane.doe@example.com. Provide JSON.

Example input: `{"id":"<id>"}`

### `jumpcloud_add_alert_note`

Add Alert Note · Write

Add a note to a JumpCloud alert.
Returns the created note.
Use add_alert_note to record findings. Use update_alert_status to change the status.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `alertNote` (`string`, required): Text of the note to add to the alert. Example: Confirmed false positive.
- `alertObjectId` (`string`, required): ObjectID of the alert object. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"alertNote":"<alertNote>","alertObjectId":"<alertObjectId>"}`

### `jumpcloud_create_command`

Create Command · Write

Create a saved JumpCloud command (script) definition. This does not run it on devices.
Returns the created command including its id.
Use create_command to define a script. Use manage_system_association or manage_system_group_association to target devices.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `command` (`string`, required): The script or command body to run on devices. Example: echo hello.
- `commandType` (`string`, required): Operating system the command targets. Valid values: linux, mac, windows. Example: linux.
- `name` (`string`, required): Name of the command shown in the JumpCloud console. Example: Rotate logs.
- `description` (`string`, optional): Free-text description or notes. Example: Created via Scalekit.
- `launchType` (`string`, optional): How the command is launched. Example: manual (run on demand), repeated (scheduled), trigger (webhook triggered).
- `schedule` (`string`, optional): Cron expression for scheduled commands, with seconds first. Example: 0 0 12 * * *.
- `scheduleRepeatType` (`string`, optional): How often a scheduled command repeats. Example: day.
- `scheduleYear` (`integer`, optional): Year in which a one-off scheduled command runs. Example: 2026.
- `shell` (`string`, optional): Shell used to run the command on Linux and macOS. Example: bash.
- `sudo` (`boolean`, optional): Set true to give the user administrator (sudo) rights on devices they can access. For commands, set true to run the command with elevated privileges.
- `timeout` (`string`, optional): Seconds to let the command run before it is stopped. Example: 120.
- `timeToLiveSeconds` (`integer`, optional): Seconds a queued command waits for an offline device before it expires. Example: 600.
- `trigger` (`string`, optional): Name of the webhook trigger used when launchType is trigger. Example: my-trigger.
- `user` (`string`, optional): ObjectID of the system user the command runs as on the device, or 000000000000000000000000 for root. Example: 000000000000000000000000.

Example input: `{"command":"<command>","commandType":"<commandType>","name":"<name>"}`

### `jumpcloud_create_system_group`

Create System Group · Write

Create a JumpCloud device (system) group.
Returns the created group including its id.
Use create_system_group to start a new group, then manage_system_group_member to add devices.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Display name of the system group. Example: Engineering.
- `description` (`string`, optional): Description of the group. Example: All engineering staff.
- `email` (`string`, optional): Email address associated with the group. Example: engineering@example.com.
- `memberQuery` (`object`, optional): Dynamic group member query as a JSON object, used when membershipMethod is dynamic. Example: {"queryType": "FilterQuery", "filters": [{"field": "department", "operator": "eq", "value": "Engineering"}]}.
- `membershipMethod` (`string`, optional): How group membership is decided. STATIC means members are added by hand, the DYNAMIC options compute members from memberQuery. Valid values: NOTSET, STATIC, DYNAMIC_REVIEW_REQUIRED, DYNAMIC_AUTOMATED. One of: `NOTSET`, `STATIC`, `DYNAMIC_REVIEW_REQUIRED`, `DYNAMIC_AUTOMATED`.

Example input: `{"name":"<name>"}`

### `jumpcloud_create_user`

Create User · Write

Create a JumpCloud user in the organization.
Returns the created user record including its generated id.
Use create_user to onboard a person. Use update_user to change an existing user.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `email` (`string`, required): Primary email address of the user. Must be unique in the organization and is used for notifications and sign-in. Example: jane.doe@example.com.
- `username` (`string`, required): Unique login name for the user. Must be unique in the organization. Example: jdoe.
- `allow_public_key` (`boolean`, optional): Set true to allow the user to authenticate with SSH public keys on their devices.
- `alternateEmail` (`string`, optional): Secondary email address for the user, such as a personal address. Example: jane@personal.example.com.
- `company` (`string`, optional): Company the user works for. Example: Example Inc.
- `costCenter` (`string`, optional): Cost center the user is charged to. Example: CC-1001.
- `department` (`string`, optional): Department the user belongs to. Example: Engineering.
- `description` (`string`, optional): Free-text description or notes. Example: Created via Scalekit.
- `displayname` (`string`, optional): Name shown for the user in the JumpCloud console and apps. Example: Jane Doe.
- `employeeIdentifier` (`string`, optional): Employee ID for the user. Must be unique per user in the organization. Example: E-10234.
- `employeeType` (`string`, optional): Employment type of the user. Example: Full time.
- `enable_user_portal_multifactor` (`boolean`, optional): Set true to require multi-factor authentication for the user when signing in to the User Portal.
- `firstname` (`string`, optional): Given name of the user. Example: Jane.
- `jobTitle` (`string`, optional): Job title of the user. Example: Software Engineer.
- `lastname` (`string`, optional): Family name of the user. Example: Doe.
- `location` (`string`, optional): Office or work location of the user. Example: Denver.
- `manager` (`string`, optional): ObjectID of another JumpCloud user who is this user's manager. Example: 5f3a1b2c4d5e6f7890123456.
- `middlename` (`string`, optional): Middle name of the user. Example: Quinn.
- `password` (`string`, optional): Initial or new password for the user. Must satisfy the organization password policy. Omit to let the user set it during activation.
- `password_never_expires` (`boolean`, optional): Set true so the password never expires, or false to follow the password expiration policy.
- `passwordless_sudo` (`boolean`, optional): Set true to grant sudo without a password on Linux and macOS devices the user can access.
- `state` (`string`, optional): Lifecycle state of the user. STAGED users are not active until activated, ACTIVATED users can sign in, SUSPENDED users cannot. Example: ACTIVATED. Valid values: STAGED, ACTIVATED, SUSPENDED. One of: `STAGED`, `ACTIVATED`, `SUSPENDED`.
- `sudo` (`boolean`, optional): Set true to give the user administrator (sudo) rights on devices they can access. For commands, set true to run the command with elevated privileges.

Example input: `{"email":"<email>","username":"<username>"}`

### `jumpcloud_create_user_group`

Create User Group · Write

Create a JumpCloud user group.
Returns the created group including its id.
Use create_user_group to start a new group, then manage_user_group_member to add users.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `name` (`string`, required): Display name of the user group. Example: Engineering.
- `description` (`string`, optional): Description of the group. Example: All engineering staff.
- `email` (`string`, optional): Email address associated with the group. Example: engineering@example.com.
- `memberQuery` (`object`, optional): Dynamic group member query as a JSON object, used when membershipMethod is dynamic. Example: {"queryType": "FilterQuery", "filters": [{"field": "department", "operator": "eq", "value": "Engineering"}]}.
- `membershipMethod` (`string`, optional): How group membership is decided. STATIC means members are added by hand, the DYNAMIC options compute members from memberQuery. Valid values: NOTSET, STATIC, DYNAMIC_REVIEW_REQUIRED, DYNAMIC_AUTOMATED. One of: `NOTSET`, `STATIC`, `DYNAMIC_REVIEW_REQUIRED`, `DYNAMIC_AUTOMATED`.

Example input: `{"name":"<name>"}`

### `jumpcloud_expire_user_password`

Expire User Password · Write

Expire a JumpCloud user password so the user must set a new one at next sign-in.
Returns a confirmation string.
Use expire_user_password to force a password change.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_lock_system`

Lock System · Write

Send the built-in lock command to a JumpCloud device.
Returns an empty response on success (HTTP 201).
Use lock_system to lock a lost or compromised device. Use restart_system to reboot it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `system_id` (`string`, required): ObjectID of the system. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"system_id":"<system_id>"}`

### `jumpcloud_manage_system_association`

Manage System Association · Write

Add or remove an association between a JumpCloud device and a command, policy, policy group, user or user group.
Returns an empty response on success (HTTP 204).
Use manage_system_association to bind a single device. Prefer groups for many devices.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the object being added or removed. Example: 5f3a1b2c4d5e6f7890123456.
- `op` (`string`, required): How to modify the connection: add, remove or update. One of: `add`, `remove`, `update`.
- `system_id` (`string`, required): ObjectID of the System. Example: 5f3a1b2c4d5e6f7890123456.
- `type` (`string`, required): Type of the object being added or removed. Valid values: command, policy, policy_group, user, user_group. One of: `command`, `policy`, `policy_group`, `user`, `user_group`.
- `attributes` (`object`, optional): Custom key and value attributes as a JSON array of objects with name and value. Example: [{"name": "badge", "value": "1234"}].

Example input: `{"id":"<id>","op":"add","system_id":"<system_id>","type":"command"}`

### `jumpcloud_manage_system_group_association`

Manage System Group Association · Write

Add or remove an association between a JumpCloud device group and a command, policy, policy group, user or user group.
Returns an empty response on success (HTTP 204).
Use manage_system_group_association to apply policies or commands to a device group.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `group_id` (`string`, required): ObjectID of the System Group. Example: 5f3a1b2c4d5e6f7890123456.
- `id` (`string`, required): ObjectID of the object being added or removed. Example: 5f3a1b2c4d5e6f7890123456.
- `op` (`string`, required): How to modify the connection: add, remove or update. One of: `add`, `remove`, `update`.
- `type` (`string`, required): Type of the object being added or removed. Valid values: command, policy, policy_group, radius_server, user, user_group. One of: `command`, `policy`, `policy_group`, `radius_server`, `user`, `user_group`.
- `attributes` (`object`, optional): Custom key and value attributes as a JSON array of objects with name and value. Example: [{"name": "badge", "value": "1234"}].

Example input: `{"group_id":"<group_id>","id":"<id>","op":"add","type":"command"}`

### `jumpcloud_manage_system_group_member`

Manage System Group Member · Write

Add or remove one device in a JumpCloud device group.
Returns an empty response on success (HTTP 204).
Use manage_system_group_member to change group membership. Use manage_system_group_association to bind the group to users, policies or commands.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `group_id` (`string`, required): ObjectID of the System Group. Example: 5f3a1b2c4d5e6f7890123456.
- `id` (`string`, required): ObjectID of the object being added or removed. Example: 5f3a1b2c4d5e6f7890123456.
- `op` (`string`, required): How to modify the connection: add, remove or update. One of: `add`, `remove`, `update`.
- `type` (`string`, required): Type of the member being added or removed. Valid value: system. One of: `system`.
- `attributes` (`object`, optional): Custom key and value attributes as a JSON array of objects with name and value. Example: [{"name": "badge", "value": "1234"}].

Example input: `{"group_id":"<group_id>","id":"<id>","op":"add","type":"system"}`

### `jumpcloud_manage_user_association`

Manage User Association · Write

Add or remove an association between a JumpCloud user and an application, system, policy, RADIUS server or other target.
Returns an empty response on success (HTTP 204).
Use manage_user_association to grant one user direct access. Prefer groups with manage_user_group_member for many users.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the object being added or removed. Example: 5f3a1b2c4d5e6f7890123456.
- `op` (`string`, required): How to modify the connection: add, remove or update. One of: `add`, `remove`, `update`.
- `type` (`string`, required): Type of the object being added or removed. Valid values: active_directory, application, g_suite, idp_routing_policy, ldap_server, office_365, password_manager_item, policy, policy_group, radius_server, system, system_group. One of: `active_directory`, `application`, `g_suite`, `idp_routing_policy`, `ldap_server`, `office_365`, `password_manager_item`, `policy`, `policy_group`, `radius_server`, `system`, `system_group`.
- `user_id` (`string`, required): ObjectID of the User. Example: 5f3a1b2c4d5e6f7890123456.
- `attributes` (`object`, optional): Custom key and value attributes as a JSON array of objects with name and value. Example: [{"name": "badge", "value": "1234"}].

Example input: `{"id":"<id>","op":"add","type":"active_directory","user_id":"<user_id>"}`

### `jumpcloud_manage_user_group_association`

Manage User Group Association · Write

Add or remove an association between a JumpCloud user group and another object such as an application, system, policy or RADIUS server.
Returns an empty response on success (HTTP 204).
Use manage_user_group_association to grant a group access. Use manage_user_group_member to change who is in the group.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `group_id` (`string`, required): ObjectID of the User Group. Example: 5f3a1b2c4d5e6f7890123456.
- `id` (`string`, required): ObjectID of the object being added or removed. Example: 5f3a1b2c4d5e6f7890123456.
- `op` (`string`, required): How to modify the connection: add, remove or update. One of: `add`, `remove`, `update`.
- `type` (`string`, required): Type of the object being added or removed. Valid values: active_directory, application, g_suite, idp_routing_policy, ldap_server, office_365, password_manager_item, policy, policy_group, radius_server, system, system_group. One of: `active_directory`, `application`, `g_suite`, `idp_routing_policy`, `ldap_server`, `office_365`, `password_manager_item`, `policy`, `policy_group`, `radius_server`, `system`, `system_group`.
- `attributes` (`object`, optional): Custom key and value attributes as a JSON array of objects with name and value. Example: [{"name": "badge", "value": "1234"}].

Example input: `{"group_id":"<group_id>","id":"<id>","op":"add","type":"active_directory"}`

### `jumpcloud_manage_user_group_member`

Manage User Group Member · Write

Add or remove one user in a JumpCloud user group.
Returns an empty response on success (HTTP 204).
Use manage_user_group_member to change group membership. Use manage_user_group_association to bind the group to systems, apps or policies.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `group_id` (`string`, required): ObjectID of the User Group. Example: 5f3a1b2c4d5e6f7890123456.
- `id` (`string`, required): ObjectID of the object being added or removed. Example: 5f3a1b2c4d5e6f7890123456.
- `op` (`string`, required): How to modify the connection: add, remove or update. One of: `add`, `remove`, `update`.
- `type` (`string`, required): Type of the member being added or removed. Valid value: user. One of: `user`.
- `attributes` (`object`, optional): Custom key and value attributes as a JSON array of objects with name and value. Example: [{"name": "badge", "value": "1234"}].

Example input: `{"group_id":"<group_id>","id":"<id>","op":"add","type":"user"}`

### `jumpcloud_reset_user_mfa`

Reset User MFA · Write

Reset the MFA token of a JumpCloud user so they re-enroll, optionally exempting them from MFA for a period.
Returns a confirmation string.
Use reset_user_mfa when a user lost their MFA device. Use get_user_totp_info to check enrollment first.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `exclusion` (`boolean`, optional): Set true to exempt the user from MFA, for example until exclusionUntil, instead of forcing re-enrollment.
- `exclusionDays` (`number`, optional): Number of days the MFA exemption lasts, as an alternative to exclusionUntil. Example: 7.
- `exclusionUntil` (`string`, optional): ISO 8601 timestamp when the MFA exemption ends. Example: 2026-12-31T00:00:00Z.

Example input: `{"id":"<id>"}`

### `jumpcloud_restart_system`

Restart System · Write

Send the built-in restart command to a JumpCloud device.
Returns an empty response on success (HTTP 201).
Use restart_system to reboot a device remotely. The device restarts without prompting the user.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `system_id` (`string`, required): ObjectID of the system. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"system_id":"<system_id>"}`

### `jumpcloud_suspend_user`

Suspend User · Write

Suspend a JumpCloud user so they can no longer sign in.
Returns an empty response on success.
Use suspend_user to disable access while keeping the account. Use activate_user to restore it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_unlock_user`

Unlock User · Write

Unlock a JumpCloud user account that was locked after failed logins.
Returns a confirmation string.
Use unlock_user for locked accounts (account_locked is true).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_update_alert_status`

Update Alert Status · Write

Set the status of a JumpCloud alert (for example acknowledge or resolve) with an optional remark.
Returns the updated alert.
Use update_alert_status to triage an alert. Use add_alert_note to record context without changing status.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ObjectID of the alert. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `status` (`string`, required): New alert status. Valid values: ALERT_STATUS_OPEN, ALERT_STATUS_ACKNOWLEDGED, ALERT_STATUS_RESOLVED. Example: ALERT_STATUS_ACKNOWLEDGED. One of: `ALERT_STATUS_OPEN`, `ALERT_STATUS_ACKNOWLEDGED`, `ALERT_STATUS_RESOLVED`, `ALERT_STATUS_AUTO_RESOLVED`, `ALERT_STATUS_DELETED`.
- `remark` (`string`, optional): Free-text remark stored with the status change. Example: Investigated and resolved.

Example input: `{"id":"<id>","status":"ALERT_STATUS_OPEN"}`

### `jumpcloud_update_command`

Update Command · Write

Replace the definition of a saved JumpCloud command. Name, command and commandType are required.
Returns the updated command.
Use update_command to edit a script or schedule.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `command` (`string`, required): The script or command body to run on devices. Example: echo hello.
- `commandType` (`string`, required): Operating system the command targets. Valid values: linux, mac, windows. Example: linux.
- `id` (`string`, required): ObjectID of the command. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `name` (`string`, required): Name of the command shown in the JumpCloud console. Example: Rotate logs.
- `description` (`string`, optional): Free-text description or notes. Example: Created via Scalekit.
- `launchType` (`string`, optional): How the command is launched. Example: manual (run on demand), repeated (scheduled), trigger (webhook triggered).
- `schedule` (`string`, optional): Cron expression for scheduled commands, with seconds first. Example: 0 0 12 * * *.
- `scheduleRepeatType` (`string`, optional): How often a scheduled command repeats. Example: day.
- `scheduleYear` (`integer`, optional): Year in which a one-off scheduled command runs. Example: 2026.
- `shell` (`string`, optional): Shell used to run the command on Linux and macOS. Example: bash.
- `sudo` (`boolean`, optional): Set true to give the user administrator (sudo) rights on devices they can access. For commands, set true to run the command with elevated privileges.
- `timeout` (`string`, optional): Seconds to let the command run before it is stopped. Example: 120.
- `timeToLiveSeconds` (`integer`, optional): Seconds a queued command waits for an offline device before it expires. Example: 600.
- `trigger` (`string`, optional): Name of the webhook trigger used when launchType is trigger. Example: my-trigger.
- `user` (`string`, optional): ObjectID of the system user the command runs as on the device, or 000000000000000000000000 for root. Example: 000000000000000000000000.

Example input: `{"command":"<command>","commandType":"<commandType>","id":"<id>","name":"<name>"}`

### `jumpcloud_update_system`

Update System · Write

Update display name, SSH and MFA settings or attributes on a JumpCloud device. Only supplied fields change.
Returns the updated system record.
Use update_system to change device settings. Use lock_system or restart_system for device actions.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the system. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `allowMultiFactorAuthentication` (`boolean`, optional): Set true to require multi-factor authentication when signing in to this device.
- `allowPublicKeyAuthentication` (`boolean`, optional): Set true to allow SSH public key authentication on this device.
- `allowSshPasswordAuthentication` (`boolean`, optional): Set true to allow SSH password authentication on this device.
- `allowSshRootLogin` (`boolean`, optional): Set true to allow root login over SSH on this device. Leave false unless required.
- `displayName` (`string`, optional): Display name of the device shown in the JumpCloud console. Example: Jane laptop.

Example input: `{"id":"<id>"}`

### `jumpcloud_update_system_group`

Update System Group · Write

Update a JumpCloud device group. The name is required.
Returns the updated group.
Use update_system_group to rename or reconfigure a group. Use manage_system_group_member to change membership.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the system group. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `name` (`string`, required): Display name of the system group. Example: Engineering.
- `description` (`string`, optional): Description of the group. Example: All engineering staff.
- `email` (`string`, optional): Email address associated with the group. Example: engineering@example.com.
- `memberQuery` (`object`, optional): Dynamic group member query as a JSON object, used when membershipMethod is dynamic. Example: {"queryType": "FilterQuery", "filters": [{"field": "department", "operator": "eq", "value": "Engineering"}]}.
- `membershipMethod` (`string`, optional): How group membership is decided. STATIC means members are added by hand, the DYNAMIC options compute members from memberQuery. Valid values: NOTSET, STATIC, DYNAMIC_REVIEW_REQUIRED, DYNAMIC_AUTOMATED. One of: `NOTSET`, `STATIC`, `DYNAMIC_REVIEW_REQUIRED`, `DYNAMIC_AUTOMATED`.

Example input: `{"id":"<id>","name":"<name>"}`

### `jumpcloud_update_user`

Update User · Write

Update fields on an existing JumpCloud user. Only the fields you supply are changed.
Returns the updated user record.
Use update_user for profile, job or flag changes. Use suspend_user or activate_user to change account state, and unlock_user for locked accounts.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `account_locked` (`boolean`, optional): Set false to unlock the account or true to lock it. Prefer unlock_user for unlocking.
- `allow_public_key` (`boolean`, optional): Set true to allow the user to authenticate with SSH public keys on their devices.
- `alternateEmail` (`string`, optional): Secondary email address for the user, such as a personal address. Example: jane@personal.example.com.
- `company` (`string`, optional): Company the user works for. Example: Example Inc.
- `costCenter` (`string`, optional): Cost center the user is charged to. Example: CC-1001.
- `department` (`string`, optional): Department the user belongs to. Example: Engineering.
- `description` (`string`, optional): Free-text description or notes. Example: Created via Scalekit.
- `displayname` (`string`, optional): Name shown for the user in the JumpCloud console and apps. Example: Jane Doe.
- `email` (`string`, optional): Primary email address of the user. Must be unique in the organization and is used for notifications and sign-in. Example: jane.doe@example.com.
- `employeeIdentifier` (`string`, optional): Employee ID for the user. Must be unique per user in the organization. Example: E-10234.
- `employeeType` (`string`, optional): Employment type of the user. Example: Full time.
- `enable_user_portal_multifactor` (`boolean`, optional): Set true to require multi-factor authentication for the user when signing in to the User Portal.
- `firstname` (`string`, optional): Given name of the user. Example: Jane.
- `jobTitle` (`string`, optional): Job title of the user. Example: Software Engineer.
- `lastname` (`string`, optional): Family name of the user. Example: Doe.
- `location` (`string`, optional): Office or work location of the user. Example: Denver.
- `manager` (`string`, optional): ObjectID of another JumpCloud user who is this user's manager. Example: 5f3a1b2c4d5e6f7890123456.
- `middlename` (`string`, optional): Middle name of the user. Example: Quinn.
- `password` (`string`, optional): Initial or new password for the user. Must satisfy the organization password policy. Omit to let the user set it during activation.
- `password_never_expires` (`boolean`, optional): Set true so the password never expires, or false to follow the password expiration policy.
- `state` (`string`, optional): Lifecycle state of the user. STAGED users are not active until activated, ACTIVATED users can sign in, SUSPENDED users cannot. Example: ACTIVATED. Valid values: ACTIVATED, SUSPENDED. One of: `ACTIVATED`, `SUSPENDED`.
- `sudo` (`boolean`, optional): Set true to give the user administrator (sudo) rights on devices they can access. For commands, set true to run the command with elevated privileges.
- `username` (`string`, optional): Unique login name for the user. Must be unique in the organization. Example: jdoe.

Example input: `{"id":"<id>"}`

### `jumpcloud_update_user_group`

Update User Group · Write

Update a JumpCloud user group. The name is required and replaces the existing group definition fields you send.
Returns the updated group.
Use update_user_group to rename or reconfigure a group. Use manage_user_group_member to change membership.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user group. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `name` (`string`, required): Display name of the user group. Example: Engineering.
- `description` (`string`, optional): Description of the group. Example: All engineering staff.
- `email` (`string`, optional): Email address associated with the group. Example: engineering@example.com.
- `memberQuery` (`object`, optional): Dynamic group member query as a JSON object, used when membershipMethod is dynamic. Example: {"queryType": "FilterQuery", "filters": [{"field": "department", "operator": "eq", "value": "Engineering"}]}.
- `membershipMethod` (`string`, optional): How group membership is decided. STATIC means members are added by hand, the DYNAMIC options compute members from memberQuery. Valid values: NOTSET, STATIC, DYNAMIC_REVIEW_REQUIRED, DYNAMIC_AUTOMATED. One of: `NOTSET`, `STATIC`, `DYNAMIC_REVIEW_REQUIRED`, `DYNAMIC_AUTOMATED`.

Example input: `{"id":"<id>","name":"<name>"}`

### `jumpcloud_delete_command`

Delete Command · Destructive

Delete a saved JumpCloud command.
Returns the deleted command.
Use delete_command to remove a command definition.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the command. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_delete_system`

Delete System · Destructive

Remove a device from JumpCloud. The agent is uninstalled from the device.
Returns the deleted system record.
Use delete_system only to retire a device. This cannot be undone.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the system. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_delete_system_group`

Delete System Group · Destructive

Delete a JumpCloud device group.
Returns the deleted group.
Use delete_system_group to remove a group. Devices in it are not deleted.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the system group. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

### `jumpcloud_delete_user`

Delete User · Destructive

Permanently delete a JumpCloud user.
Returns the deleted user record.
Use delete_user only when the account must be removed. Use suspend_user to disable sign-in without deleting.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.
- `cascade_manager` (`string`, optional): Set to true to also delete or reassign users managed by this user according to the manager cascade rules. Omit for the default behavior.

Example input: `{"id":"<id>"}`

### `jumpcloud_delete_user_group`

Delete User Group · Destructive

Delete a JumpCloud user group.
Returns the deleted group.
Use delete_user_group to remove a group. Users in it are not deleted.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): ObjectID of the user group. Example: 5f3a1b2c4d5e6f7890123456. Example: 5f3a1b2c4d5e6f7890123456.

Example input: `{"id":"<id>"}`

## Related

Other Productivity connectors ([all 144](/agentkit/connectors/?category=productivity)):

- [Slack](/agentkit/connectors/slack/): Scalekit connector, OAuth, 96 tools
- [Microsoft 365](/agentkit/connectors/microsoft365/): Scalekit connector, OAuth, 317 tools
- [Notion](/agentkit/connectors/notion/): Scalekit connector, OAuth, 51 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
