# CIPP (oci · ghcr.io/wyre-technology/cipp-mcp:v1.7.3)

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

- Trust score: 41/100 (low)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-22

## Components

- oci · `ghcr.io/wyre-technology/cipp-mcp:v1.7.3`: 41/100 (this document), [markdown](https://verifymcp.io/servers/wyre-technology-cipp-mcp/ghcr-io-wyre-technology-cipp-mcp-v1-7-3.md), [page](https://verifymcp.io/servers/wyre-technology-cipp-mcp/ghcr-io-wyre-technology-cipp-mcp-v1-7-3)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/wyre-technology/cipp-mcp:v1.7.3`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-22.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - 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.
  - Install-script risk not yet assessed.
  - 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.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: the license (NOASSERTION) isn't a recognized OSI-approved license.
  - Actively maintained (last published 8 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**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

### Claude

```bash
claude mcp add wyre-technology-cipp-mcp -- docker run --rm -i ghcr.io/wyre-technology/cipp-mcp:v1.7.3
```

### Codex

```bash
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

```yaml
mcp_servers:
  wyre-technology-cipp-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/wyre-technology/cipp-mcp:v1.7.3"]
```

### Other

```json
{
  "mcpServers": {
    "wyre-technology-cipp-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/wyre-technology/cipp-mcp:v1.7.3"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-21 (score 41, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-13 (score 37)

First indexed and scored.

## MCP tools (43)

### `cipp_list_tenants` (~42 tokens)

List all tenants managed in CIPP

Input parameters:

- `allTenants` (boolean): When true, forces retrieval of every managed tenant regardless of any default filter.

### `cipp_get_tenant_details` (~42 tokens)

Get detailed information about a specific tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID, use 'allTenants' for all

### `cipp_list_users` (~111 tokens)

List users in a tenant

Input parameters:

- `searchField` (string): The user attribute to search on. Must be provided together with searchValue.
- `searchValue` (string): Value 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.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_create_user` (~258 tokens)

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

Input parameters:

- `country` (string): Two-letter ISO 3166-1 alpha-2 country code representing the user's location (e.g. 'US', 'GB').
- `department` (string): The department the user belongs to.
- `displayName` (string, required): The user's full display name as it will appear in the directory (e.g. 'Alice Smith').
- `givenName` (string): The user's first (given) name.
- `jobTitle` (string): The user's job title as it appears in the directory.
- `password` (string, required): Initial password for the account. Should meet the tenant password complexity policy.
- `surname` (string): The user's last name (surname).
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userPrincipalName` (string, required): The user's sign-in address / UPN (e.g. alice@contoso.com). Must be unique within the tenant.

### `cipp_edit_user` (~276 tokens)

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

Input parameters:

- `department` (string): Updated department for the user.
- `displayName` (string): Updated full display name for the user.
- `jobTitle` (string): Updated job title for the user.
- `licenses` (array): License 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…
- `removeLicenses` (boolean): ⚠ When true, strips EVERY license assigned to the user. Mutually exclusive with a non-empty licenses list.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `usageLocation` (string): Two-letter ISO 3166-1 alpha-2 country code for license assignment eligibility (e.g. 'US'). Required before assigning most Microsoft 365 licences.
- `userId` (string, required): The user's Azure AD object ID or UPN to identify the account to modify.

### `cipp_disable_user` (~103 tokens)

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

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_reset_password` (~131 tokens)

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

Input parameters:

- `newPassword` (string): The replacement password to set. If omitted, a random password is generated and returned in the response.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_reset_mfa` (~111 tokens)

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

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_revoke_sessions` (~110 tokens)

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

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_offboard_user` (~668 tokens)

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

Input parameters:

- `AccessAutomap` (array): UPNs to grant full access to the user's mailbox, automapped into their Outlook.
- `AccessNoAutomap` (array): UPNs to grant full access to the user's mailbox without automapping.
- `ClearImmutableId` (boolean): Clear the immutable ID, breaking the link to an on-premises AD object.
- `ConvertToShared` (boolean): Convert the mailbox to a shared mailbox so it can be retained without a license.
- `DeleteUser` (boolean): ⚠ Delete the account outright. Do not combine with actions that need the account to exist afterwards.
- `DisableOneDriveSharing` (boolean): Revoke sharing links on the user's OneDrive. Requires a recent CIPP build; older ones ignore it.
- `DisableSignIn` (boolean): Disable the account so the user can no longer sign in.
- `HideFromGAL` (boolean): Hide the mailbox from the Global Address List.
- `KeepCopy` (boolean): When forwarding, keep a copy of each message in the original mailbox. Only meaningful alongside forward.
- `OOO` (string): Out-of-office auto-reply message to set on the mailbox. Omit to leave the auto-reply unchanged.
- `OnedriveAccess` (array): UPNs to grant access to the user's OneDrive.
- `RemoveGroups` (boolean): Remove the user from all groups they are a member of.
- `RemoveLicenses` (boolean): Remove every license assigned to the user.
- `RemoveMFADevices` (boolean): Remove all registered MFA methods for the user.
- `RemoveMobile` (boolean): Remove the user's registered mobile devices.
- `RemoveRules` (boolean): Remove all inbox rules from the mailbox.
- `RemoveTeamsPhoneDID` (boolean): Release the Teams phone number (DID) assigned to the user.
- `ResetPass` (boolean): Reset the account password to a new random value.
- `RevokeSessions` (boolean): Revoke all active sign-in sessions and refresh tokens.
- `disableForwarding` (boolean): Remove any existing forwarding configured on the mailbox.
- `forward` (string): UPN to forward the user's incoming mail to. Omit to leave forwarding unchanged.
- `removeCalendarInvites` (boolean): Cancel calendar invites the user organised.
- `removeCalendarPermissions` (boolean): Remove the user's permissions on other users' calendars across the tenant.
- `removePermissions` (boolean): Remove the user's delegated access to other mailboxes across the tenant.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_bec_check` (~82 tokens)

Run a Business Email Compromise check on a user

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_list_mfa_users` (~51 tokens)

List users and their MFA status in a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_user_devices` (~78 tokens)

List devices enrolled by a user

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_list_user_groups` (~80 tokens)

List groups a user is a member of

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `userId` (string, required): The target user's Azure AD object ID or User Principal Name (UPN, e.g. alice@contoso.com).

### `cipp_list_groups` (~66 tokens)

List groups in a tenant

Input parameters:

- `search` (string): Optional text to filter results by group display name. Partial matches are supported.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_create_group` (~215 tokens)

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

Input parameters:

- `description` (string): Optional free-text description of the group purpose.
- `displayName` (string, required): Human-readable name for the new group.
- `mailEnabled` (boolean): When true, the group is mail-enabled and can receive email. Required for Microsoft 365 groups.
- `mailNickname` (string): The 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.
- `securityEnabled` (boolean): When true, the group can be used for security policy assignments (RBAC, Conditional Access, etc.).
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_mailboxes` (~68 tokens)

List mailboxes in a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `type` (string): Filter mailboxes by recipient type. Omit to return all mailbox types.

### `cipp_list_mailbox_permissions` (~67 tokens)

List permissions on a specific mailbox

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `upn` (string, required): User Principal Name of the mailbox whose permissions should be listed.

### `cipp_set_out_of_office` (~472 tokens)

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

Input parameters:

- `autoDeclineFutureRequestsWhenOOF` (boolean): Automatically decline meeting requests that arrive for the out-of-office window. Only valid when state is 'Scheduled'.
- `createOOFEvent` (boolean): Create a calendar event covering the out-of-office window. Only valid when state is 'Scheduled'.
- `declineEventsForScheduledOOF` (boolean): Decline existing meetings that fall inside the out-of-office window. Only valid when state is 'Scheduled'.
- `declineMeetingMessage` (string): Message sent when a meeting is declined. Only valid when state is 'Scheduled'.
- `endTime` (string): When 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.
- `externalMessage` (string): HTML or plain-text auto-reply message sent to senders outside the organisation. Omit to leave the existing message untouched.
- `internalMessage` (string): HTML or plain-text auto-reply message sent to senders within the same organisation. Omit to leave the existing message untouched.
- `oofEventSubject` (string): Subject line for the calendar event created by createOOFEvent. Only valid when state is 'Scheduled'.
- `startTime` (string): When the scheduled auto-reply starts — ISO 8601 datetime or Unix epoch seconds. Only valid when state is 'Scheduled'; CIPP defaults to now if omitted.
- `state` (string, required): Auto-reply state. 'Scheduled' replies only between startTime and endTime — useful during offboarding.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `timezone` (string): Timezone the schedule is interpreted in (e.g. 'Eastern Standard Time'). Requires a recent CIPP build; older ones ignore it.
- `upn` (string, required): User Principal Name of the mailbox to configure.

### `cipp_set_email_forwarding` (~158 tokens)

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

Input parameters:

- `forwardTo` (string): Email address to forward incoming messages to. Omit this parameter to disable forwarding.
- `keepCopy` (boolean): When true (default), a copy of each forwarded message is retained in the original mailbox.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `upn` (string, required): User Principal Name of the mailbox to configure forwarding on.

### `cipp_list_conditional_access_policies` (~51 tokens)

List Conditional Access policies for a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_named_locations` (~52 tokens)

List named locations (trusted IPs) for a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_enterprise_apps` (~225 tokens)

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.

Input parameters:

- `includeBuiltIn` (boolean): When true, includes Microsoft-built-in service principals (owner org f8cdef31-a31e-4b4a-93e4-5f571e91255a). Defaults to false (third-party / customer-installed apps only).
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_standards` (~49 tokens)

List compliance standards configured for a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_run_standards_check` (~51 tokens)

Trigger a standards compliance check for a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_standard_templates` (~23 tokens)

List the CIPP Standards Templates configured across the partner tenant.

### `cipp_get_tenant_drift` (~63 tokens)

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

Input parameters:

- `tenantFilter` (string): Optional tenant domain or ID. Omit to report drift across all managed tenants.

### `cipp_get_tenant_alignment` (~73 tokens)

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.

Input parameters:

- `tenantFilter` (string): Optional tenant domain or ID. Omit to report alignment across all managed tenants.

### `cipp_create_standard_template` (~89 tokens)

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

Input parameters:

- `template` (object, required): The full Standards Template JSON object. Must include a "tenantFilter" assigning it to at least one tenant.

### `cipp_delete_standard_template` (~63 tokens)

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

Input parameters:

- `templateId` (string, required): The GUID of the Standards Template to delete.

### `cipp_list_bpa` (~50 tokens)

Get Best Practice Analyser results for a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_domain_health` (~56 tokens)

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

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_licenses` (~49 tokens)

List license assignments and usage for a tenant

Input parameters:

- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.

### `cipp_list_csp_licenses` (~20 tokens)

List all CSP licenses across tenants

### `cipp_list_audit_logs` (~102 tokens)

List audit log entries for a tenant

Input parameters:

- `days` (number): Number of days to look back when retrieving log entries. Defaults to 7 when omitted.
- `tenantFilter` (string, required): Tenant domain name or ID to scope the operation. Use 'allTenants' to target every managed tenant.
- `type` (string): Filter results to a specific log type (e.g. "AzureActiveDirectory", "Exchange", "SharePoint").

### `cipp_list_alert_queue` (~18 tokens)

List queued alerts across all tenants

### `cipp_list_gdap_roles` (~27 tokens)

List available GDAP (Granular Delegated Admin Privileges) roles

### `cipp_list_gdap_invites` (~20 tokens)

List pending GDAP relationship invites

### `cipp_list_scheduled_items` (~19 tokens)

List scheduled tasks in CIPP

### `cipp_add_scheduled_item` (~236 tokens)

Create a new scheduled task

Input parameters:

- `command` (string, required): The CIPP function or command to execute on the schedule (e.g. "Get-CIPPAlerts").
- `parameters` (object): Arguments passed to the scheduled command, keyed by parameter name. Omit only when the command genuinely takes no arguments — without it the command runs bare.
- `recurrence` (string): Cron expression or friendly recurrence interval (e.g. "0 9 * * 1" for every Monday at 09:00, or "Daily"). Omit for a one-off task.
- `scheduledTime` (string, required): When 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.
- `taskName` (string, required): Human-readable name to identify this scheduled task in the CIPP UI.
- `tenantFilter` (string): Optional tenant domain name or ID to scope the scheduled task. Use 'allTenants' to run across every managed tenant.

### `cipp_ping` (~15 tokens)

Check CIPP API connectivity

### `cipp_get_version` (~16 tokens)

Get CIPP version information

### `cipp_list_logs` (~57 tokens)

List CIPP application logs

Input parameters:

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

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/wyre-technology-cipp-mcp/ghcr-io-wyre-technology-cipp-mcp-v1-7-3#diagnostics

## Score history

- 2026-08-22: 41
- 2026-08-21: 41
- 2026-08-20: 37
- 2026-08-19: 37
- 2026-08-18: 37
- 2026-08-17: 37
- 2026-08-16: 37
- 2026-08-15: 37
- 2026-08-14: 37
- 2026-08-13: 37

## Links

- Repository: https://github.com/wyre-technology/cipp-mcp
- Changelog RSS feed: https://verifymcp.io/servers/wyre-technology-cipp-mcp/ghcr-io-wyre-technology-cipp-mcp-v1-7-3.xml
- Changelog JSON feed: https://verifymcp.io/servers/wyre-technology-cipp-mcp/ghcr-io-wyre-technology-cipp-mcp-v1-7-3.json
- HTML version of this page: https://verifymcp.io/servers/wyre-technology-cipp-mcp/ghcr-io-wyre-technology-cipp-mcp-v1-7-3
