If your MDM has a dedicated guide (SimpleMDM, Jamf Pro, Intune, or Mosyle), use that instead for provider-specific instructions.
Prerequisites
- Admin access to your MDM solution
- Organization API key from Runlayer with MCP Watch Scan role (see below)
- Devices enrolled via User-Approved MDM or Automated Device Enrollment (for Full Disk Access)
- Your MDM must support:
- Deploying custom
.mobileconfigconfiguration profiles - Running shell scripts on managed devices
- Deploying custom
Creating an Organization API Key
Creating an Organization API Key
Organization API keys authenticate MDM-deployed scripts without per-device enrollment.
Configure the Key
- Name (required): Enter a descriptive name (e.g., “MDM MCP Watch”)
- Role: Select MCP Watch Scan
Deployment Steps
Deploy PPPC Profile
MCP Watch needs to read MCP config files in TCC-protected directories (Desktop, Documents, Application Support). Without a PPPC profile, macOS shows a permission dialog on every scan.
The profile targets a dedicated
runlayer-scan wrapper binary so that Full Disk Access is scoped to the scan process only — not to general-purpose tools like uvx.- Upload the downloaded file as a custom configuration profile
- Assign it to all devices that will run MCP Watch
- Push the profile to devices
Generate the Script
Fill in your organization’s settings below to generate a customized deployment script.Configuration tips:
DEVICE_NAME: Use your MDM’s variable for the device name or serial number. Common variables include$DEVICE_NAME,%DeviceName%,$SERIAL_NUMBER, etc.
Deploy the Script
Use your MDM’s script or command execution feature to deploy the generated script:
- Create a new script/command in your MDM console
- Paste the generated script contents
- Configure a recurring execution schedule (at least daily recommended)
- Assign to the same devices that received the PPPC profile
- Save and deploy
MDM scripts typically run as root. The generated script handles this by detecting and running operations as the logged-in user where needed.
Verification
After deployment, verify on target devices and in the Runlayer dashboard:Log Locations
| Platform | Log Location |
|---|---|
| macOS | /var/log/mcp-watch.log |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General failure (missing config) |
| 2 | Network failure |
| 3 | Installation failure |