The Shadow AI Problem
When employees install AI clients, configure MCP servers, or add AI skills directly — Cursor, Claude Code, Claude Desktop, VS Code, Codex, and others — these tools and integrations run outside centralized observability and control. The result is a shadow IT problem for AI tooling: ungoverned access to your code, data, and systems, with no audit trail. Runlayer addresses shadow AI through the AI Watch agent: one signed package, three features. Deploy the package once through your MDM, then use configuration to decide which optional features run.Deploy AI Watch
Install one package, then configure Detect, Enforce, and Sessions
Detect
Always on — discover AI clients, shadow MCP servers, skills, and plugins via scheduled scans
Enforce
Enforcement flag — block unmanaged MCP sources and policy-check local tool activitySessions
Sessions flag — collect lifecycle telemetry for prompts, tool calls, and responsesUser and Identity Mapping
Map device usernames to Runlayer users for discoveries, sessions, and audit
Security Risks
Shadow MCP Servers
Shadow MCP servers pose significant security risks:- Data exfiltration — Risky MCP servers can steal source code, credentials, API keys, and customer data
- Supply chain attacks — Compromised or trojanized MCP packages can inject risky behavior into otherwise legitimate tools
- Prompt injection — Shadow MCPs may contain tool poisoning attacks that manipulate AI behavior
- Lateral movement — MCPs with broad permissions can be exploited to access internal systems
- Compliance violations — Uncontrolled access to PII, PHI, or regulated data without audit trails
Shadow Skills
Skills are instruction files that extend AI coding assistants with specialized knowledge, workflows, and tool integrations — such as SKILL.md files. When these are installed outside organizational control, they become shadow skills. Shadow skills introduce distinct risks:- Prompt injection — Skill instructions can manipulate AI behavior, override safety guidelines, or inject malicious prompts
- Unauthorized automation — Skills can define workflows that automate actions beyond what an organization has approved
- Supply chain risk — Unvetted community skills may contain instructions that exfiltrate data or introduce vulnerabilities
Shadow AI Clients
AI clients are inventory artifacts in their own right. Detect reports supported clients such as Cursor and Claude Code even when they have no MCP servers, skills, or plugins configured, giving security teams visibility into unapproved AI software across their device fleet. New client discoveries start as Shadow. Administrators can mark approved clients as Managed from the Shadow Overview. Client presence has a Low baseline risk because presence alone does not expose the behavior of an integration; use the detected version, device, user, and installation evidence when reviewing it.Why This Matters for Security Teams
Unlike traditional shadow IT, shadow AI is particularly dangerous because:- AI amplifies access — A single MCP or skill can give AI assistants broad access to databases, APIs, and file systems
- Actions are automated — MCPs enable AI to take actions autonomously, not just read data
- No audit trail — Shadow MCPs and skills operate outside your logging and monitoring infrastructure
- Difficult to detect — MCP configurations and skill files are stored in user-space config files, not installed as traditional software
One Package, Three Features
Detect is always enabled after AI Watch is installed. Enforce and Sessions are controlled by package configuration, and one organization API key authenticates scanning, enforcement, and sessions; no enrollment keys are required.- Enforce is disabled by default. Set
Enforcement=true(macOS) orAIWATCH_ENFORCEMENT=1(Windows) to block unmanaged MCP sources and policy-check local tool activity. - Sessions is enabled by default. Set
Sessions=false(macOS) orAIWATCH_SESSIONS=0(Windows) to skip the full event/session hook set.
Sessions=false or AIWATCH_SESSIONS=0; omitting Sessions uses the default enabled state and installs hooks for monitoring-only telemetry.
Advanced scan tuning (optional). Detect scans walk each user’s home directory to a bounded depth within a per-scan time budget, and a cooperative in-process governor keeps CPU and memory use within soft caps. The defaults fit most fleets — override them only if scans miss deeply-nested project configs (raise depth), run out of time on very large home directories (raise timeout), or you want to constrain the scan’s footprint on constrained hosts (lower the CPU / memory caps).
All are integers — macOS
<integer> in the tenant-config profile, Windows REG_DWORD via the matching MSI AIWATCH_* property. Omit the keys to keep the defaults. Values outside the range are clamped into it; non-integer or non-positive values are ignored and the default applies. The CPU / memory caps are best-effort: the governor throttles the scan to hold the CPU duty cycle (max(0.05, min(cpu_cores, MaxCpuPercent% × logical_cores)) cores) and aborts the scan if its Python-heap high-water mark exceeds the memory ceiling.
Start with Deploy AI Watch to install the package and choose Enforce / Sessions configuration. Detect scans run by default after deployment.
The Shadow Dashboard
The Shadow page in the sidebar brings every discovery into one view:- Overview — per-device Client, MCP, Skill, and Plugin rows with type filters, a managed vs. shadow breakdown, and a Shadow vs Managed trend over time
- Connectors — most common shadow servers, users running them, top servers to migrate, and which MCP clients are in use
- Skills — shadow skill discoveries over time, most common skills, users with shadow skills, and a per-client breakdown
- Devices — AI Watch device fleet status: Detect, Enforce, and Sessions health, OS versions, and tool versions across enrolled devices
The Devices tab
Open the Shadow page and select the Devices tab to answer per-device fleet questions during and after rollout:- Which devices are enforcing vs. monitoring-only — each row shows a status badge for Detect, Enforce, and Sessions (
Active,Inactive,Disabled,Error,Drifted, orDevice Unresponsive). A monitoring-only device shows Enforce asDisabledwhile Detect (and optionally Sessions) reportActive. Hover anErrororDriftedbadge to see the underlying error message and when it occurred. - Which Runlayer version each device runs — the Tool version column shows the installed AI Watch agent version per device, alongside OS, OS version, and a Last seen check-in timestamp. Use this to track upgrade progress across the fleet.
- Filtering — narrow the table by Detect, Enforce, or Sessions status, device, user, OS, or OS version; columns are sortable.
Related Resources
Re-analyzing Classifications
Refresh server and skill classifications after changes
Responding to Discoveries
Security team response framework
Troubleshooting
Common issues and solutions
FAQ
Pre-deployment, security-review, and operational questions
Remove AI Watch
Remove package-based and legacy script-based deployments