Hexnode MCP by usefulapi
Read devices, users and policies; scan, lock, restart devices and install apps in Hexnode.
Should I use this
Quality & Safety
Findings (1)
- LOWin hexnode_scan_device
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"hexnode": {
"url": "https://hexnode.usefulapi.io/mcp"
}
}
}Remote endpoints
https://hexnode.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (19)
🟢hexnode_list_devices(order_by, platform, is_active, device_type, page, ...)
List enrolled devices with OS, model, enrollment status, last-reported time and compliance. Start here to find device ids. Hexnode API: GET /api/v1/devices/.
Input Schema
{
"type": "object",
"properties": {
"order_by": {
"description": "Sort by device name.",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"platform": {
"description": "Only this OS.",
"type": "string",
"enum": [
"ios",
"android",
"windows"
]
},
"is_active": {
"description": "true = active devices only, false = inactive only.",
"type": "boolean"
},
"device_type": {
"description": "Only this device type.",
"type": "string",
"enum": [
"smartphone",
"tablet"
]
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_get_device(device_id)
Get full details of one device: hardware, OS, network, owner, installed apps, applied policies and device groups. Hexnode API: GET /api/v1/devices/{id}/.
Input Schema
{
"type": "object",
"properties": {
"device_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"required": [
"device_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_device_policies(device_id, page, per_page)
List the policies applied to one device, with their versions. Hexnode API: GET /api/v1/devices/{id}/policies/.
Input Schema
{
"type": "object",
"properties": {
"device_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"required": [
"device_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_device_apps(device_id, page, per_page)
List the apps installed on one device, with version, status and managed flag. Hexnode API: GET /api/v1/devices/{id}/applications/.
Input Schema
{
"type": "object",
"properties": {
"device_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"required": [
"device_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_device_locations(device_id, page, per_page)
List the locations a device reported over time (newest first as the portal returns them). Only with location tracking enabled. Hexnode API: GET /api/v1/devices/{id}/locations/.
Input Schema
{
"type": "object",
"properties": {
"device_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"required": [
"device_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_get_action_status(device_id, page, per_page)
Show the status of actions sent to one device (for example a lock, a restart or an app install), to confirm that it ran. Hexnode API: GET /api/v1/devices/{id}/action_status/.
Input Schema
{
"type": "object",
"properties": {
"device_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"required": [
"device_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_users(order_by, user_type, enrollment_status, page, per_page)
List users of the portal with their enrollment state and devices. Hexnode API: GET /api/v1/users/.
Input Schema
{
"type": "object",
"properties": {
"order_by": {
"description": "Sort by username.",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"user_type": {
"description": "Filter by user type: local or active directory (as the portal names it).",
"type": "string"
},
"enrollment_status": {
"description": "Filter by enrollment state.",
"type": "string",
"enum": [
"enrolled",
"unenrolled"
]
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_get_user(user_id)
Get one user's details, including contact fields and the user's groups. Hexnode API: GET /api/v1/users/{id}/.
Input Schema
{
"type": "object",
"properties": {
"user_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_device_groups(page, per_page)
List all device groups. Hexnode API: GET /api/v1/devicegroups/.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_get_device_group(group_id)
Get one device group with its member devices. Hexnode API: GET /api/v1/devicegroups/{id}/.
Input Schema
{
"type": "object",
"properties": {
"group_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"required": [
"group_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_policies(page, per_page)
List all policies of the portal (name, version, platforms). Hexnode API: GET /api/v1/policy/.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_get_policy(policy_id)
Get the full details of one policy, including its settings. Hexnode API: GET /api/v1/policy/{id}/.
Input Schema
{
"type": "object",
"properties": {
"policy_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"required": [
"policy_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_apps(order_by, app_type, platform, page, per_page)
List apps in the portal's app library (store, web or enterprise apps), filterable by platform. Hexnode API: GET /api/v1/applications/.
Input Schema
{
"type": "object",
"properties": {
"order_by": {
"description": "Sort by app name.",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"app_type": {
"description": "Only this app type.",
"type": "string",
"enum": [
"store",
"web",
"enterprise"
]
},
"platform": {
"description": "Only this platform.",
"type": "string",
"enum": [
"ios",
"android"
]
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_get_app(app_id)
Get the details of one app in the portal's library, including its identifier and version. Hexnode API: GET /api/v1/applications/{id}/.
Input Schema
{
"type": "object",
"properties": {
"app_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"required": [
"app_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hexnode_list_app_groups(order_by, page, per_page)
List app groups (bundles of apps that are deployed together). Hexnode API: GET /api/v1/appgroups/.
Input Schema
{
"type": "object",
"properties": {
"order_by": {
"description": "Sort by app group name.",
"type": "string",
"enum": [
"asc",
"desc"
]
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page (maximum 250).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 250
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡hexnode_scan_device(device_ids, device_group_ids)
Ask devices to report their inventory now (a scan). Safe to repeat. Hexnode API: POST /api/v1/actions/scan_device/.
Input Schema
{
"type": "object",
"properties": {
"device_ids": {
"description": "Device ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"device_group_ids": {
"description": "Device group ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡hexnode_install_application(app_ids, device_ids, device_group_ids)
Install one or more apps from the portal's library on devices or device groups. Use hexnode_list_apps to find app ids. Hexnode API: POST /api/v1/actions/install_applications/.
Input Schema
{
"type": "object",
"properties": {
"app_ids": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
},
"description": "App ids to install (from hexnode_list_apps)."
},
"device_ids": {
"description": "Device ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"device_group_ids": {
"description": "Device group ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
}
},
"required": [
"app_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hexnode_restart_device(device_ids, device_group_ids, confirm)
Restart devices now. This interrupts the user's work and unsaved data can be lost. Set confirm to true to run it. Hexnode API: POST /api/v1/actions/reboot/.
Input Schema
{
"type": "object",
"properties": {
"device_ids": {
"description": "Device ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"device_group_ids": {
"description": "Device group ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true. Restarting is not reversible."
}
},
"required": [
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hexnode_lock_device(device_ids, device_group_ids, message, system_lock_pin, confirm)
Lock devices now, with an optional message on the screen. iOS and Android users unlock with their device passcode. Intel Macs need a 6-digit system_lock_pin to unlock. Set confirm to true to run it. Hexnode API: POST /api/v1/actions/lock_devices/.
Input Schema
{
"type": "object",
"properties": {
"device_ids": {
"description": "Device ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"device_group_ids": {
"description": "Device group ids to act on (numeric Hexnode ids, up to 250).",
"maxItems": 250,
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"pattern": "^\\d{1,18}$"
}
],
"description": "A numeric Hexnode id."
}
},
"message": {
"description": "Message shown on the locked screen.",
"type": "string",
"maxLength": 200
},
"system_lock_pin": {
"description": "6-digit unlock PIN. Required for macOS devices without Apple Silicon.",
"type": "string",
"pattern": "^\\d{6}$"
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true. The user cannot use the device until it is unlocked."
}
},
"required": [
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence