Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Minerva MCP — Microsoft 365 & Azure

von HoussemMakVersion 0.4.2i★ –iLäuft auf deinem Computer
Name in der Registryio.github.HoussemMak/minerva-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

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

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Entwicklertools
  • Das musst du eintragen: AZURE_CLIENT_SECRET

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, MINERVA_SHAREPOINT_URL

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "minerva": {
      "command": "npx",
      "args": [
        "-y",
        "minerva-mcp",
        "--stdio",
        "your-value"
      ],
      "env": {
        "AZURE_TENANT_ID": "your-value",
        "AZURE_CLIENT_ID": "your-value",
        "AZURE_CLIENT_SECRET": "your-value",
        "MINERVA_SHAREPOINT_URL": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add minerva --env AZURE_TENANT_ID=your-value --env AZURE_CLIENT_ID=your-value --env AZURE_CLIENT_SECRET=your-value --env MINERVA_SHAREPOINT_URL=your-value -- npx -y minerva-mcp --stdio your-value

Trag die leeren Werte ein, bevor du ihn startest.

Dieser Server braucht Werte in seiner Befehlszeile, also kopier die Einstellungen und trag sie ein.

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "minerva": {
      "command": "npx",
      "args": [
        "-y",
        "minerva-mcp",
        "--stdio",
        "your-value"
      ],
      "env": {
        "AZURE_TENANT_ID": "your-value",
        "AZURE_CLIENT_ID": "your-value",
        "AZURE_CLIENT_SECRET": "your-value",
        "MINERVA_SHAREPOINT_URL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server braucht Werte in seiner Befehlszeile, also kopier die Einstellungen und trag sie ein.

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "minerva": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "minerva-mcp",
        "--stdio",
        "your-value"
      ],
      "env": {
        "AZURE_TENANT_ID": "your-value",
        "AZURE_CLIENT_ID": "your-value",
        "AZURE_CLIENT_SECRET": "your-value",
        "MINERVA_SHAREPOINT_URL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • AZURE_TENANT_ID env
    Entra tenant id. Only needed for unattended app-only sign-in; omit it to sign in interactively with a device code.
  • AZURE_CLIENT_ID env
    Application (client) id. Defaults to the public Microsoft Graph PowerShell client, so it is optional for trying the server out.
  • AZURE_CLIENT_SECRET geheim env
    Client secret for app-only authentication. Leave unset to sign in interactively instead.
  • MINERVA_SHAREPOINT_URL env
    SharePoint root URL, e.g. https://contoso.sharepoint.com. Required only by the SharePoint/PnP tool when PowerShell runs locally.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto HoussemMak bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Entwicklertoolsi

  • Mehr Sterne als 0 % der anderen 4923 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 29 % der anderen 4923 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 4923 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Minerva MCP — Microsoft 365 & Azure sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: AZURE_CLIENT_SECRET

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.4.2) kam vor 3 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: GitHub, Desktop Commander, Cloudflare MCP

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

GitHub

von github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

Computer oder Cloud★ 34.245MITAktualisiert vor 5 Tagen
Installieren

Desktop Commander

von wonderwhy-er

MCP server for terminal commands, file operations, and process management

Läuft auf deinem Computer★ 10.225MITAktualisiert vor 17 Tagen
Installieren

Cloudflare MCP

von cloudflare

Cloudflare MCP servers

Läuft in der Cloud★ 4.446Apache-2.0Aktualisiert vor 14 Monaten
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

Minerva MCP

Microsoft 365 and Azure administration for AI assistants — including the parts Microsoft Graph cannot reach.

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


Why another Microsoft 365 MCP server?

There are already good ones, and this is not trying to replace them.

Lokkams-365-mcp-serverMinerva MCP
Microsoft Graph✅✅ 300+ tools✅ generic call
Azure Resource Manager✅—✅
Exchange Online cmdlets——✅
SharePoint / PnP cmdlets——✅
Teams Admin cmdlets——✅
Purview / compliance cmdlets——✅
Risk classification per action——✅
Human approval before writes—read-only switch✅ native to the protocol
MCP 2026-07-28 (stateless)——✅

If you only need Graph, use Lokka or ms-365-mcp-server. They are excellent, more mature, and more widely used. Lokka in particular is written by a Microsoft Entra product manager.

Reach for this one when you hit the wall everyone hits eventually: a large part of Microsoft 365 administration has no Graph API. Mailbox permissions, transport rules, message trace, retention policies, sensitivity labels, Teams calling policies, SharePoint term stores, tenant-wide Exchange settings — those live in PowerShell and nowhere else. This server exposes them, with a risk classification and a confirmation step in front of anything that writes.


How it fits together

flowchart LR

A["AI client Claude · VS Code · Copilot Studio"] B["minerva-mcp"] C{"Risk classifier"} D["Human confirmation"] G["Microsoft Graph Azure ARM · Search"] P["PowerShell 7 Exchange · PnP · Teams · Purview"] M["Microsoft authorizes the token"]

A -->|"stdio or HTTP"| B B --> C C -->|"read"| G C -->|"write"| D D -->|"signed mandate"| G D -->|"signed mandate"| P C -->|"read"| P G --> M P --> M

Reads go straight through. Writes stop at a classifier, come back to you as an input_required describing the action and its consequences, and only run once you confirm. Microsoft still has the final word: the server forwards a token, it never grants access.

Install

Nothing to clone. Add it to your client and sign in on first use.

Claude Desktop

claude_desktop_config.json:

{

"mcpServers": { "minerva": { "command": "npx", "args": ["-y", "minerva-mcp", "--stdio"] } } }

VS Code

.vscode/mcp.json:

{

"servers": { "minerva": { "type": "stdio", "command": "npx", "args": ["-y", "minerva-mcp", "--stdio"] } } }

More, including read-only and app-only setups, in examples/.

On the first tool call the server prints a device-code prompt on stderr: open the link, enter the code, done. No app registration needed to try it — it uses the public Microsoft Graph PowerShell client by default.

Requirements: Node.js 20+. For the PowerShell tools, PowerShell 7+ and the modules you intend to use (ExchangeOnlineManagement, PnP.PowerShell, MicrosoftTeams).


What you can ask

*"Which mailboxes have full access delegated to someone outside their department?"*

→ execute_exchange_online with Get-MailboxPermission, no Graph equivalent exists.

*"Show me every conditional access policy that does not require MFA, and our Secure Score."*

→ generate_security_report + microsoft_graph_call.

*"Create a shared mailbox for invoicing and give the finance team access."*

→ classified as a write: the server describes the action and its consequences,

and waits for your confirmation before doing anything.


Tools

ToolWhat it doesGraph equivalent?
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❌ none
execute_pnp_sharepointPnP PowerShell (SharePoint) cmdlets❌ none
execute_teams_adminTeams Admin cmdlets❌ none
execute_purview_compliancePurview / compliance cmdlets❌ none

Restrict the surface with --tools=microsoft_graph_call,get_tenant_context, or forbid every write with --read-only.


Approval, and why it is not optional

A model reads untrusted content — an email subject, a site name, a document — and decides which tool to call. Prompt injection is not hypothetical, and the tools here can delete mailboxes.

So writes do not simply execute. Every action is classified auto, confirmed or critical from the HTTP verb and path (or the PowerShell verb). Anything above auto makes the server answer input_required under MCP's Multi Round-Trip Requests: your client shows what is about to happen and its consequences, you confirm, and only then does it run.

The confirmation is a signed mandate (HMAC) bound to the caller, the method, and a digest of the arguments, valid five minutes. A mandate obtained to delete /users/1 cannot be replayed on /users/999, and cannot be presented by anyone else.

If your client does not support elicitation, nothing is silently executed: the server returns an error saying the action needs confirmation.


Options

Every flag has an environment variable equivalent.

Transport
FlagEnvDefault
--stdioMINERVA_TRANSPORT=stdioHTTPJSON-RPC over stdin/stdout
--port= MCP_SERVER_PORT3001HTTP listen port

In stdio mode all logs go to stderr — stdout belongs to the protocol.

Authentication
FlagEnv
--auth= MINERVA_AUTH_MODEbearer, device-code, client-secret
--tenant= MINERVA_TENANT_ID, AZURE_TENANT_IDEntra tenant
--client-id= MINERVA_CLIENT_ID, AZURE_CLIENT_IDApplication
--client-secret= AZURE_CLIENT_SECRETApp-only secret

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 its own token: Graph, ARM, Exchange, Purview, SharePoint and Teams do not share an audience.

Scope
FlagEnv
--read-onlyMINERVA_READ_ONLYRefuse every write
--tools= MINERVA_TOOLSRegister only these tools
--ps= MINERVA_PS_EXECUTORauto, redis, local, none
--sharepoint-url= MINERVA_SHAREPOINT_URLRequired by the PnP tool locally
--allowed-origins= MINERVA_ALLOWED_ORIGINSBrowser origins allowed on /mcp
--redis-url= REDIS_URLQueue for an external PowerShell runner
—MINERVA_MRTR_SECRETSigning key for approval mandates
—MINERVA_PWSH_PATHPath to pwsh
—MINERVA_REQUIRE_VERIFIED_TOKENSRefuse tokens whose signature cannot be verified

--read-only reuses the same risk classifier as the approval gate, so it covers PowerShell cmdlets too, not just HTTP verbs.


Protocol support

Speaks MCP 2026-07-28, and still serves handshake-era clients until 2027-07-28.

Stateless core (per-request _meta, no initialize, no Mcp-Session-Id)✅
server/discover✅
Multi Round-Trip Requests (input_required)✅ — this is the approval mechanism
MCP-Protocol-Version / Mcp-Method / Mcp-Name headers, base64 sentinel✅ validated against the body
ttlMs / cacheScope on lists✅ always private
Version negotiation (-32022 listing supported versions)✅
Origin validation (anti DNS-rebinding)✅
GET/DELETE on the MCP endpoint✅ 405, removed by this revision
Handshake era (initialize)✅ until 2027-07-28

One endpoint serves both generations; the request body decides which. Both read the same tool registry, and a test compares them against a frozen contract so they cannot drift.


Security

Read SECURITY.md before deploying. The three things that matter:

  1. This server grants nothing. It forwards a Microsoft token; Microsoft authorizes. A restricted token gives a restricted server.
  2. Graph tokens cannot be verified by a third party — they carry a nonce header that only Graph can check. Their tid/oid claims are therefore self-reported. The server validates them structurally, flags them verified: false, and binds approval mandates to a fingerprint of the token itself rather than to the claims alone. A token that *should* have verified and did not is rejected.
  3. Local PowerShell mode isolates nothing. Cmdlets run with the current user's rights. Do not expose it to a caller you do not trust.

Cmdlet names and parameters never reach the script as code: they travel through environment variables, the name is validated against a strict Verb-Noun pattern, and the call goes through Get-Command plus the call operator.

Report a vulnerability privately — see SECURITY.md.


What this does not do

  • No process isolation in local mode.
  • No multi-tenant brokering — one server, one identity.
  • No signed audit ledger. Audit events are JSON on stderr, not a signed, offline-verifiable record.

Those three belong to Minerva-IA, the commercial platform this server was extracted from. Everything in this repository works without it.


Development

npm install

npm run dev:stdio # stdio, hot reload npm run verify # typecheck + tests + secret scan npm run build && node scripts/smoke-stdio.mjs

Tests need no credentials and touch no network.

Pull requests are closed until 2027-07-31 — see CONTRIBUTING.md for why, and for what is welcome in the meantime (bug reports very much are).

Licence

MIT — see LICENSE.

PopNx fragen