Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

CIPP

OCI · GHCR.IO/WYRE-TECHNOLOGY/CIPP-MCP:V1.7.3 · SCANNED AUG 22

MCP server for CIPP — M365 multi-tenant management for MSPs (users, tenants, policies).

+4 this week 41 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency32
Schema Quality & AI Usability77
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4821 tokens (~112/item across 43 items; 43 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

oci · ghcr.io/wyre-technology/cipp-mcp:v1.7.3

# add to Claude Code
claude mcp add wyre-technology-cipp-mcp -- docker run --rm -i ghcr.io/wyre-technology/cipp-mcp:v1.7.3
# add to Codex CLI
codex mcp add wyre-technology-cipp-mcp -- docker run --rm -i ghcr.io/wyre-technology/cipp-mcp:v1.7.3
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wyre-technology-cipp-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/cipp-mcp:v1.7.3"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  wyre-technology-cipp-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/wyre-technology/cipp-mcp:v1.7.3"]
// mcp.json
{
  "mcpServers": {
    "wyre-technology-cipp-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/cipp-mcp:v1.7.3"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Aug 26 +4
    • Stability: unverified → 0.27 functional
  • 13 Aug 26 37

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 22 Aug 2026 · Analysed oci/ghcr.io/wyre-technology/cipp-mcp:v1.7.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published
MCP tools · 43 exposed · ~4,613 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
cipp_add_scheduled_item ~236

Create a new scheduled task

NameTypeReqDescription
commandstringyesThe CIPP function or command to execute on the schedule (e.g. "Get-CIPPAlerts").
parametersobjectArguments passed to the scheduled command, keyed by parameter name. Omit only when the command genuinely takes no arguments — without it the command runs bare.
recurrencestringCron expression or friendly recurrence interval (e.g. "0 9 * * 1" for every Monday at 09:00, or "Daily"). Omit for a one-off task.
scheduledTimestringyesWhen the task should first run — an ISO 8601 datetime (e.g. "2026-06-01T09:00:00Z") or Unix epoch seconds. Converted to epoch seconds before it is sent to CIPP.
taskNamestringyesHuman-readable name to identify this scheduled task in the CIPP UI.
tenantFilterstringOptional tenant domain name or ID to scope the scheduled task. Use 'allTenants' to run across every managed tenant.

No output schema declared.

No examples provided.

cipp_bec_check ~82

Run a Business Email Compromise check on a user

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_create_group ~215

⚠ 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.

NameTypeReqDescription
descriptionstringOptional free-text description of the group purpose.
displayNamestringyesHuman-readable name for the new group.
mailEnabledbooleanWhen true, the group is mail-enabled and can receive email. Required for Microsoft 365 groups.
mailNicknamestringThe mail alias used as the local part of the group email address (e.g. "finance-team" for finance-team@contoso.com). Required when mailEnabled is true.
securityEnabledbooleanWhen true, the group can be used for security policy assignments (RBAC, Conditional Access, etc.).
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_create_standard_template ~89

⚠ 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.

NameTypeReqDescription
templateobjectyesThe full Standards Template JSON object. Must include a "tenantFilter" assigning it to at least one tenant.

No output schema declared.

No examples provided.

cipp_create_user ~258

⚠ 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.

NameTypeReqDescription
countrystringTwo-letter ISO 3166-1 alpha-2 country code representing the user's location (e.g. 'US', 'GB').
departmentstringThe department the user belongs to.
displayNamestringyesThe user's full display name as it will appear in the directory (e.g. 'Alice Smith').
givenNamestringThe user's first (given) name.
jobTitlestringThe user's job title as it appears in the directory.
passwordstringyesInitial password for the account. Should meet the tenant password complexity policy.
surnamestringThe user's last name (surname).
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userPrincipalNamestringyesThe user's sign-in address / UPN (e.g. alice@contoso.com). Must be unique within the tenant.

No output schema declared.

No examples provided.

cipp_delete_standard_template ~63

⚠ 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.

NameTypeReqDescription
templateIdstringyesThe GUID of the Standards Template to delete.

No output schema declared.

No examples provided.

cipp_disable_user ~103

⚠ HIGH-IMPACT. Disables a user account, blocking sign-in. Reversible by re-enabling the account. Confirm with the user before invoking.

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_edit_user ~276

⚠ 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.

NameTypeReqDescription
departmentstringUpdated department for the user.
displayNamestringUpdated full display name for the user.
jobTitlestringUpdated job title for the user.
licensesarrayLicense SKU GUIDs the user should hold after the edit (CIPP reconciles: missing SKUs are added, extra assigned SKUs are removed). Use cipp_list_licenses to discover SKU ids. Mutually exclusive with r…
removeLicensesboolean⚠ When true, strips EVERY license assigned to the user. Mutually exclusive with a non-empty licenses list.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
usageLocationstringTwo-letter ISO 3166-1 alpha-2 country code for license assignment eligibility (e.g. 'US'). Required before assigning most Microsoft 365 licences.
userIdstringyesThe user's Azure AD object ID or UPN to identify the account to modify.

No output schema declared.

No examples provided.

cipp_get_tenant_alignment ~73

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.

NameTypeReqDescription
tenantFilterstringOptional tenant domain or ID. Omit to report alignment across all managed tenants.

No output schema declared.

No examples provided.

cipp_get_tenant_details ~42

Get detailed information about a specific tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID, use 'allTenants' for all

No output schema declared.

No examples provided.

cipp_get_tenant_drift ~63

Report standards drift — settings that deviate from a tenant's assigned Standards Template. Omit tenantFilter to report drift across all tenants.

NameTypeReqDescription
tenantFilterstringOptional tenant domain or ID. Omit to report drift across all managed tenants.

No output schema declared.

No examples provided.

cipp_get_version ~16

Get CIPP version information

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_list_alert_queue ~18

List queued alerts across all tenants

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_list_audit_logs ~102

List audit log entries for a tenant

NameTypeReqDescription
daysnumberNumber of days to look back when retrieving log entries. Defaults to 7 when omitted.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
typestringFilter results to a specific log type (e.g. "AzureActiveDirectory", "Exchange", "SharePoint").

No output schema declared.

No examples provided.

cipp_list_bpa ~50

Get Best Practice Analyser results for a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_conditional_access_policies ~51

List Conditional Access policies for a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_csp_licenses ~20

List all CSP licenses across tenants

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_list_domain_health ~56

Check domain health (DMARC, DKIM, SPF) for a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_enterprise_apps ~225

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.

NameTypeReqDescription
includeBuiltInbooleanWhen true, includes Microsoft-built-in service principals (owner org f8cdef31-a31e-4b4a-93e4-5f571e91255a). Defaults to false (third-party / customer-installed apps only).
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_gdap_invites ~20

List pending GDAP relationship invites

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_list_gdap_roles ~27

List available GDAP (Granular Delegated Admin Privileges) roles

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_list_groups ~66

List groups in a tenant

NameTypeReqDescription
searchstringOptional text to filter results by group display name. Partial matches are supported.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_licenses ~49

List license assignments and usage for a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_logs ~57

List CIPP application logs

NameTypeReqDescription
dateFilterstringISO 8601 date string used to filter log entries to a specific day (e.g. "2024-06-01"). Omit to retrieve recent logs.

No output schema declared.

No examples provided.

cipp_list_mailbox_permissions ~67

List permissions on a specific mailbox

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
upnstringyesUser Principal Name of the mailbox whose permissions should be listed.

No output schema declared.

No examples provided.

cipp_list_mailboxes ~68

List mailboxes in a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
typestringFilter mailboxes by recipient type. Omit to return all mailbox types.

No output schema declared.

No examples provided.

cipp_list_mfa_users ~51

List users and their MFA status in a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_named_locations ~52

List named locations (trusted IPs) for a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_scheduled_items ~19

List scheduled tasks in CIPP

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_list_standard_templates ~23

List the CIPP Standards Templates configured across the partner tenant.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_list_standards ~49

List compliance standards configured for a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_list_tenants ~42

List all tenants managed in CIPP

NameTypeReqDescription
allTenantsbooleanWhen true, forces retrieval of every managed tenant regardless of any default filter.

No output schema declared.

No examples provided.

cipp_list_user_devices ~78

List devices enrolled by a user

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_list_user_groups ~80

List groups a user is a member of

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_list_users ~111

List users in a tenant

NameTypeReqDescription
searchFieldstringThe user attribute to search on. Must be provided together with searchValue.
searchValuestringValue to match against the chosen searchField. displayName matches on prefix; userPrincipalName and mail must match exactly. Omit both search parameters to list every user in the tenant.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_offboard_user ~668

⚠ 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.

NameTypeReqDescription
AccessAutomaparrayUPNs to grant full access to the user's mailbox, automapped into their Outlook.
AccessNoAutomaparrayUPNs to grant full access to the user's mailbox without automapping.
ClearImmutableIdbooleanClear the immutable ID, breaking the link to an on-premises AD object.
ConvertToSharedbooleanConvert the mailbox to a shared mailbox so it can be retained without a license.
DeleteUserboolean⚠ Delete the account outright. Do not combine with actions that need the account to exist afterwards.
DisableOneDriveSharingbooleanRevoke sharing links on the user's OneDrive. Requires a recent CIPP build; older ones ignore it.
DisableSignInbooleanDisable the account so the user can no longer sign in.
HideFromGALbooleanHide the mailbox from the Global Address List.
KeepCopybooleanWhen forwarding, keep a copy of each message in the original mailbox. Only meaningful alongside forward.
OOOstringOut-of-office auto-reply message to set on the mailbox. Omit to leave the auto-reply unchanged.
OnedriveAccessarrayUPNs to grant access to the user's OneDrive.
RemoveGroupsbooleanRemove the user from all groups they are a member of.
RemoveLicensesbooleanRemove every license assigned to the user.
RemoveMFADevicesbooleanRemove all registered MFA methods for the user.
RemoveMobilebooleanRemove the user's registered mobile devices.
RemoveRulesbooleanRemove all inbox rules from the mailbox.
RemoveTeamsPhoneDIDbooleanRelease the Teams phone number (DID) assigned to the user.
ResetPassbooleanReset the account password to a new random value.
RevokeSessionsbooleanRevoke all active sign-in sessions and refresh tokens.
disableForwardingbooleanRemove any existing forwarding configured on the mailbox.
forwardstringUPN to forward the user's incoming mail to. Omit to leave forwarding unchanged.
removeCalendarInvitesbooleanCancel calendar invites the user organised.
removeCalendarPermissionsbooleanRemove the user's permissions on other users' calendars across the tenant.
removePermissionsbooleanRemove the user's delegated access to other mailboxes across the tenant.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_ping ~15

Check CIPP API connectivity

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

cipp_reset_mfa ~111

⚠ 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.

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_reset_password ~131

⚠ HIGH-IMPACT. Resets a user's password, invalidating their current password. Reversible by setting a new password. Confirm with the user before invoking.

NameTypeReqDescription
newPasswordstringThe replacement password to set. If omitted, a random password is generated and returned in the response.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_revoke_sessions ~110

⚠ 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.

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
userIdstringyesThe target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

No output schema declared.

No examples provided.

cipp_run_standards_check ~51

Trigger a standards compliance check for a tenant

NameTypeReqDescription
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

No output schema declared.

No examples provided.

cipp_set_email_forwarding ~158

⚠ 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.

NameTypeReqDescription
forwardTostringEmail address to forward incoming messages to. Omit this parameter to disable forwarding.
keepCopybooleanWhen true (default), a copy of each forwarded message is retained in the original mailbox.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
upnstringyesUser Principal Name of the mailbox to configure forwarding on.

No output schema declared.

No examples provided.

cipp_set_out_of_office ~472

⚠ 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.

NameTypeReqDescription
autoDeclineFutureRequestsWhenOOFbooleanAutomatically decline meeting requests that arrive for the out-of-office window. Only valid when state is 'Scheduled'.
createOOFEventbooleanCreate a calendar event covering the out-of-office window. Only valid when state is 'Scheduled'.
declineEventsForScheduledOOFbooleanDecline existing meetings that fall inside the out-of-office window. Only valid when state is 'Scheduled'.
declineMeetingMessagestringMessage sent when a meeting is declined. Only valid when state is 'Scheduled'.
endTimestringWhen the scheduled auto-reply ends — ISO 8601 datetime or Unix epoch seconds. Only valid when state is 'Scheduled'; CIPP defaults to 7 days after startTime if omitted.
externalMessagestringHTML or plain-text auto-reply message sent to senders outside the organisation. Omit to leave the existing message untouched.
internalMessagestringHTML or plain-text auto-reply message sent to senders within the same organisation. Omit to leave the existing message untouched.
oofEventSubjectstringSubject line for the calendar event created by createOOFEvent. Only valid when state is 'Scheduled'.
startTimestringWhen the scheduled auto-reply starts — ISO 8601 datetime or Unix epoch seconds. Only valid when state is 'Scheduled'; CIPP defaults to now if omitted.
statestringyesAuto-reply state. 'Scheduled' replies only between startTime and endTime — useful during offboarding.
tenantFilterstringyesTenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
timezonestringTimezone the schedule is interpreted in (e.g. 'Eastern Standard Time'). Requires a recent CIPP build; older ones ignore it.
upnstringyesUser Principal Name of the mailbox to configure.

No output schema declared.

No examples provided.