apple-intune-baseline
Generates Microsoft Intune configuration and compliance policies for iOS/iPadOS baselines, including built-in compliance settings for iOS/iPadOS 26 and 27.
Generates Microsoft Intune Settings Catalog policies, compliance checks, remediation scripts, and inventory custom attributes for macOS baselines such as CIS, NIST, STIG, and CMMC on macOS 26 and 27.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
apple-intune-baseline
An MCP server that turns mSCP (the macOS Security Compliance Project) baselines into Microsoft Intune configuration, for macOS and iOS/iPadOS. Ask your AI assistant for "CIS Level 1 for macOS 27" and get the Intune policies, compliance checks, remediation scripts and inventory for it, reviewed as local files before anything reaches your tenant.
It stays close to mSCP: rules, baselines, sections and organization-defined values come from mSCP's own Python code, pinned to an mSCP release. The server runs locally on your Mac and needs no other MCP server.
What you get
A baseline has four parts, each generated as local files and pushed separately:
Part | What it is |
Profiles | One Settings Catalog policy per mSCP section (DDM included) and, only where the catalog can't express a rule, a custom profile |
Compliance | One compliance policy per section, checking every rule with mSCP's own checks (macOS); built-in compliance settings on iOS/iPadOS |
Remediation (macOS) | Shell scripts for the rules no policy can enforce: mSCP's check, mSCP's fix only when it fails, then the check again |
Inventory (macOS) | Custom attributes reporting each rule's raw value per Mac, for a CMDB or reporting |
Before generating, it checks what your tenant already configures and verifies, so nothing is duplicated. Afterwards it reads per-device results back into an interactive dashboard, PDF and CSV.
Baselines: everything mSCP ships, e.g. CIS Level 1 and 2, NIST 800-53 (low, moderate, high), NIST 800-171, CMMC, DISA STIG, for macOS 27.0 and 26.0 and iOS/iPadOS 27.0 and 26.0. You can tailor a copy: exclude rules with a reason, add rules, change organization-defined values.
Related MCP server: IntuneRW-Core
Safety
Generating only writes local files. Review them before you push.
Pushing shows a plan first (create, skip because the name exists, replace) and creates only after you confirm.
Everything is created unassigned. Nothing reaches a device until you assign it in Intune, ideally to a pilot group first.
Nothing is ever deleted. Existing policies are only overwritten when you name them in
replace.Read-only by default. The app registration it creates for you can only read your tenant unless you choose the
fullpermission set.Settings that change how people sign in (password policy, login window) and payloads that need configuration before pushing are flagged as heads-ups. Test on a device you can recover.
Install
Requires macOS (sign-in tokens live in the Keychain) and uv (brew install uv). uv fetches Python 3.12+, this server and the pinned mSCP release; the first start takes about a minute while mSCP is built, later starts come from uv's cache.
Claude Code:
claude mcp add apple-intune-baseline -- uvx --from git+https://github.com/SSMacAdmin/apple-intune-baseline@v0.1.0 apple-intune-baselineClaude Desktop: add to ~/Library/Application Support/Claude/claude_desktop_config.json, using the full path from which uvx (Claude Desktop doesn't see your shell's PATH), then restart Claude Desktop:
{
"mcpServers": {
"apple-intune-baseline": {
"command": "/opt/homebrew/bin/uvx",
"args": ["--from", "git+https://github.com/SSMacAdmin/apple-intune-baseline@v0.1.0", "apple-intune-baseline"]
}
}
}Other MCP clients: run the same uvx command as a stdio server.
Updating: change @v0.1.0 to the new release tag and restart the client. Your workspace (~/.apple-intune-baseline: tenants, prefixes, generated files, reports) stays where it is.
Quick start
Ask your assistant, in your own words:
"Which mSCP baselines are there for macOS 27?" and "Give me an overview of CIS Level 1": what each baseline delivers, and the rules users will notice.
"Connect to my Intune tenant": creates a read-only app registration once (you approve in the browser), then signs in.
"What does my tenant already cover of CIS Level 1?"
"Generate CIS Level 1 for macOS 27": profiles first, then it offers compliance, remediation and inventory.
"Push the policies": shows the plan, creates them unassigned after you say yes. Pushing needs the
fullpermission set.After assigning to a pilot group: "How are my Macs doing on CIS Level 1?"
Tools
Every baseline tool takes platform: macos (default) or ios (iPhone and iPad), and os_version (default: the newest).
Explore
Tool | What it does |
| Pinned mSCP release, workspace location, sign-in state |
| CIS, NIST 800-53, STIG, CMMC… per platform, plus tailored ones |
| Filter by baseline, section, delivery, verification, impact tag or text |
| What a rule checks, how it's enforced, its value, user impact, references |
| Per baseline: counts per delivery and verification bucket, impact lists, per section. |
| List the saved name prefixes (per tenant, platform and baseline), or save/remove one |
Tenants and sign-in
Tool | What it does |
| One-time per tenant: creates this server's own app registration |
| Alternative: register an existing app registration's IDs and its |
| Switch the active tenant, see who is signed in |
| Browser sign-in, non-blocking (returns |
| Read-only: counts the tenant's macOS and iOS Settings Catalog policies |
| Read-only: which baseline rules the tenant already enforces (configuration policies) and verifies (compliance policies), where, with what value, and whether those policies are assigned |
Tailor, generate and push
Tool | What it does |
| Create or change a tailored copy of an mSCP baseline: exclude rules (with a reason), add rules, change organization-defined values. Saved in mSCP's format in the workspace |
| Writes the Intune policies for a baseline as local files for review: per mSCP section one Settings Catalog policy (DDM included) and, only where needed, one custom profile. Skips what the tenant already has. Sends nothing to Intune |
| Creates the generated policies in Intune, unassigned. First call shows the plan (create / skip because the name exists / replace); a second call with |
| Selective compliance as local files: per mSCP section one compliance policy with a discovery script (mSCP's own checks, read-only) and rules JSON. On macOS every check is in the script by default; |
| Uploads each discovery script, then creates the compliance policy that uses it, unassigned. Plan first, |
| macOS shell scripts as local files, one per mSCP section, for the rules no policy can enforce: mSCP's check, then mSCP's fix only when the check fails, then the check again |
| Creates the shell scripts in Intune, unassigned. Plan first, |
| macOS custom attributes as local files, one per mSCP section: the raw value of every rule's mSCP check as one flat |
| Creates the custom attributes in Intune, unassigned. Plan first, |
Results
Tool | What it does |
| Read-only: per Mac, each of this baseline's compliance policies (state, last report, failing checks as mSCP rules) and the last remediation runs, with stale results flagged. |
| Read-only: per Mac, what the custom attributes reported compared with mSCP (matches, differs, no value), listing what differs and what's empty. |
Resources: mscp://baseline/{platform}/{name} and mscp://rule/{platform}/{rule_id}. Prompt: review_baseline.
How each part behaves in detail (naming, device requirements, supervised and unsupervised sets, prefixes, the scripts, the workspace layout): docs/reference.md.
Permissions
setup_app_registration signs in once with Microsoft Graph PowerShell's public client (as Connect-MgGraph does), then creates a single-tenant public client app (http://localhost redirect, no secret) with delegated permissions, its Enterprise App, optional assignment to only you, and admin consent. The setup tokens are kept in memory only and dropped afterwards. Re-running updates the app with the same name.
Permission set | Delegated Graph permissions |
|
|
|
|
tenants.json in the workspace holds only the tenant ID, client ID, default domain and permission set. No secrets are stored.
Known limitations
A tenant is needed to generate. Settings Catalog policies are built from Microsoft's setting definitions, which are read through a tenant. A read-only connection to any tenant (e.g. a Microsoft 365 developer tenant) is enough; pass
skip_configured=falseso nothing is compared with it.Confirming a push isn't tied to the plan you saw. The agent is told to show the plan and wait for your yes, and MCP clients ask before running these tools, but a call with
confirm=trueruns whatever the current plan is.Not checked for coverage yet: device configuration templates (Device restrictions, Endpoint protection).
Runs on macOS only.
License
MIT, see LICENSE. mSCP is a project of NIST and its contributors and is installed from its own repository under its own terms. This project isn't affiliated with or endorsed by NIST, Apple or Microsoft.
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP for Copilot CLI switch gate MCP, structured receipts, audit logs, and reviewer-ready evid
One OAuth connector for your team's remote MCP servers, with Tool Packs, guardrails and logs.
Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi
mtdt.io MCP: Salesforce DevOps platform connector (metadata deployments, backups and more)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables bounded agent authority over a macOS workstation via 63 MCP tools with policy, approval, and audit.12 npmApache 2.0
- AlicenseBqualityCmaintenanceMCP server for managing Microsoft Intune and Entra ID via the Microsoft Graph API, offering 34 tools for device, app, compliance, security, identity, and reporting operations.341MIT
- AlicenseBqualityCmaintenanceA read-only MCP server for Microsoft Intune and Entra ID that enables list, get, search, and reporting operations for tenant visibility, audits, troubleshooting, and health reporting without write actions. It includes authentication helpers, report exports, and metadata discovery tools.361MIT
- AlicenseNot gradedqualityBmaintenanceEnables security scanning of source code and Apple configuration files, providing evidence-based findings, explanations, remediation plans, threat modeling, and knowledge base access through MCP tools.MIT