# Inforcer [Health: Active]

**Category:** 🔒 Security  
**Repository:** https://github.com/wyre-technology/inforcer-mcp  
**GitHub Stars:** 1  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/inforcer-2

## Description
Read-only MCP server for Inforcer M365 baseline governance, plus assessment runs.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "inforcer": {
    "command": "npx",
    "args": ["-y","github:WYRE-AI/inforcer-mcp"],
    "env": {
      "INFORCER_REGION": "",
      "INFORCER_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `INFORCER_REGION`, `INFORCER_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What Inforcer MCP server does

The Inforcer MCP server gives MCP-compatible AI assistants structured access to Inforcer data for Microsoft 365 baseline governance. Its coverage includes tenant records, baseline listings, alignment scores, tenant-level drift details, policies, Microsoft Secure Score data, Entra ID users and groups, roles, audit events, assessments, and reports.

Most operations only retrieve information. The two exceptions are `inforcer_assessments_run`, which starts an assessment for a tenant, and `inforcer_reports_run`, which queues report work for one or more tenants. These actions are marked high-impact and require confirmation before execution. The server does not provide create, update, or delete operations for tenants, policies, or baselines.

## How it works

The Inforcer MCP server wraps the `@wyre-technology/node-inforcer` SDK. That SDK uses a community-sourced API surface rather than an official Inforcer REST specification, so endpoint behavior and response fields may change. Results that matter operationally should be checked against the Inforcer portal.

Agents can begin with `inforcer_navigate` to identify available domains, or invoke domain tools directly. Tenant-scoped tools accept a numeric Client Tenant ID, tenant DNS name, Azure AD tenant GUID, or friendly name. Names and identifiers are resolved to the numeric Client Tenant ID before the request. If an input matches multiple tenants, the request fails as ambiguous; `inforcer_tenants_resolve` can show the mapping.

Report execution is asynchronous. After queuing a report, poll its status with `inforcer_reports_run_status` until it is terminal, then retrieve output files with `inforcer_reports_download_output`, which returns base64-encoded content.

## Setup and configuration

The server requires Node.js 18 or newer. For local use, configure `INFORCER_REGION` with one of `anz`, `eu`, `uk`, or `us`, and set `INFORCER_API_KEY` to an Inforcer API key. The key is sent in the `Inf-Api-Key` header. Tool discovery works without credentials, but real API calls require both variables.

The default transport is stdio. Set `MCP_TRANSPORT=http` for HTTP operation and use `MCP_HTTP_PORT` to change the default port of 8080. `LOG_LEVEL` accepts `debug`, `info`, `warn`, or `error`. `AUTH_MODE` defaults to `env`; gateway deployments use `AUTH_MODE=gateway` together with HTTP transport.

Docker deployment exposes the HTTP server and a health endpoint. In gateway mode, request headers `x-inforcer-region` and `x-inforcer-api-key` supply per-request credentials. The server invalidates its cached client when those credentials change.

## Tools and capabilities

The Inforcer MCP server includes tools for navigation and connectivity checks, tenant listing and lookup, baseline discovery, alignment scoring and drift inspection, policy listing, secure scores, identity records, audit searches, assessment history and execution, and report type, run, status, and output operations.

Credentials are not written to structured logs. The implementation supports both local stdio use and HTTP deployment for a gateway or containerized environment.

## Limitations and notes

The underlying API is community-sourced and may change without notice. Assessment and report runs trigger real work in Inforcer and are visible to operators, despite not being destructive. Confirm them with the user before invocation. The tenant identifier used by Inforcer is distinct from the Azure AD tenant GUID, so ambiguous names should be replaced with the numeric Client Tenant ID.

_Full upstream README: https://allmcps.com/mcp/inforcer-2/readme_

