> This page is for Agent Handler.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Jamf Pro

**Authentication:** client credentials or username and password. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow.

## Sample use cases

* Find every computer in the `Engineering` department that has not checked in for 14 days
* List the policies scoped to the `Finance Laptops` computer group
* Pull the full inventory for a device by serial number `C02XK1ZJJGH5`

## Available Tools

#### list_advanced_computer_searches

List saved advanced computer searches as id and name. Use get_advanced_computer_search for a search's criteria and...

#### get_advanced_computer_search

Get one advanced computer search by ID: its criteria, display fields, and the computers it matches. Use...

#### list_buildings

List buildings with paging (page/page_size), server-side sort, and an RSQL filter.

#### get_building

Get one building by ID. Use list_buildings to find building IDs.

#### create_building

Create a building. Requires a name; optionally set address fields. Returns the new building including its ID.

#### update_building

Update a building by ID. Only the fields you pass change; pass "" to clear an address field. Use list_buildings to...

#### delete_building

Delete a building by ID permanently. Use list_buildings to find building IDs.

#### list_categories

List categories with paging (page/page_size), server-side sort, and an RSQL filter. Categories organize scripts and...

#### get_category

Get one category by ID. Use list_categories to find category IDs.

#### create_category

Create a category. Requires a name; optionally set a Self Service priority. Returns the new category including its ID.

#### update_category

Update a category by ID. Only the fields you pass are changed. Use list_categories to find category IDs.

#### delete_category

Delete a category by ID permanently. Jamf allows it while scripts still use the category, and they keep pointing at...

#### list_computer_groups

List computer groups (both smart and static; the is_smart flag distinguishes them). Use get_computer_group for one...

#### get_computer_group

Get one computer group by ID: is_smart, site, a smart group's criteria, and the member computers (id, name, serial...

#### list_computers

List computer inventory with paging (page/page_size), server-side sort, and an RSQL filter, e.g...

#### get_computer_inventory

Get inventory detail for one computer by ID. Defaults to GENERAL, HARDWARE (serial number), OPERATING_SYSTEM, and...

#### list_departments

List departments with paging (page/page_size), server-side sort, and an RSQL filter.

#### get_department

Get one department by ID. Use list_departments to find department IDs.

#### create_department

Create a department. Requires a name. Returns the new department including its ID.

#### update_department

Update a department by ID. Only the fields you pass are changed. Use list_departments to find department IDs.

#### delete_department

Delete a department by ID permanently. Use list_departments to find department IDs.

#### list_computer_extension_attributes

List computer extension attributes (custom inventory fields) as id, name, and enabled. Use...

#### get_computer_extension_attribute

Get one computer extension attribute by ID, including its data type and description. Use...

#### list_mobile_device_groups

List mobile device groups (both smart and static; the is_smart flag distinguishes them). Use get_mobile_device_group...

#### get_mobile_device_group

Get one mobile device group by ID: is_smart, site, a smart group's criteria, and the member mobile devices. Use...

#### list_mobile_devices

List managed mobile devices (iOS/tvOS) with serial numbers and model details. Supports paging (page/page_size) and...

#### get_mobile_device

Get one mobile device's inventory detail by ID. osVersion and managed are top-level; model, supervised, and storage...

#### list_policies

Use get_policy for a policy's full detail and update_policy to change a policy.

#### get_policy

Get one policy by ID. Core fields (name, enabled, frequency) are under 'general'. Which triggers are on is in the...

#### update_policy

Update a policy by ID: name, enabled, frequency, the trigger flags (check-in, enrollment complete, login, network...

#### list_scripts

List scripts with paging (page/page_size), server-side sort, and an RSQL filter. Items omit the script body; use...

#### get_script

Get one script by ID, including its contents. Use list_scripts to find script IDs.

#### create_script

Create a script. Requires a name; optionally set priority, contents, and a category. Take categoryId from...

#### update_script

Update a script by ID. Only the fields you pass change; "" clears a text field. To move it, pass categoryId from...

#### delete_script

Delete a script by ID permanently. Use list_scripts to find script IDs.

#### list_sites

List all sites in the Jamf Pro instance. Sites partition resources across organizational units. Returns the full...

#### list_users

List Jamf users as id and name only. Use get_user for a user's full name, email, phone, and position. Returns the...

#### get_user

Get one user by ID, including full name, email, phone, and position. Use list_users to find user IDs.