Skip to main content
Glama
miradore-mcp
by ajthom90

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MIRADORE_SITEYesYour Miradore site name: the site portion of https://your-site.manage.miradore.com
MIRADORE_API_KEYYesA Miradore API key created from System > Infrastructure diagram > API
MIRADORE_READ_ONLYNoSet to true to expose only read-only tools. Defaults to false.false
MIRADORE_ALLOW_DESTRUCTIVENoSet to true to add destructive tools such as lock, reboot, Lost Mode, wipe, retire, and delete-user. Defaults to false.false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_devicesA

List managed devices in Miradore with optional filters. Returns a compact summary per device (id, name, model, serial, platform, OS version, online status, last check-in, user, tags, enrollment type). Retired devices are excluded unless include_retired or status is given. Use get_device for full details on one device.

get_deviceA

Get one device by its Miradore device ID, with optional detail sections: apps (installed apps), installed_profiles (profiles on an Apple device), deployed_config_profiles (profiles Miradore deployed and their status), security, storage, os_updates (pending Apple updates), hardware, management (client/enrollment info), custom_attributes.

device_health_summaryA

Summarise the whole fleet in one call: device counts by platform, online status and lifecycle status; OS versions in use; and lists of devices needing attention (not checked in for stale_days or more, no assigned user, passcode not set, encryption not enabled). Good for a daily check-in or 'is anything wrong?'.

query_miradoreA

Advanced read-only query against Miradore API v1 for anything the other tools don't cover (e.g. Category, Organization, Location, InvCertificate, ConfigProfileDeployment). 'select' lists attributes using dotted paths (e.g. 'InvDevice.Model', 'User.Email'); 'filters' uses operators eq, ne, gt, ge, lt, le, contains, notcontains, startswith, endswith, isempty, notisempty joined with and/or, quoting values with spaces. 'orderby' fields must also be selected. See the Miradore API v1 specification for attribute names.

list_usersA

List Miradore users (people devices can be assigned to), optionally filtered by email or name.

get_user_device_identifiersA

List device identifiers (serial numbers, IMEIs, etc.) pre-assigned to a user, so devices are linked to them automatically when they enroll.

list_tagsA

List all tags defined in Miradore. Tags group devices and can drive business policies.

list_config_profilesA

List configuration profiles defined in Miradore (Wi-Fi, restrictions, email, etc.) with their IDs, for use with deploy_config_profile.

list_enrollmentsB

List recent device enrollments, newest first. Use type 'DEP' for Apple Automated Device Enrollment. Helpful for confirming that a newly set-up device enrolled.

get_device_locationsB

Get reported locations for a device (only if location tracking is enabled for it). Dates are optional.

list_custom_attributesA

List custom attributes configured in Miradore (IDs and names), for use with set_device_custom_attribute.

get_applicationA

Get an application from the Miradore application catalog by its ID, including its deployment methods (needed for deploy_application). App IDs are visible in the Miradore console URL on the application's page.

list_suspended_devicesB

List devices that are suspended in Miradore.

sync_apple_dep_devicesA

Ask Miradore to pull the latest device list from Apple Business/School Manager (Automated Device Enrollment / DEP) now instead of waiting for the scheduled sync. Rate limited by Miradore to once per minute. Note: assigning an enrollment profile to the synced devices must still be done in the Miradore console.

assign_device_identifiers_to_userA

Pre-assign one or more device identifiers (serial numbers, IMEIs, etc.) to a user, so when those devices enroll they are linked to the user automatically. Use this before powering on a new device.

remove_device_identifier_from_userB

Remove a pre-assigned device identifier (e.g. serial number) from a user.

add_device_tagA

Add a tag to a device. Tags group devices and can trigger business policies that install apps and profiles.

remove_device_tagC

Remove a tag from a device.

deploy_config_profileB

Deploy a configuration profile (from list_config_profiles) to a device.

remove_config_profileA

Remove a configuration profile that Miradore deployed from a device.

deploy_applicationA

Deploy an application to a device using one of the app's deployment methods. Look the app up with get_application to find its deployment method ID.

update_deviceA

Update a device's assigned user, friendly name, ownership or category. Only the fields you give are changed. Use add_device_tag / remove_device_tag for tags.

set_device_custom_attributeA

Set a custom attribute value on a device. Find attribute IDs with list_custom_attributes.

create_userC

Create a Miradore user that devices can be assigned to.

update_userA

Update an existing Miradore user's name or phone number (looked up by email; email itself can't be changed).

add_user_tagsC

Assign one or more tags to a user.

remove_user_tagC

Remove a tag from a user.

activate_deviceB

Reactivate a device that was previously retired in Miradore.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 28 tools

Disambiguation4/5

Most tools target a distinct resource+action (devices, users, tags, config profiles, apps, enrollments, DEP), and descriptions explicitly cross-reference each other (e.g. list_custom_attributes -> set_device_custom_attribute). A few boundaries blur: list_suspended_devices is largely a filtered list_devices, device_health_summary overlaps with list_devices filters, get_device_locations duplicates a get_device detail area, and query_miradore is a catch-all that could tempt an agent away from the specific read tools. These are minor and the descriptions steer correctly.

Naming Consistency4/5

The dominant pattern is consistent snake_case verb_noun (list_devices, get_device, add_device_tag, deploy_application, update_user), which is easy to predict. Deviations are minor but present: device_health_summary is noun-first with no verb, query_miradore uses a domain suffix rather than a resource noun, and tag verbs are inconsistently pluralized (add_user_tags vs remove_user_tag).

Tool Count3/5

At 28 tools the surface sits above the comfortable band, though the domain is genuinely broad (devices, users, tags, config profiles, applications, enrollments, DEP sync) and no two tools are redundant. The count is defensible but heavy: several list_* reads could be consolidated as filters on a single listing tool.

Completeness3/5

Core MDM workflows are covered, but the lifecycle is asymmetric: activate_device exists to un-retire devices while no retire_device is offered, deploy_application and deploy_config_profile have removal counterparts only for profiles (no app removal), tags can be listed and attached but never created or deleted, and there is no list_applications (get_application requires an ID from the console URL). Users can be created and updated but not deleted or deleted-from-device.

Maintenance

ActivityMaintained
ResponsivenessNo issues