プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Minerva MCP — Microsoft 365 & Azure

作者:HoussemMakバージョン 0.4.2i★ –iパソコンで動く
レジストリ名io.github.HoussemMak/minerva-mcp

インストール

概要

作者による説明(英語の原文)

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

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 開発者ツール
  • 入力が必要なもの:AZURE_CLIENT_SECRET

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, MINERVA_SHAREPOINT_URL

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "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"
      }
    }
  }
}

ターミナルでこれを実行します

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

動かす前に、空欄の値を入力してください。

このサーバーは起動コマンドに値を入れる必要があるので、設定をコピーして入力してください。

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "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"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

このサーバーは起動コマンドに値を入れる必要があるので、設定をコピーして入力してください。

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "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"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • 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 秘密 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.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント HoussemMak で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

開発者ツールのほかのサーバーとの比較i

  • このカテゴリのほかの5548件のうち0%よりスターが多い
  • このカテゴリのほかの5548件のうち26%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの5548件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Minerva MCP — Microsoft 365 & Azureは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:AZURE_CLIENT_SECRET

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.4.2)がレジストリに届いたのは3 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

GitHub

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

作者:github広く使われている★ 3.4万5 日前更新

パソコンでもクラウドでも

Desktop Commander

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

作者:wonderwhy-er広く使われている↓ 71万/週★ 1万17 日前更新

パソコンで動く

Cloudflare MCP

Cloudflare MCP servers

作者:cloudflare広く使われている★ 444614 か月前更新

クラウドで動く✓ mcp.cloudflare.com

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

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に聞く