Minerva MCP — Microsoft 365 & Azure MCP Server

Microsoft 365 & Azure admin: Graph, ARM, and the PowerShell cmdlets Graph does not expose.

Local serverstdioGo

What is the Minerva MCP — Microsoft 365 & Azure MCP server?

Most cloud and infrastructure work still happens through a UI a human drives. Minerva MCP — Microsoft 365 & Azure MCP server moves it into the conversation instead. Microsoft 365 & Azure admin: Graph, ARM, and the PowerShell cmdlets Graph does not expose.

The short version

An MCP server that lets Claude, Copilot, VS Code or any MCP client query and administer a Microsoft 365 tenant in plain language.

Getting it running

npm on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.

The tools it exposes

The server publishes 12 tools. What each one is for:

  • microsoft_graph_call — Any Microsoft Graph call (v1.0 or beta)
  • azure_arm_call — Any Azure Resource Manager call
  • microsoft_search — Unified Microsoft Search
  • get_tenant_context — Organisation, licences, Secure Score
  • generate_security_report — Tenant security posture
  • execute_exchange_online — Exchange Online cmdlets
  • execute_pnp_sharepoint — PnP PowerShell (SharePoint) cmdlets
  • execute_teams_admin — Teams Admin cmdlets
  • execute_purview_compliance — Purview / compliance cmdlets
  • Transport — In stdio mode all logs go to stderr — stdout belongs to the protocol
  • Authentication — Defaults: bearer over HTTP (the caller supplies the token), device-code over stdio, client-secret as soon as a secret is present. Each resource gets
  • Scope — --read-only reuses the same risk classifier as the approval gate, so it covers PowerShell cmdlets too, not just HTTP verbs

What it needs from you

Configuration is passed through the environment: MINERVA_TENANT_ID, AZURE_TENANT_ID, MINERVA_CLIENT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, MINERVA_SHAREPOINT_URL, REDIS_URL, MINERVA_MRTR_SECRET. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 12 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Minerva MCP — Microsoft 365 & Azure.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Plenty of cloud and infrastructure servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Minerva MCP — Microsoft 365 & Azure's toolset — microsoft_graph_call, azure_arm_call, microsoft_search and 9 more — is a fair guide to whether it matches your workflow. It is maintained by HoussemMak; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
microsoft_graph_callAny Microsoft Graph call (v1.0 or beta)
azure_arm_callAny Azure Resource Manager call
microsoft_searchUnified Microsoft Search
get_tenant_contextOrganisation, licences, Secure Score
generate_security_reportTenant security posture
execute_exchange_onlineExchange Online cmdlets
execute_pnp_sharepointPnP PowerShell (SharePoint) cmdlets
execute_teams_adminTeams Admin cmdlets
execute_purview_compliancePurview / compliance cmdlets
TransportIn stdio mode **all logs go to stderr** — stdout belongs to the protocol.
AuthenticationDefaults: bearer over HTTP (the caller supplies the token), device-code over stdio, client-secret as soon as a secret is present. Each resource gets its own token: Graph, ARM, Exchange, Purview, SharePoint and Teams do n
Scope--read-only reuses the same risk classifier as the approval gate, so it covers PowerShell cmdlets too, not just HTTP verbs.

How to install the Minerva MCP — Microsoft 365 & Azure MCP server

{
  "mcpServers": {
    "minerva": {
      "command": "npx",
      "args": ["-y", "npm"],
      "env": {
        "MINERVA_TENANT_ID": "your-value",
        "AZURE_TENANT_ID": "your-value",
        "MINERVA_CLIENT_ID": "your-value",
        "AZURE_CLIENT_ID": "your-value",
        "AZURE_CLIENT_SECRET": "your-value",
        "MINERVA_SHAREPOINT_URL": "your-value",
        "REDIS_URL": "your-value",
        "MINERVA_MRTR_SECRET": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
MINERVA_TENANT_IDConfiguration value read at startup.Optional
AZURE_TENANT_IDConfiguration value read at startup.Optional
MINERVA_CLIENT_IDConfiguration value read at startup.Optional
AZURE_CLIENT_IDConfiguration value read at startup.Optional
AZURE_CLIENT_SECRETCredential the server authenticates with.Yes
MINERVA_SHAREPOINT_URLEndpoint or connection string the server talks to.Yes
REDIS_URLEndpoint or connection string the server talks to.Yes
MINERVA_MRTR_SECRETCredential the server authenticates with.Yes

Example prompts to try

  • Use Minerva MCP — Microsoft 365 & Azure to microsoft graph call.
  • Use Minerva MCP — Microsoft 365 & Azure to azure arm call.
  • Use Minerva MCP — Microsoft 365 & Azure to microsoft search.

Frequently asked questions

It connects Minerva MCP — Microsoft 365 & Azure to MCP-compatible AI assistants such as Claude and Cursor, exposing 12 tools (microsoft_graph_call, azure_arm_call, microsoft_search, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Minerva MCP — Microsoft 365 & Azure directly.