cipp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | error, warn, info (default), or debug | |
| CIPP_API_KEY | No | Static Bearer token (use this OR the OAuth trio) | |
| CIPP_BASE_URL | No | Your CIPP deployment URL (e.g. https://cipp.yourdomain.com) | |
| MCP_HTTP_PORT | No | Port for HTTP mode (default: 8080) | |
| MCP_TRANSPORT | No | stdio (default) or http | |
| CIPP_CLIENT_ID | No | OAuth client ID issued by CIPP's API Client Management page | |
| CIPP_TENANT_ID | No | Entra tenant ID that owns the CIPP API-client app registration | |
| CIPP_TOKEN_URL | No | Override OAuth token endpoint (sovereign clouds only) | |
| CIPP_TOKEN_SCOPE | No | Override OAuth scope (default: <clientId>/.default) | |
| CIPP_CLIENT_SECRET | No | OAuth client secret paired with CIPP_CLIENT_ID |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cipp_list_tenantsB | List all tenants managed in CIPP |
| cipp_get_tenant_detailsC | Get detailed information about a specific tenant |
| cipp_list_usersC | List users in a tenant |
| cipp_create_userA | ⚠ HIGH-IMPACT. Creates a new user account in the tenant, which grants directory presence and may include initial credentials and license/role eligibility. Reversible by deleting or disabling the user. Confirm with the user before invoking. |
| cipp_edit_userA | ⚠ HIGH-IMPACT. Edits an existing user's properties, which can include directory attributes, usage location, and may grant or revoke roles or license eligibility. Reversible by editing again. Confirm with the user before invoking. |
| cipp_disable_userA | ⚠ HIGH-IMPACT. Disables a user account, blocking sign-in. Reversible by re-enabling the account. Confirm with the user before invoking. |
| cipp_reset_passwordA | ⚠ HIGH-IMPACT. Resets a user's password, invalidating their current password. Reversible by setting a new password. Confirm with the user before invoking. |
| cipp_reset_mfaA | ⚠ HIGH-IMPACT. Resets all MFA methods for a user, requiring them to re-register their authentication methods. Reversible by re-enabling MFA. Confirm with the user before invoking. |
| cipp_revoke_sessionsA | ⚠ HIGH-IMPACT. Revokes all active sessions for a user, forcing them to re-authenticate. Reversible by the user signing in again. Confirm with the user before invoking. |
| cipp_offboard_userA | ⚠ DESTRUCTIVE — IRREVERSIBLE. Queues CIPP's offboarding job for a user. Every action is opt-in: at least one must be enabled or the call is rejected. Returns once the job is QUEUED — CIPP reports success on task creation, not completion, so confirm the outcome in CIPP's Offboarding view before reporting the account as offboarded. Confirm with the user before invoking. |
| cipp_bec_checkB | Run a Business Email Compromise check on a user |
| cipp_list_mfa_usersB | List users and their MFA status in a tenant |
| cipp_list_user_devicesB | List devices enrolled by a user |
| cipp_list_user_groupsC | List groups a user is a member of |
| cipp_list_groupsC | List groups in a tenant |
| cipp_create_groupA | ⚠ HIGH-IMPACT. Creates a new group in the tenant, which can be used for security policy assignments (RBAC, Conditional Access) or mail distribution. Reversible by deleting the group. Confirm with the user before invoking. |
| cipp_list_mailboxesC | List mailboxes in a tenant |
| cipp_list_mailbox_permissionsB | List permissions on a specific mailbox |
| cipp_list_mailbox_usageA | Report mailbox and online-archive sizes across a tenant, largest first, with tenant-wide totals. Each mailbox reports bytes used, a human-readable size, item count, quota and percent-of-quota, for both the primary store and the archive. Answers 'who is near quota', 'which mailboxes need archiving', and 'how much Exchange storage does this tenant use'. Sizes come from CIPP's reporting database, which must have been synced — the live Exchange query carries no size data at all. For one mailbox, or when the cache is unavailable, use cipp_get_mailbox_usage. |
| cipp_get_mailbox_usageA | Report the primary mailbox size and online-archive size for a single mailbox, with item counts, quotas and percent-of-quota. Reads live from Exchange, so unlike cipp_list_mailbox_usage it needs no CIPP report-cache sync and still returns real sizes for a tenant that conceals names in its Microsoft 365 usage reports. |
| cipp_set_out_of_officeA | ⚠ HIGH-IMPACT. Configures the out-of-office / auto-reply for a mailbox, which causes automated messages to be sent to internal and/or external senders. Reversible by disabling the auto-reply. Confirm with the user before invoking. |
| cipp_set_email_forwardingA | ⚠ HIGH-IMPACT. Configures email forwarding on a mailbox, silently redirecting the user's incoming mail to another address. This is a common data-exfiltration vector. Reversible by removing the forwarding rule. Confirm with the user before invoking. |
| cipp_list_conditional_access_policiesB | List Conditional Access policies for a tenant |
| cipp_list_named_locationsA | List named locations (trusted IPs) for a tenant |
| cipp_list_enterprise_appsA | List enterprise applications (service principals) in a tenant — including third-party SaaS apps that customers have integrated via OAuth (Slack, Salesforce, Zoom, etc.). Returns appId, displayName, publisher, owner-org, signInAudience, tags, and creation date. Use tenantFilter='allTenants' for cross-tenant fan-out — CIPP handles per-tenant errors inline, so a 403 from one opt-out tenant returns as an error row rather than failing the call. Excludes Microsoft-built-in apps by default (owner org f8cdef31-…); pass includeBuiltIn=true to include them. |
| cipp_list_standardsB | List compliance standards configured for a tenant |
| cipp_run_standards_checkC | Trigger a standards compliance check for a tenant |
| cipp_list_standard_templatesA | List the CIPP Standards Templates configured across the partner tenant. |
| cipp_get_tenant_driftA | Report standards drift — settings that deviate from a tenant's assigned Standards Template. Omit tenantFilter to report drift across all tenants. |
| cipp_get_tenant_alignmentA | Report each tenant's alignment percentage against its assigned Standards Templates — the key signal for deciding which standards are safe to promote to Remediate. Omit tenantFilter to report on all tenants. |
| cipp_create_standard_templateA | ⚠ HIGH-IMPACT. Creates or updates a CIPP Standards Template (upsert by GUID). A template assigned to tenants with any Remediate-action standard WILL modify those tenants on the next standards run. Confirm with the user before invoking. |
| cipp_delete_standard_templateA | ⚠ HIGH-IMPACT. Permanently deletes a CIPP Standards Template by ID. Tenants assigned to it lose the standards it enforced. Confirm with the user before invoking. |
| cipp_list_bpaC | Get Best Practice Analyser results for a tenant |
| cipp_list_domain_healthB | Check domain health (DMARC, DKIM, SPF) for a tenant |
| cipp_list_licensesB | List license assignments and usage for a tenant |
| cipp_list_csp_licensesB | List all CSP licenses across tenants |
| cipp_list_audit_logsC | List audit log entries for a tenant |
| cipp_list_alert_queueA | List queued alerts across all tenants |
| cipp_list_gdap_rolesB | List available GDAP (Granular Delegated Admin Privileges) roles |
| cipp_list_gdap_invitesA | List pending GDAP relationship invites |
| cipp_list_scheduled_itemsC | List scheduled tasks in CIPP |
| cipp_add_scheduled_itemC | Create a new scheduled task |
| cipp_pingA | Check CIPP API connectivity |
| cipp_get_versionA | Get CIPP version information |
| cipp_list_logsC | List CIPP application logs |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 45 tools
Most tools follow a clear resource/action mapping, so list_tenants, create_user, reset_mfa, and get_tenant_drift are easy to tell apart. A few pairs require reading the descriptions to distinguish—notably list_mailbox_usage vs get_mailbox_usage, list_groups vs list_user_groups, and the standards/alignment/drift cluster—but the descriptions resolve the ambiguity.
The cipp_ prefix plus lowercase snake_case verbs is consistent throughout, and most names use a verb_noun pattern. Minor deviations such as cipp_bec_check instead of cipp_run_bec_check and cipp_add_scheduled_item alongside cipp_create_group prevent a perfect score.
45 tools is well above the 25+ threshold that makes a tool set heavy to navigate. The broad Microsoft 365/CIPP domain justifies some size, but the count will still burden an agent's selection and context window.
The surface covers many important CIPP workflows: user lifecycle, mailbox diagnostics, standards/BPA, security checks, licensing, and tenant details. However, there are notable gaps such as no group deletion/member management, no delete or edit for scheduled items, no GDAP invite creation, and no mailbox permission changes, which agents cannot work around without leaving the server.