Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.runlayer.com/llms.txt

Use this file to discover all available pages before exploring further.

Deploy Enforce using any MDM that supports script execution.
If your MDM has a dedicated guide (SimpleMDM, Jamf Pro, Mosyle, or Iru/Kandji), use that instead for provider-specific instructions.

Prerequisites

  • Admin access to your MDM solution
  • Enforce deployment script and enrollment key from the Runlayer dashboard
  • Your MDM must support running shell scripts on managed devices

Deployment Steps

1

Get Deployment Artifacts

In the Runlayer dashboard, go to SettingsShadow MCPs. Under the Enforce section, click Configure and select your MDM platform. This opens a setup dialog that auto-generates an enrollment key and renders the deployment script.
The enrollment key is embedded in the generated script and will not be shown again after you close the dialog. Copy or download the script before closing.
2

Deploy the Script

Use your MDM’s script or command execution feature to deploy the generated script:
  1. Create a new script/command in your MDM console
  2. Paste the generated script contents
  3. Configure the execution frequency
  4. Assign to target devices
  5. 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

1

Check Policy Status

Verify script execution status in your MDM console.
2

Verify in Runlayer

Navigate to SettingsShadow MCPs and confirm your Enforce configuration card is active. View intercepted tool calls on the Shadow page.
3

Test Interception

Have a user trigger a shadow MCP tool call and verify it appears in Audit Logs.

Log Locations

PlatformLog Location
macOS/var/log/runlayer/ai_watch_enforce.log
macOS (fallback)/tmp/runlayer-ai_watch_enforce.log
The fallback log location is used when the primary path (/var/log/runlayer/) cannot be written to due to permissions.

Exit Codes

CodeMeaning
0Success
1General failure (no user logged in, missing config, enrollment failed)
2Network failure (cannot reach PyPI)
3Installation failure (uv or CLI install failed, hooks install failed)